commit d26f953d4dedb097f9c1fd9fb836c98786d631ec Author: carter <1978127466@qq.com> Date: Wed Aug 14 14:39:58 2024 +0800 初始化仓库 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7815262 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Nine-Ai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e6ca44 --- /dev/null +++ b/README.md @@ -0,0 +1,183 @@ +>本项目基于nineai 2.4.2 二次开发。 +>本项目仅供学习及参考,不可商用,由此造成的后果概不负责。 +>整合包位于 **YiAiQuickDeploy** 目录。 +>API中转商推荐:[ChatfireAPI](https://api.jujufei.top) , 支持国内外热门大模型。 + +# Yi - Ai 更新日志 + +## V2.6.0(20240705) + +### 功能优化 + +1. **更新模型列表,新增gpt-4o、claude3.5等热门模型**: + +2. **新增模型识图功能**: + + - 支持gpt-4o识图功能,gpt-4o-all文件分析功能 + +## V2.5.1(20240205) + +### 功能优化 + +1. **优化title显示**: + + - 优化title显示,字多显示... + +2. **左侧优化**: + + - 新增对话,简化功能 + - 搜索功能优化 + - 左侧菜单栏缩小 + +## V2.5.0(20240203) + +### 功能更新 + +1. **mj-proxy-plus 支持更新**: + + - 新增容错和重试机制,提高稳定性。 + +2. **模型新增排序功能**: + + - 优化模型排序逻辑,提升用户体验。 + +3. **精简 mj 模型配置**: + + - 后台配置现仅需地址和 key,简化操作流程。 + +4. **dall-e 绘画整合进 chat**: + + - dall-e-3 模型可在后台单独配置。 + - 保留 dall-e-3 页面,绘图功能将纳入 chat 组件。 + - 连续绘图功能开发中。 + +5. **文件类型支持扩展**: + - all 模型除 pdf 外,增加多种文件类型支持。 + + +### Bug 修复 + +1. **国产模型兼容性修复**: + + - 修复了国产模型添加后无法使用的 bug。 + +2. **界面显示优化**: + - 修复后台及绘画广场的显示问题。 + +### 注意事项 + +- 由于本次 mj-proxy-plus 升级不向下兼容,建议删除数据库中旧的 mj 数据库。 +- 新的 key 可以通过中转平台购买。 +- 如果您之前订阅过,但不想自建 mj-proxy-plus,可以考虑共享账号给我们,以合组账号池。 + +## V2.4.5 + +1. 部分页面UI精简。 +2. 管理端地址改为 `/admin`,默认密码均设为 `123456`。 +3. 支持使用 GPT-4-All(第三方逆向)解析上传的文件、图片。 +4. 增加模型关联 Token 计费(可选)。 +5. MJ 版本默认调整为 v6.0。 + +# 页面效果展示 + + + +# 项目部署教程(整合包) + +> YiAiQuickDeploy目录为整合包 + +## 环境准备 + +1. **环境要求** + - Node.js 版本大于 16。 + - pnpm 版本大于 6 + - MySQL 版本大于等于 5.7 + - Redis + +2. **安装Node.js环境** + - 请根据您的操作系统下载并安装Node.js。 + - 可以从[Node.js官网](https://nodejs.org/)下载。 + +3. **安装PM2** + - 使用npm安装PM2:`npm install pm2 -g` + - PM2是一个带有负载均衡功能的Node应用的进程管理器。 + +4. **安装PNPM** + - 使用npm安装PNPM:`npm install -g pnpm` + - PNPM是一个快速、节省磁盘空间的包管理工具。 + +## 配置项目 + +1. **配置环境变量** + - 复制`.env.example`文件为`.env`。 + - 根据需要修改`.env`文件中的配置项。 + +2. **安装项目依赖** + - 运行命令:`pnpm install`(若安装失败可尝试使用国内源) + - 这将根据`package.json`文件安装所有必需的依赖。 + +## 启动项目 + +1. **启动服务** + - 使用命令:`pnpm start` + - 这将启动项目,并默认在9520端口监听。 + +2. **访问项目** + - 在浏览器中访问`http://localhost:9520`,或者如果配置了nginx反向代理,则通过配置的域名访问。 + +## 管理平台 + +- **chat端地址**:`/chat` +- **管理端地址**:`/admin` +- **普通管理员账号**:`admin` +- **超级管理员账号**:`super` +- **密码**:`123456` + +普通管理员,可以预览后台非敏感信息。登入后台后请及时修改管理员密码,或按需要禁用普通管理员。 + +请确保遵循上述步骤进行配置和启动,以保证系统的正确运行。 + +## 刷新404问题 + +- 前端在刷新时可能会出现404问题,需要对 **Nginx** 进行配置。请参考相关文档进行配置。 + +## 项目升级 + +1. **拉取更新** + + - 拉取新的整合包:`git pull` + +2. **删除旧进程** + + - 删除旧的 PM2 进程。 + +3. **安装依赖** + + - 运行命令:`pnpm install` 以安装 `package.json` 中定义的必需依赖。 + +4. **启动服务** + - 使用命令:`pnpm start` 来启动项目,它将默认在 9520 端口监听。 + +# 项目部署教程(编译包) + +>基本步骤与整合包安装类似 + +- 1.在**service**(后端服务)目录修改.env数据库信息,然后运行终端命令:pnpm install 安装依赖文件,再运行:pnpm dev 调试并导入数据库,最后使用终端命令:pnpm build 编译打包,最后就能得到与上面整合版一样的文件。 + +- 2.**chat**(用户前端)和**admin**(管理员后端)仅需修改各种目录.env中的后端接口即可,然后分别在终端中执行pnpm install 安装依赖文件 和 pnpm build 编译打包,最后就能得到前端和后端的静态文件。 + +# 本项目二开作者wx + +**不提供无偿服务,提供有偿服务。** + +**咨询、指导、部署、合作等需先过门槛10元并备注微信名称,可解锁好友位,否则不通过** + +**注:该费用仅作为项目开发支持、赞助费用,无实际购买意义** + +**开发维护不易,同时也欢迎您的赞助!** + +> 请使用支付宝支付 + + +> 请扫码添加微信 + \ No newline at end of file diff --git a/admin/.editorconfig b/admin/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/admin/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/admin/.env.development b/admin/.env.development new file mode 100644 index 0000000..5d38941 --- /dev/null +++ b/admin/.env.development @@ -0,0 +1,6 @@ +# 页面标题 +VITE_APP_TITLE = YiAi-Admin +# 接口请求地址,会设置到 axios 的 baseURL 参数上 生产地址测试 + +VITE_APP_API_BASEURL = http://127.0.0.1:9520/api +VITE_BASE_PATH=/ diff --git a/admin/.env.production b/admin/.env.production new file mode 100644 index 0000000..162fe63 --- /dev/null +++ b/admin/.env.production @@ -0,0 +1,8 @@ +# 页面标题 +VITE_APP_TITLE = Yi-Ai +# 接口请求地址,会设置到 axios 的 baseURL 参数上 生产地址测试 +# VITE_APP_API_BASEURL = https://xxx.com/api +# VITE_BASE_PATH=/ + +VITE_APP_API_BASEURL = /api +VITE_BASE_PATH=/admin/ \ No newline at end of file diff --git a/admin/.env.test b/admin/.env.test new file mode 100644 index 0000000..e83ed72 --- /dev/null +++ b/admin/.env.test @@ -0,0 +1,13 @@ +# 页面标题 +VITE_APP_TITLE = 页面标题(test) +# 接口请求地址,会设置到 axios 的 baseURL 参数上 +VITE_APP_API_BASEURL = / +# 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 +VITE_APP_DEBUG_TOOL = + +# 是否在打包时启用 Mock +VITE_BUILD_MOCK = true +# 是否在打包时生成 sourcemap +VITE_BUILD_SOURCEMAP = true +# 是否在打包时开启压缩,支持 gzip 和 brotli +VITE_BUILD_COMPRESS = diff --git a/admin/.eslintignore b/admin/.eslintignore new file mode 100644 index 0000000..de4d1f0 --- /dev/null +++ b/admin/.eslintignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/admin/.eslintrc b/admin/.eslintrc new file mode 100644 index 0000000..5e3553a --- /dev/null +++ b/admin/.eslintrc @@ -0,0 +1,10 @@ +{ + "extends": "@antfu", + "rules": { + "eslint-comments/no-unlimited-disable": "off", + "curly": ["error", "all"], + "vue/component-tags-order": ["error", { + "order": ["route", "script", "template", "style"] + }] + } +} diff --git a/admin/.gitignore b/admin/.gitignore new file mode 100644 index 0000000..96742b0 --- /dev/null +++ b/admin/.gitignore @@ -0,0 +1,10 @@ +node_modules +.DS_Store +dist* +dist-ssr +*.local +.eslintcache +.stylelintcache +src/assets/sprites/*.* +!src/assets/sprites/.gitkeep +public/icons diff --git a/admin/.npmrc b/admin/.npmrc new file mode 100644 index 0000000..cf04042 --- /dev/null +++ b/admin/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/admin/.stylelintignore b/admin/.stylelintignore new file mode 100644 index 0000000..d6815c8 --- /dev/null +++ b/admin/.stylelintignore @@ -0,0 +1,3 @@ +dist +node_modules +src/assets/sprites diff --git a/admin/.stylelintrc b/admin/.stylelintrc new file mode 100644 index 0000000..2763d37 --- /dev/null +++ b/admin/.stylelintrc @@ -0,0 +1,32 @@ +{ + "extends": [ + "stylelint-stylistic/config", + "stylelint-config-standard", + "stylelint-config-standard-scss", + "stylelint-config-standard-vue/scss" + ], + "plugins": [ + "stylelint-scss" + ], + "rules": { + "stylistic/max-line-length": null, + "stylistic/block-closing-brace-newline-after": [ + "always", + { + "ignoreAtRules": ["if", "else"] + } + ], + "at-rule-no-unknown": [ + true, + { + "ignoreAtRules": ["tailwind"] + } + ], + "no-descending-specificity": null, + "property-no-unknown": null, + "font-family-no-missing-generic-family-keyword": null, + "selector-class-pattern": null, + "scss/double-slash-comment-empty-line-before": null, + "scss/no-global-function-names": null + } +} diff --git a/admin/.vscode/extensions.json b/admin/.vscode/extensions.json new file mode 100644 index 0000000..80da8e7 --- /dev/null +++ b/admin/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + "recommendations": [ + "EditorConfig.EditorConfig", + "mikestead.dotenv", + "dbaeumer.vscode-eslint", + "stylelint.vscode-stylelint", + "Vue.volar", + "Vue.vscode-typescript-vue-plugin", + ] +} diff --git a/admin/.vscode/settings.json b/admin/.vscode/settings.json new file mode 100644 index 0000000..1759042 --- /dev/null +++ b/admin/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.fixAll.stylelint": "explicit" + }, + "stylelint.validate": ["css", "scss", "vue"] +} diff --git a/admin/LICENSE b/admin/LICENSE new file mode 100644 index 0000000..3e48fa1 --- /dev/null +++ b/admin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 fantastic-template + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/admin/README.md b/admin/README.md new file mode 100644 index 0000000..af9fe64 --- /dev/null +++ b/admin/README.md @@ -0,0 +1,109 @@ +

+ +

+ +

Fantastic-admin

+ +

一款开箱即用的 Vue 中后台管理系统框架

+ +

+ 官网 + ( 备用 ) +  |  + 演示 + ( 基础版 + 专业版 ) +  |  + 技术支持 +  |  + 购买 +

+ +

+ + +

+ +## 特点 + +- 丰富的布局与主题,覆盖市面上各种中后台应用场景,兼容PC、平板和移动端 +- 提供系统配置文件,轻松实现个性化定制 +- 精心设计的动效,让每一处的动画都干净利落 +- 根据路由配置自动生成导航栏 +- 基于文件系统的路由 +- 支持全方位权限验证 +- 内置多级路由最佳缓存方案 +- 轻松实现国际化多语言适配 +- 提供接近于浏览器原生标签栏操作体验的标签页功能 + +## 分支说明 + +- `master` Vue3 版本框架源码分支,不含示例代码,可直接用于实际开发 +- `example` Vue3 版本演示源码分支,同线上演示站,包含大量示例,可用于参考学习 +- `vue2` Vue2 版本框架源码分支,不含示例代码,可直接用于实际开发(停止维护) +- `vue2-example` Vue2 版本演示源码分支,包含大量示例,可用于参考学习(停止维护) + +如果你更注重使用时的稳定性,推荐去 [Github Releases](https://github.com/hooray/fantastic-admin/releases) 页面下载最新稳定版本的压缩包。 + +## 预览 + +> 预览截图为 Vue3 专业版 + + + + + + + + + + + + +
+ +## 支持 + +如果觉得 Fantastic-admin 这个框架不错,或者已经在使用了,希望你可以在 **Github** 或者 **Gitee(码云)** 帮我点个 ⭐ ,这将对我是极大的鼓励。 + +[![star](https://img.shields.io/github/stars/hooray/fantastic-admin?style=social)](https://github.com/hooray/fantastic-admin/stargazers) + +[![star](https://gitee.com/hooray/fantastic-admin/badge/star.svg?theme=dark)](https://gitee.com/hooray/fantastic-admin/stargazers) + +## 生态 + + + + + + + + +
+ Fantastic-startkit +
+ 一款开箱即用的 Vue 项目启动套件 +
+ + + + + + + + + + + + + + + + + + +
+ One-step-admin +
+ 一款干啥都快人一步的 Vue 中后台管理系统框架 +
diff --git a/admin/index.html b/admin/index.html new file mode 100644 index 0000000..0b752d6 --- /dev/null +++ b/admin/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + %VITE_APP_TITLE% + + + +
+
+
+
FeiJu Admin
+ +
+
+
为了您的体验,推荐使用以下浏览器
+ +
+
+ + + + + diff --git a/admin/package-lock.json b/admin/package-lock.json new file mode 100644 index 0000000..b593420 --- /dev/null +++ b/admin/package-lock.json @@ -0,0 +1,17949 @@ +{ + "name": "admin", + "version": "2.6.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "version": "2.6.0", + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@types/marked": "^4.0.8", + "@vueuse/core": "^10.0.2", + "@vueuse/integrations": "^10.0.2", + "axios": "^1.3.6", + "dayjs": "^1.11.7", + "echarts": "^5.4.2", + "element-plus": "^2.3.3", + "eruda": "^3.0.0", + "highlight.js": "^11.7.0", + "hotkeys-js": "^3.10.2", + "lodash-es": "^4.17.21", + "marked": "^4.3.0", + "md-editor-v3": "^3.0.0", + "mitt": "^3.0.0", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "path-browserify": "^1.0.1", + "path-to-regexp": "^6.2.1", + "pinia": "^2.0.35", + "postcss": "^8.4.23", + "qs": "^6.11.1", + "resize-observer-polyfill": "^1.5.1", + "tailwindcss": "^3.3.1", + "vconsole": "^3.15.0", + "vue": "^3.2.47", + "vue-echarts": "^6.5.4", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@antfu/eslint-config": "^0.38.5", + "@iconify-json/ep": "^1.1.10", + "@iconify/vue": "^4.1.1", + "@types/nprogress": "^0.2.0", + "@types/path-browserify": "^1.0.0", + "@types/qs": "^6.9.7", + "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "autoprefixer": "^10.4.14", + "bumpp": "^9.1.0", + "eslint": "^8.38.0", + "esno": "^0.16.3", + "fs-extra": "^11.1.1", + "http-server": "^14.1.1", + "less": "^4.2.0", + "npm-run-all": "^4.1.5", + "plop": "^3.1.2", + "postcss-html": "^1.5.0", + "sass": "^1.62.0", + "stylelint": "^15.5.0", + "stylelint-config-standard": "^33.0.0", + "stylelint-config-standard-scss": "^8.0.0", + "stylelint-config-standard-vue": "^1.0.0", + "stylelint-scss": "^4.6.0", + "stylelint-stylistic": "^0.4.0", + "svgo": "^3.0.2", + "terser": "^5.17.1", + "typescript": "^5.0.4", + "unplugin-auto-import": "^0.15.3", + "unplugin-vue-components": "^0.24.1", + "unplugin-vue-setup-extend-plus": "^1.0.0", + "vite": "^4.3.1", + "vite-plugin-banner": "^0.7.0", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-mock": "^2.9.8", + "vite-plugin-pages": "^0.29.0", + "vite-plugin-spritesmith": "^0.1.1", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-vue-inspector": "^3.4.0", + "vite-plugin-vue-meta-layouts": "^0.2.2", + "vue-tsc": "^1.4.2" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/eslint-config": { + "version": "0.38.6", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-0.38.6.tgz", + "integrity": "sha512-QH9RwKLgumLjkVfKNIrxtISlp6VqfduXVIS2uNlOfrj1hSSObOMzj0olcsKR2pzgTMQ6d5Uu9nrxvKjs/oO6fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/eslint-config-vue": "0.38.6", + "@typescript-eslint/eslint-plugin": "^5.59.0", + "@typescript-eslint/parser": "^5.59.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsonc": "^2.7.0", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-unicorn": "^46.0.0", + "eslint-plugin-vue": "^9.11.0", + "eslint-plugin-yml": "^1.5.0", + "jsonc-eslint-parser": "^2.2.0", + "yaml-eslint-parser": "^1.2.0" + }, + "peerDependencies": { + "eslint": ">=7.4.0" + } + }, + "node_modules/@antfu/eslint-config-basic": { + "version": "0.38.6", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config-basic/-/eslint-config-basic-0.38.6.tgz", + "integrity": "sha512-g5hxtS98MsQ6plCQ1rPx/K9+7ZZmUgdsWx84PJCwbaSuSklP1jZjuhMcjOPn/LW5t9QAPeb74T9+QsK3+IyNKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-plugin-antfu": "0.38.6", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsonc": "^2.7.0", + "eslint-plugin-markdown": "^3.0.0", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-unicorn": "^46.0.0", + "eslint-plugin-unused-imports": "^2.0.0", + "eslint-plugin-yml": "^1.5.0", + "jsonc-eslint-parser": "^2.2.0", + "yaml-eslint-parser": "^1.2.0" + }, + "peerDependencies": { + "eslint": ">=7.4.0" + } + }, + "node_modules/@antfu/eslint-config-ts": { + "version": "0.38.6", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config-ts/-/eslint-config-ts-0.38.6.tgz", + "integrity": "sha512-a7PY1xpJwjZwIciu8gboLJ2yYxB1HMCKKshuKvH8vcGv+af5X9wk0eLN3Paa72yytSZZ2fqxfD0AwXTW0n+oiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/eslint-config-basic": "0.38.6", + "@typescript-eslint/eslint-plugin": "^5.59.0", + "@typescript-eslint/parser": "^5.59.0", + "eslint-plugin-jest": "^27.2.1" + }, + "peerDependencies": { + "eslint": ">=7.4.0", + "typescript": ">=3.9" + } + }, + "node_modules/@antfu/eslint-config-vue": { + "version": "0.38.6", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config-vue/-/eslint-config-vue-0.38.6.tgz", + "integrity": "sha512-mC+MA7/WFXGIPR4RbdvaSWXjYJvBiloDzPaOILgbfPxWqROi5KzgMAYbRfHkXz0TaG2P1+wFiuf41unc3rq3ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/eslint-config-basic": "0.38.6", + "@antfu/eslint-config-ts": "0.38.6", + "eslint-plugin-vue": "^9.11.0", + "local-pkg": "^0.4.3" + }, + "peerDependencies": { + "eslint": ">=7.4.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz", + "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + }, + "peerDependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", + "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.4.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-angular": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz", + "integrity": "sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-html": "^6.0.0", + "@codemirror/lang-javascript": "^6.1.2", + "@codemirror/language": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.3" + } + }, + "node_modules/@codemirror/lang-cpp": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", + "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/cpp": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-css": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", + "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/css": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-go": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-go/-/lang-go-6.0.1.tgz", + "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/go": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-html": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", + "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", + "@lezer/html": "^1.3.0" + } + }, + "node_modules/@codemirror/lang-java": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-java/-/lang-java-6.0.1.tgz", + "integrity": "sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/java": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-javascript": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", + "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/javascript": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-json": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz", + "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-less": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-less/-/lang-less-6.0.2.tgz", + "integrity": "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-css": "^6.2.0", + "@codemirror/language": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-liquid": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.2.1.tgz", + "integrity": "sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.1" + } + }, + "node_modules/@codemirror/lang-markdown": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", + "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.7.1", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.3.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.2.1", + "@lezer/markdown": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-php": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz", + "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-html": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/php": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-python": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.6.tgz", + "integrity": "sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.3.2", + "@codemirror/language": "^6.8.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.1", + "@lezer/python": "^1.1.4" + } + }, + "node_modules/@codemirror/lang-rust": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", + "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/rust": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-sass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz", + "integrity": "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-css": "^6.2.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/sass": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-sql": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.7.0.tgz", + "integrity": "sha512-KMXp6rtyPYz6RaElvkh/77ClEAoQoHRPZo0zutRRialeFs/B/X8YaUJBCnAV2zqyeJPLZ4hgo48mG8TKoNXfZA==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-vue": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz", + "integrity": "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-html": "^6.0.0", + "@codemirror/lang-javascript": "^6.1.2", + "@codemirror/language": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.3.1" + } + }, + "node_modules/@codemirror/lang-wast": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz", + "integrity": "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-xml": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", + "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/xml": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-yaml": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz", + "integrity": "sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.2.0", + "@lezer/yaml": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", + "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.1.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/language-data": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@codemirror/language-data/-/language-data-6.5.1.tgz", + "integrity": "sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-angular": "^0.1.0", + "@codemirror/lang-cpp": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-go": "^6.0.0", + "@codemirror/lang-html": "^6.0.0", + "@codemirror/lang-java": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/lang-json": "^6.0.0", + "@codemirror/lang-less": "^6.0.0", + "@codemirror/lang-liquid": "^6.0.0", + "@codemirror/lang-markdown": "^6.0.0", + "@codemirror/lang-php": "^6.0.0", + "@codemirror/lang-python": "^6.0.0", + "@codemirror/lang-rust": "^6.0.0", + "@codemirror/lang-sass": "^6.0.0", + "@codemirror/lang-sql": "^6.0.0", + "@codemirror/lang-vue": "^0.1.1", + "@codemirror/lang-wast": "^6.0.0", + "@codemirror/lang-xml": "^6.0.0", + "@codemirror/lang-yaml": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/legacy-modes": "^6.4.0" + } + }, + "node_modules/@codemirror/legacy-modes": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.0.tgz", + "integrity": "sha512-5m/K+1A6gYR0e+h/dEde7LoGimMjRtWXZFg4Lo70cc8HzjSdHe3fLwjWMR0VRl5KFT1SxalSap7uMgPKF28wBA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz", + "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz", + "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", + "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==", + "license": "MIT" + }, + "node_modules/@codemirror/view": { + "version": "6.30.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.30.0.tgz", + "integrity": "sha512-96Nmn8OeLh6aONQprIeYk8hGVnEuYpWuxKSkdsODOx9hWPxyuyZGvmvxV/JmLsp+CubMO1PsLaN5TNNgrl0UrQ==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.4.0", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", + "integrity": "sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.4.1" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", + "integrity": "sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.13.tgz", + "integrity": "sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.7.1", + "@csstools/css-tokenizer": "^2.4.1" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==", + "license": "MIT" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@iconify-json/ep": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@iconify-json/ep/-/ep-1.1.16.tgz", + "integrity": "sha512-g7XnumVhTGlMDFkr7D3U19HJxneGdRwG8MIeV/PIubfRQu1wOh9aYQSycbTYMV9LCVr0Hg2wN1U45R8MJvPjlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/vue": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.2.tgz", + "integrity": "sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "vue": ">=3" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsdevtools/ez-spawn": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jsdevtools/ez-spawn/-/ez-spawn-3.0.4.tgz", + "integrity": "sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-me-maybe": "^1.0.1", + "cross-spawn": "^7.0.3", + "string-argv": "^0.3.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@lezer/common": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", + "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==", + "license": "MIT" + }, + "node_modules/@lezer/cpp": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.2.tgz", + "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/css": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", + "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/go": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@lezer/go/-/go-1.0.0.tgz", + "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/highlight": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz", + "integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/html": { + "version": "1.3.10", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", + "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/java": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@lezer/java/-/java-1.1.2.tgz", + "integrity": "sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/javascript": { + "version": "1.4.17", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.17.tgz", + "integrity": "sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz", + "integrity": "sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", + "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/markdown": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", + "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@lezer/php": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz", + "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.1.0" + } + }, + "node_modules/@lezer/python": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.14.tgz", + "integrity": "sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/rust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@lezer/rust/-/rust-1.0.2.tgz", + "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/sass": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lezer/sass/-/sass-1.0.6.tgz", + "integrity": "sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/xml": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.5.tgz", + "integrity": "sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/yaml": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz", + "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz", + "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fined": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/fined/-/fined-1.1.5.tgz", + "integrity": "sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/inquirer": { + "version": "8.2.10", + "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz", + "integrity": "sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/through": "*", + "rxjs": "^7.2.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/liftoff": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/liftoff/-/liftoff-4.0.3.tgz", + "integrity": "sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fined": "*", + "@types/node": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "license": "MIT", + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/marked": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz", + "integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mockjs": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@types/mockjs/-/mockjs-1.0.10.tgz", + "integrity": "sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.1.0.tgz", + "integrity": "sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.13.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/nprogress": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@types/nprogress/-/nprogress-0.2.3.tgz", + "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/path-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/path-browserify/-/path-browserify-1.0.2.tgz", + "integrity": "sha512-ZkC5IUqqIFPXx3ASTTybTzmQdwHwe2C0u3eL75ldQ6T9E9IWFJodn6hIfbZGab73DfyiHN4Xw15gNxUq2FbvBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/svgo": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-2.6.4.tgz", + "integrity": "sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/through": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", + "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vavt/markdown-theme": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vavt/markdown-theme/-/markdown-theme-3.2.4.tgz", + "integrity": "sha512-m5z5yqjOORQxmLq8q9eL0mcKNVkKZsXBQz/nyVWjNAuk9+bFJ9aLnwF+fGCrDaBI8mD4UPC4UiP+r069uWkpNA==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz", + "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3", + "@vue/babel-plugin-jsx": "^1.1.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz", + "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz", + "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "@vue/babel-helper-vue-transform-on": "1.2.2", + "@vue/babel-plugin-resolve-type": "1.2.2", + "camelcase": "^6.3.0", + "html-tags": "^3.3.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz", + "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/helper-module-imports": "~7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/parser": "^7.23.9", + "@vue/compiler-sfc": "^3.4.15" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.36.tgz", + "integrity": "sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.36", + "entities": "^5.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.36.tgz", + "integrity": "sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.4.36", + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.36.tgz", + "integrity": "sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.36", + "@vue/compiler-dom": "3.4.36", + "@vue/compiler-ssr": "3.4.36", + "@vue/shared": "3.4.36", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.40", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.36.tgz", + "integrity": "sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.4.36", + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.36.tgz", + "integrity": "sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.36.tgz", + "integrity": "sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.4.36", + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.36.tgz", + "integrity": "sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.4.36", + "@vue/runtime-core": "3.4.36", + "@vue/shared": "3.4.36", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.36.tgz", + "integrity": "sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.4.36", + "@vue/shared": "3.4.36" + }, + "peerDependencies": { + "vue": "3.4.36" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.36.tgz", + "integrity": "sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.11.0.tgz", + "integrity": "sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^4", + "drauu": "^0.3", + "focus-trap": "^7", + "fuse.js": "^6", + "idb-keyval": "^6", + "jwt-decode": "^3", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^6" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==", + "dev": true, + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bin-pack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bin-pack/-/bin-pack-1.0.2.tgz", + "integrity": "sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==", + "dev": true, + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bumpp": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/bumpp/-/bumpp-9.4.2.tgz", + "integrity": "sha512-D0Cb5Mgxei7PObv4FkKQ19v1qSRhA3buQqCEQW6EU4+iort7JxL06DC6bZG5E0x/euZkaBuAQqOtFd2zIJKPjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jsdevtools/ez-spawn": "^3.0.4", + "c12": "^1.11.1", + "cac": "^6.7.14", + "escalade": "^3.1.2", + "fast-glob": "^3.3.2", + "js-yaml": "^4.1.0", + "prompts": "^2.4.2", + "semver": "^7.6.3" + }, + "bin": { + "bumpp": "bin/bumpp.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/c12": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.11.1.tgz", + "integrity": "sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.6.0", + "confbox": "^0.1.7", + "defu": "^6.1.4", + "dotenv": "^16.4.5", + "giget": "^1.2.3", + "jiti": "^1.21.6", + "mlly": "^1.7.1", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "perfect-debounce": "^1.0.0", + "pkg-types": "^1.1.1", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.4" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelcase-keys": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", + "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^6.3.0", + "map-obj": "^4.1.0", + "quick-lru": "^5.1.1", + "type-fest": "^1.2.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001650", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", + "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true, + "license": "MIT" + }, + "node_modules/codemirror": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", + "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "integrity": "sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/contentstream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/contentstream/-/contentstream-1.0.0.tgz", + "integrity": "sha512-jqWbfFZFG9tZbdej7+TzXI4kanABh3BLtTWY6NxqTK5zo6iTIeo5aq4iRVfYsLQ0y8ccQqmJR/J4NeMmEdnR2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.33-1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/contentstream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/contentstream/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/contentstream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", + "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.0.tgz", + "integrity": "sha512-XPpwqEodRljce9KswjZShh95qJ1URisBeKCjUdq27YdenkslVe7OO0ZJhlYXAChW7OhXaRLl8AAba7IBfoIHug==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12 || >=16" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/cwise-compiler": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", + "integrity": "sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uniq": "^1.0.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz", + "integrity": "sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", + "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/echarts": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.1.tgz", + "integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", + "dev": true, + "license": "ISC" + }, + "node_modules/element-plus": { + "version": "2.7.8", + "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.7.8.tgz", + "integrity": "sha512-h6dx2XihAbQaud0v+6O7Fy0b0G3YNplNVH7QnK3csTcvQd4y4raiyMRQpf9EKbRbTMdNrFsqAZrs9ok9DMcJHg==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.1", + "@element-plus/icons-vue": "^2.3.1", + "@floating-ui/dom": "^1.0.1", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", + "@types/lodash": "^4.14.182", + "@types/lodash-es": "^4.17.6", + "@vueuse/core": "^9.1.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.3", + "escape-html": "^1.0.3", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "lodash-unified": "^1.0.2", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/element-plus/node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "license": "MIT" + }, + "node_modules/element-plus/node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/element-plus/node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/element-plus/node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/eruda": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/eruda/-/eruda-3.2.1.tgz", + "integrity": "sha512-iophjRvysx2ndIhqos+WpGUpou0BHGZOYcLld8oB65oH9+Cz7FExC5xEJ/ulzxpWoqw4Kh8gM7spuaGJhz0UeA==", + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-antfu": { + "version": "0.38.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-antfu/-/eslint-plugin-antfu-0.38.6.tgz", + "integrity": "sha512-oQImiNKe+iGwoznuydq70s6oJHpaUE/hCHFeu4v7oy/hfAw7oBuCNi6TCZtQ/MUr+4XyQwq9sdC3fsLZC+DF1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.59.0" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-html": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz", + "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "htmlparser2": "^8.0.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsonc": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.16.0.tgz", + "integrity": "sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "eslint-compat-utils": "^0.5.0", + "espree": "^9.6.1", + "graphemer": "^1.4.0", + "jsonc-eslint-parser": "^2.0.4", + "natural-compare": "^1.4.0", + "synckit": "^0.6.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-markdown": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^0.8.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-no-only-tests": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz", + "integrity": "sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", + "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "46.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.1.tgz", + "integrity": "sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.19.1", + "@eslint-community/eslint-utils": "^4.1.2", + "ci-info": "^3.6.1", + "clean-regexp": "^1.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.0", + "jsesc": "^3.0.2", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "regjsparser": "^0.9.1", + "safe-regex": "^2.1.1", + "semver": "^7.3.8", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.28.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz", + "integrity": "sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-yml": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz", + "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.2", + "eslint-compat-utils": "^0.5.0", + "lodash": "^4.17.21", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^1.2.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esno": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/esno/-/esno-0.16.3.tgz", + "integrity": "sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tsx": "^3.2.1" + }, + "bin": { + "esno": "esno.js" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima-extract-comments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/esprima-extract-comments/-/esprima-extract-comments-1.1.0.tgz", + "integrity": "sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esprima": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-comments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/extract-comments/-/extract-comments-1.1.0.tgz", + "integrity": "sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "esprima-extract-comments": "^1.1.0", + "parse-code-context": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup-sync": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/fined": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^5.0.0", + "object.defaults": "^1.1.0", + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-pixels": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.3.tgz", + "integrity": "sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "0.0.3", + "jpeg-js": "^0.4.1", + "mime-types": "^2.0.1", + "ndarray": "^1.0.13", + "ndarray-pack": "^1.1.1", + "node-bitmap": "0.0.1", + "omggif": "^1.0.5", + "parse-data-uri": "^0.2.0", + "pngjs": "^3.3.3", + "request": "^2.44.0", + "through": "^2.3.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", + "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gif-encoder": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/gif-encoder/-/gif-encoder-0.4.3.tgz", + "integrity": "sha512-HMfSa+EIng62NbDhM63QGYoc49/m8DcZ9hhBtw+CXX9mKboSpeFVxjZ2WEWaMFZ14MUjfACK7jsrxrJffIVrCg==", + "dev": true, + "dependencies": { + "readable-stream": "~1.1.9" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/gif-encoder/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/gif-encoder/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/gif-encoder/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/giget": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.3", + "nypm": "^0.3.8", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "tar": "^6.2.0" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/globule/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globule/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars-layouts": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/handlebars-layouts/-/handlebars-layouts-3.1.4.tgz", + "integrity": "sha512-2llBmvnj8ueOfxNHdRzJOcgalzZjYVd9+WAl93kPYmlX4WGx7FTHTzNxhK+i9YKY2OSjzfehgpLiIwP/OJr6tw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/highlight.js": { + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.10.0.tgz", + "integrity": "sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/hotkeys-js": { + "version": "3.13.7", + "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.7.tgz", + "integrity": "sha512-ygFIdTqqwG4fFP7kkiYlvayZppeIQX2aPpirsngkv1xM1lP0piDY5QEh68nQnIKvz64hfocxhBaD/uK3sSK1yQ==", + "license": "MIT", + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-server/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/http-server/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/http-server/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/http-server/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-server/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/http-server/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/inquirer/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/iota-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", + "integrity": "sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-content-demux": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/json-content-demux/-/json-content-demux-0.1.4.tgz", + "integrity": "sha512-3GqPH2O0+8qBMTa1YTuL+7L24YJYNDjdXfa798y9S6GetScZAY2iAOGCdFkEPZJZdafPKv8ZUnp18VCCPTs0Nw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", + "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/layout": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/layout/-/layout-2.2.0.tgz", + "integrity": "sha512-+kdgg25XW11BA4cl9vF+SH01HaBipld2Nf/PlU2kSYncAbdUbDoahzrlh6yhR93N/wR2TGgcFoxebzR1LKmZUg==", + "dev": true, + "dependencies": { + "bin-pack": "~1.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftoff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "object.map": "^1.0.1", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-codetabs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/markdown-it-codetabs/-/markdown-it-codetabs-1.2.0.tgz", + "integrity": "sha512-kF0ec56hKmBZ4xMSFm1pIOuRT37iInD8uvTq+uaWpVKnja6mAg6gkGMLaeLeBiRx4fAMJmrWy417WPf8GgNWxg==", + "license": "MIT" + }, + "node_modules/markdown-it-image-figures": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz", + "integrity": "sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "markdown-it": "*" + } + }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==", + "license": "ISC" + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/md-editor-v3": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md-editor-v3/-/md-editor-v3-3.0.1.tgz", + "integrity": "sha512-8R39w/AeS3RYhdEBGvGsOvEqG9PTvV7/9fl1UMwCNbrCONboegv0TUXr+jggjD6z2kmShEVkQMYWQCyRgrEW2Q==", + "license": "MIT", + "dependencies": { + "@codemirror/lang-markdown": "^6.1.1", + "@codemirror/language-data": "^6.3.0", + "@types/markdown-it": "^12.2.3", + "@vavt/markdown-theme": "^3.0.0", + "codemirror": "^6.0.1", + "copy-to-clipboard": "^3.3.3", + "lru-cache": "^8.0.4", + "markdown-it": "^13.0.1", + "markdown-it-codetabs": "^1.2.0", + "markdown-it-image-figures": "^2.1.1", + "markdown-it-task-lists": "^2.1.1", + "medium-zoom": "^1.0.8" + }, + "peerDependencies": { + "vue": "^3.2.47" + } + }, + "node_modules/md-editor-v3/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "license": "ISC", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "license": "MIT" + }, + "node_modules/medium-zoom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/medium-zoom/-/medium-zoom-1.1.0.tgz", + "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==", + "license": "MIT" + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", + "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.2", + "camelcase-keys": "^7.0.0", + "decamelize": "^5.0.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.2", + "type-fest": "^1.2.2", + "yargs-parser": "^20.2.9" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "dependencies": { + "commander": "*" + }, + "bin": { + "random": "bin/random" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/mutation-observer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz", + "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/ndarray": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", + "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iota-array": "^1.0.0", + "is-buffer": "^1.0.2" + } + }, + "node_modules/ndarray-ops": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", + "integrity": "sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cwise-compiler": "^1.0.0" + } + }, + "node_modules/ndarray-pack": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", + "integrity": "sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cwise-compiler": "^1.1.2", + "ndarray": "^1.0.13" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-bitmap": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz", + "integrity": "sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA==", + "dev": true, + "engines": { + "node": ">=v0.6.5" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-plop": { + "version": "0.31.1", + "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.31.1.tgz", + "integrity": "sha512-qmXJJt3YETFt/e0dtMADVpvck6EvN01Jig086o+J3M6G++mWA7iJ3Pqz4m4kvlynh73Iz2/rcZzxq7xTiF+aIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/inquirer": "^8.2.1", + "change-case": "^4.1.2", + "del": "^6.0.0", + "globby": "^13.1.1", + "handlebars": "^4.4.3", + "inquirer": "^8.2.2", + "isbinaryfile": "^4.0.8", + "lodash.get": "^4.4.2", + "lower-case": "^2.0.2", + "mkdirp": "^1.0.4", + "resolve": "^1.20.0", + "title-case": "^3.0.3", + "upper-case": "^2.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/node-plop/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/node-plop/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", + "license": "BSD-3-Clause" + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.9.tgz", + "integrity": "sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "execa": "^8.0.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/obj-extend": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/obj-extend/-/obj-extend-0.1.0.tgz", + "integrity": "sha512-or9c7Ue2wWCun41DuLP3+LKEUjSZcDSxfCM4HZQSX9tcjLL/yuzTW7MmtVNs+MmN16uDRpDrFmFK/WVSm4vklg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "dev": true, + "license": "MIT" + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", + "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-code-context": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-code-context/-/parse-code-context-1.0.0.tgz", + "integrity": "sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-data-uri": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz", + "integrity": "sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "data-uri-to-buffer": "0.0.3" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinia": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.1.tgz", + "integrity": "sha512-ltEU3xwiz5ojVMizdP93AHi84Rtfz0+yKd8ud75hr9LVyWX2alxp7vLbY1kFm7MXFmHHr/9B08Xf8Jj6IHTEiQ==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixelsmith": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/pixelsmith/-/pixelsmith-2.6.0.tgz", + "integrity": "sha512-1W0C8EVxAPJwsCodw/+dfeEtdSc8JuHFipVylf51PIvh7S7Q33qmVCCzeWQp1y1sXpZ52iXGY2D/ICMyHPIULw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "concat-stream": "~1.5.1", + "get-pixels": "~3.3.0", + "mime-types": "~2.1.7", + "ndarray": "~1.0.15", + "obj-extend": "~0.1.0", + "save-pixels": "~2.3.0", + "vinyl-file": "~1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/pixelsmith/node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/plop": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/plop/-/plop-3.1.2.tgz", + "integrity": "sha512-39SOtQ3WlePXSNqKqAh/QlUSHXHO25iCnyCO3Qs/9UzPVmwVledRTDGvPd2csh+JnHVXz4c63F6fBwdqZHgbUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/liftoff": "^4.0.0", + "chalk": "^5.0.1", + "interpret": "^2.2.0", + "liftoff": "^4.0.0", + "minimist": "^1.2.6", + "node-plop": "^0.31.1", + "ora": "^6.0.1", + "v8flags": "^4.0.0" + }, + "bin": { + "plop": "bin/plop.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/plop/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pngjs-nozlib": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pngjs-nozlib/-/pngjs-nozlib-1.0.0.tgz", + "integrity": "sha512-N1PggqLp9xDqwAoKvGohmZ3m4/N9xpY0nDZivFqQLcpLHmliHnCp9BuNCsOeqHWMuEEgFjpEaq9dZq6RZyy0fA==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-html": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.7.0.tgz", + "integrity": "sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^8.0.0", + "js-tokens": "^9.0.0", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" + }, + "engines": { + "node": "^12 || >=14" + } + }, + "node_modules/postcss-html/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-prefix-selector": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", + "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": ">4 <9" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.4.tgz", + "integrity": "sha512-R6vHqZWgVnTAPq0C+xjyHfEZqfIYboCBVSy24MjxEDm+tIh1BU4O6o7DP7AA7kHzf136d+Qc5duI4tlpHjixDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/posthtml": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz", + "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.2.0", + "posthtml-render": "^1.0.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz", + "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^3.8.3", + "isobject": "^2.1.0" + } + }, + "node_modules/posthtml-parser/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/posthtml-parser/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/posthtml-parser/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/posthtml-parser/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/posthtml-parser/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/posthtml-parser/node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/posthtml-parser/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/posthtml-parser/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-rename-id": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "1.0.5" + } + }, + "node_modules/posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-svg-mode": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", + "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "merge-options": "1.0.1", + "posthtml": "^0.9.2", + "posthtml-parser": "^0.2.1", + "posthtml-render": "^1.0.6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/redent/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resize-detector": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz", + "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/save-pixels": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/save-pixels/-/save-pixels-2.3.6.tgz", + "integrity": "sha512-/ayfEWBxt0tFpf5lxSU1S0+/TBn7EiaTZD+6GL+mwizHm3BKCBysnzT6Js7BusDUVcNVLkeJJKLZcBgdpM2leQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "contentstream": "^1.0.0", + "gif-encoder": "~0.4.1", + "jpeg-js": "^0.4.3", + "ndarray": "^1.0.18", + "ndarray-ops": "^1.2.2", + "pngjs-nozlib": "^1.0.0", + "through": "^2.3.4" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "dev": true, + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/spritesheet-templates": { + "version": "10.5.2", + "resolved": "https://registry.npmjs.org/spritesheet-templates/-/spritesheet-templates-10.5.2.tgz", + "integrity": "sha512-dMrLgS5eHCEDWqo1c3mDM5rGdJpBNf1JAJrxTKA4qR54trNTtxqGZlH3ZppS5FHTgjKgOtEmycqE2vGSkCYiVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "handlebars": "^4.6.0", + "handlebars-layouts": "^3.1.4", + "json-content-demux": "~0.1.2", + "underscore": "~1.13.1", + "underscore.string": "~3.3.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/spritesmith": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/spritesmith/-/spritesmith-3.4.1.tgz", + "integrity": "sha512-NQZ8c7bZKbtqc0n0V+vVpurV72BwziOXw8AAU/nOdrjcjgCVoy+XUoopbrAYaNfJJgK730U98SB579+YtzfUJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "concat-stream": "~1.5.1", + "layout": "~2.2.0", + "pixelsmith": "^2.3.0", + "semver": "~5.0.3", + "through2": "~2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/spritesmith/node_modules/semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha512-5OkOBiw69xqmxOFIXwXsiY1HlE+om8nNptg1ZIf95fzcnfgOv2fLm7pmmGbRJsjJIqPpW5Kwy4wpDBTz5wQlUw==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true, + "license": "MIT" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", + "integrity": "sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "first-chunk-stream": "^1.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom-stream/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/style-mod": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "license": "MIT" + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true, + "license": "ISC" + }, + "node_modules/stylelint": { + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", + "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", + "@csstools/media-query-list-parser": "^2.1.4", + "@csstools/selector-specificity": "^3.0.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^8.2.0", + "css-functions-list": "^3.2.1", + "css-tree": "^2.3.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.1", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^7.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^5.2.4", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.29.0", + "mathml-tag-names": "^2.1.3", + "meow": "^10.1.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.28", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^3.0.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-html": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-html/-/stylelint-config-html-1.1.0.tgz", + "integrity": "sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12 || >=14" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-12.0.0.tgz", + "integrity": "sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "stylelint": "^15.5.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-10.0.0.tgz", + "integrity": "sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-scss": "^4.0.6", + "stylelint-config-recommended": "^11.0.0", + "stylelint-scss": "^4.6.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^15.3.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-config-recommended": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz", + "integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "stylelint": "^15.3.0" + } + }, + "node_modules/stylelint-config-recommended-vue": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-vue/-/stylelint-config-recommended-vue-1.5.0.tgz", + "integrity": "sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5", + "stylelint-config-html": ">=1.0.0", + "stylelint-config-recommended": ">=6.0.0" + }, + "engines": { + "node": "^12 || >=14" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "33.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", + "integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^12.0.0" + }, + "peerDependencies": { + "stylelint": "^15.5.0" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-8.0.0.tgz", + "integrity": "sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended-scss": "^10.0.0", + "stylelint-config-standard": "^32.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^15.4.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-recommended": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz", + "integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "stylelint": "^15.3.0" + } + }, + "node_modules/stylelint-config-standard-scss/node_modules/stylelint-config-standard": { + "version": "32.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-32.0.0.tgz", + "integrity": "sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^11.0.0" + }, + "peerDependencies": { + "stylelint": "^15.4.0" + } + }, + "node_modules/stylelint-config-standard-vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-vue/-/stylelint-config-standard-vue-1.0.0.tgz", + "integrity": "sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "stylelint-config-html": ">=1.0.0", + "stylelint-config-recommended-vue": ">=1.1.0", + "stylelint-config-standard": ">=24.0.0" + }, + "engines": { + "node": "^12 || >=14" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "postcss-html": "^1.0.0", + "stylelint": ">=14.0.0" + } + }, + "node_modules/stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1 || ^15.0.0" + } + }, + "node_modules/stylelint-stylistic": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/stylelint-stylistic/-/stylelint-stylistic-0.4.5.tgz", + "integrity": "sha512-E3Mz68yqmZe5Zk5UraR5MA2DjxgfE2TCZerDPk+fcd9dwLjwRupAt0j+Q1fBJRE3vhh3PvToKDhvhfMHf1tfNg==", + "deprecated": "This package has been deprecated in favor of @stylistic/stylelint-plugin", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^5.0.0", + "postcss": "^8.4.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-value-parser": "^4.2.0", + "style-search": "^0.1.0" + }, + "peerDependencies": { + "stylelint": "^15.0.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", + "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/stylelint/node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-baker": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.7.0.tgz", + "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.0", + "clone": "^2.1.1", + "he": "^1.1.1", + "image-size": "^0.5.1", + "loader-utils": "^1.1.0", + "merge-options": "1.0.1", + "micromatch": "3.1.0", + "postcss": "^5.2.17", + "postcss-prefix-selector": "^1.6.0", + "posthtml-rename-id": "^1.0", + "posthtml-svg-mode": "^1.0.3", + "query-string": "^4.3.2", + "traverse": "^0.6.6" + } + }, + "node_modules/svg-baker/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/svg-baker/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/micromatch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz", + "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.2.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^5.0.2", + "nanomatch": "^1.2.1", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/svg-baker/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/synckit": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.6.2.tgz", + "integrity": "sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/synckit/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true, + "license": "0BSD" + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.8.tgz", + "integrity": "sha512-GkP17r9GQkxgZ9FKHJQEnjJuKBcbFhMFzKu5slmN6NjlCuFnYJMQ8N4AZ6VrUyiRXlDtPKHkesuQ/MS913Nvdg==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/terser": { + "version": "5.31.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.4.tgz", + "integrity": "sha512-3OU03GgblDgu0g+sdnsVzhBPxnjV+WJuMmocN1qBBZDQ3ia7jZQSAkePeKbPlYAejGXUTYe1CmSaUeV51mvaIw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/traverse": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.9.tgz", + "integrity": "sha512-7bBrcF+/LQzSgFmT0X5YclVqQxtv7TDJ1f8Wj7ibBu/U6BMLeOpUxuZjV7rMc44UtKxlnMFigdhFAIszSX1DMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "gopd": "^1.0.1", + "typedarray.prototype.slice": "^1.0.3", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/trim-newlines": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", + "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz", + "integrity": "sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.18.20", + "get-tsconfig": "^4.7.2", + "source-map-support": "^0.5.21" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.7.tgz", + "integrity": "sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typedarray.prototype.slice/-/typedarray.prototype.slice-1.0.3.tgz", + "integrity": "sha512-8WbVAQAUlENo1q3c3zZYuy5k9VzBQvp8AX9WOtbvyWlLM1v5JaSRmjubLjzHF4JFtptjH/5c/i95yaElvcjC0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-offset": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", + "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/underscore": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/underscore.string": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz", + "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "^1.1.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici-types": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.13.0.tgz", + "integrity": "sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==", + "dev": true, + "license": "MIT" + }, + "node_modules/unimport": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.10.0.tgz", + "integrity": "sha512-/UvKRfWx3mNDWwWQhR62HsoM3wxHwYdTq8ellZzMOHnnw4Dp8tovgthyW7DjTrbjDL+i4idOp06voz2VKlvrLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "acorn": "^8.12.1", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.11", + "mlly": "^1.7.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.3", + "scule": "^1.3.0", + "strip-literal": "^2.1.0", + "unplugin": "^1.12.0" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unimport/node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.1.tgz", + "integrity": "sha512-aXEH9c5qi3uYZHo0niUtxDlT9ylG/luMW/dZslSCkbtC31wCyFkmM0kyoBBh+Grhn7CL+/kvKLfN61/EdxPxMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.12.1", + "chokidar": "^3.6.0", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-auto-import": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/unplugin-auto-import/-/unplugin-auto-import-0.15.3.tgz", + "integrity": "sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.2", + "@rollup/pluginutils": "^5.0.2", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "minimatch": "^9.0.0", + "unimport": "^3.0.6", + "unplugin": "^1.3.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-auto-import/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz", + "integrity": "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.2", + "@rollup/pluginutils": "^5.0.2", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.0", + "minimatch": "^7.4.2", + "resolve": "^1.22.1", + "unplugin": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/unplugin-vue-setup-extend-plus": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unplugin-vue-setup-extend-plus/-/unplugin-vue-setup-extend-plus-1.0.1.tgz", + "integrity": "sha512-mW2IzkyJITyspAV/LEdnEyE1CJip9jB5fCeaVv7Q6X0oJyDrOxXoB+jyet0q5pRJNjErbjQx950/8NPTvbqLTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.2.37", + "magic-string": "^0.26.2", + "unplugin": "^1.3.1" + } + }, + "node_modules/unplugin-vue-setup-extend-plus/node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8flags": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vconsole": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.15.1.tgz", + "integrity": "sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.17.2", + "copy-text-to-clipboard": "^3.0.1", + "core-js": "^3.11.0", + "mutation-observer": "^1.0.3" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + }, + "engines": { + "node": ">= 0.9" + } + }, + "node_modules/vinyl-file": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-1.3.0.tgz", + "integrity": "sha512-i1CGRaiDs3qJ+Yc8cgtOnrZOwlhY02oDBrWSBKD9uYSsxqQG1RhNXLmR/orke0ye0sbKpVtAUHwhF2rs9A46cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^1.0.0", + "vinyl": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-file/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-banner": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/vite-plugin-banner/-/vite-plugin-banner-0.7.1.tgz", + "integrity": "sha512-Bww2Xd5tOGsZ1yZ9rQiGneryvsL1u86znPrqeQjCsXPsG72pnSdV5lcQA+cy8UNDguMqyTJiCevlNUbLnT85UA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-compression": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", + "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-compression/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vite-plugin-compression/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vite-plugin-compression/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vite-plugin-compression/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-compression/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-compression/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-compression/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-mock": { + "version": "2.9.8", + "resolved": "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.9.8.tgz", + "integrity": "sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mockjs": "^1.0.4", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "connect": "^3.7.0", + "debug": "^4.3.2", + "esbuild": "^0.14.36", + "fast-glob": "^3.2.7", + "path-to-regexp": "^6.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "mockjs": ">=1.1.0", + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-mock/node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-mock/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vite-plugin-mock/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vite-plugin-mock/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/vite-plugin-mock/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-mock/node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "node_modules/vite-plugin-mock/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-mock/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vite-plugin-pages": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/vite-plugin-pages/-/vite-plugin-pages-0.29.1.tgz", + "integrity": "sha512-zPf4YIBuv2nOwvtEFeS+Ac4O7Ngoz5x9P0zaj0xPfCObTGEIvo/30//D2FG24UB6YedrFOaJjLq/BS/M/JDKEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "deep-equal": "^2.2.1", + "extract-comments": "^1.1.0", + "fast-glob": "^3.2.12", + "json5": "^2.2.3", + "local-pkg": "^0.4.3", + "picocolors": "^1.0.0", + "yaml": "^2.2.2" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^2.7.0 || ^3.0.0", + "vite": "^2.0.0 || ^3.0.0-0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-spritesmith": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-spritesmith/-/vite-plugin-spritesmith-0.1.1.tgz", + "integrity": "sha512-y8PI25/FLe+CJr0bI+kOIptWy1fl7AOnZLXhXcb0VyUDAneZlFsFJm+K44lksNgV+0lRojAeMwwP+BhNqqL7Hw==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs-extra": "^10.0.0", + "gaze": "^1.1.3", + "lodash": "^4.17.21", + "mkdirp": "^1.0.4", + "spritesheet-templates": "^10.5.2", + "spritesmith": "^3.4.0" + } + }, + "node_modules/vite-plugin-spritesmith/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-svg-icons": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz", + "integrity": "sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/svgo": "^2.6.1", + "cors": "^2.8.5", + "debug": "^4.3.3", + "etag": "^1.8.1", + "fs-extra": "^10.0.0", + "pathe": "^0.2.0", + "svg-baker": "1.7.0", + "svgo": "^2.8.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/vite-plugin-svg-icons/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/vite-plugin-svg-icons/node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-svg-icons/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-3.7.2.tgz", + "integrity": "sha512-PSe/t2RoVzB64Ofuec7W/Z0FuKHzmU7esLrMOGwX+BNyXt8dAMtYbz4wL/TqoH1zVPDdjQecQpM5+K9VnBYpAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.22.17", + "@babel/plugin-proposal-decorators": "^7.22.15", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.1", + "@vue/compiler-dom": "^3.2.47", + "kolorist": "^1.7.0", + "magic-string": "^0.30.0" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0" + } + }, + "node_modules/vite-plugin-vue-meta-layouts": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-meta-layouts/-/vite-plugin-vue-meta-layouts-0.2.2.tgz", + "integrity": "sha512-u3WHlSzqE7tfOFFN7IygkQXDgnhVYD+GSfSXeMk1m/xI/gMtJtLeVwjBTow4kOn3oEkJcj/I9yCZoWpQeRHTFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "local-pkg": "^0.4.3" + }, + "peerDependencies": { + "vite": ">=2.0.0", + "vue-router": ">=4.0.14" + } + }, + "node_modules/vue": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.36.tgz", + "integrity": "sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.4.36", + "@vue/compiler-sfc": "3.4.36", + "@vue/runtime-dom": "3.4.36", + "@vue/server-renderer": "3.4.36", + "@vue/shared": "3.4.36" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-echarts": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-6.7.3.tgz", + "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "resize-detector": "^0.3.0", + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.5", + "@vue/runtime-core": "^3.0.0", + "echarts": "^5.4.1", + "vue": "^2.6.12 || ^3.1.1" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "@vue/runtime-core": { + "optional": true + } + } + }, + "node_modules/vue-echarts/node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-router": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.3.tgz", + "integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.3.tgz", + "integrity": "sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zrender": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.6.0.tgz", + "integrity": "sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/admin/package.json b/admin/package.json new file mode 100644 index 0000000..cd0f440 --- /dev/null +++ b/admin/package.json @@ -0,0 +1,90 @@ +{ + "version": "2.6.0", + "scripts": { + "dev": "vite", + "build:test": "vue-tsc --noEmit && vite build --mode test", + "build:admin": "vite build --mode admin", + "build": "vite build", + "serve:test": "http-server ./dist-test -o", + "serve": "http-server ./dist -o", + "svgo": "svgo -f src/assets/icons", + "new": "plop", + "lint:tsc": "vue-tsc --noEmit", + "lint:eslint": "eslint --cache --fix --no-ignore --no-error-on-unmatched-pattern --ext .ts,.tsx,.vue src/", + "lint:stylelint": "stylelint src/**/*.{css,scss,vue} --cache --fix --allow-empty-input", + "release": "bumpp" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@types/marked": "^4.0.8", + "@vueuse/core": "^10.0.2", + "@vueuse/integrations": "^10.0.2", + "axios": "^1.3.6", + "dayjs": "^1.11.7", + "echarts": "^5.4.2", + "element-plus": "^2.3.3", + "eruda": "^3.0.0", + "highlight.js": "^11.7.0", + "hotkeys-js": "^3.10.2", + "lodash-es": "^4.17.21", + "marked": "^4.3.0", + "md-editor-v3": "^3.0.0", + "mitt": "^3.0.0", + "mockjs": "^1.1.0", + "nprogress": "^0.2.0", + "path-browserify": "^1.0.1", + "path-to-regexp": "^6.2.1", + "pinia": "^2.0.35", + "postcss": "^8.4.23", + "qs": "^6.11.1", + "resize-observer-polyfill": "^1.5.1", + "tailwindcss": "^3.3.1", + "vconsole": "^3.15.0", + "vue": "^3.2.47", + "vue-echarts": "^6.5.4", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@antfu/eslint-config": "^0.38.5", + "@iconify-json/ep": "^1.1.10", + "@iconify/vue": "^4.1.1", + "@types/nprogress": "^0.2.0", + "@types/path-browserify": "^1.0.0", + "@types/qs": "^6.9.7", + "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue-jsx": "^3.0.1", + "autoprefixer": "^10.4.14", + "bumpp": "^9.1.0", + "eslint": "^8.38.0", + "esno": "^0.16.3", + "fs-extra": "^11.1.1", + "http-server": "^14.1.1", + "less": "^4.2.0", + "npm-run-all": "^4.1.5", + "plop": "^3.1.2", + "postcss-html": "^1.5.0", + "sass": "^1.62.0", + "stylelint": "^15.5.0", + "stylelint-config-standard": "^33.0.0", + "stylelint-config-standard-scss": "^8.0.0", + "stylelint-config-standard-vue": "^1.0.0", + "stylelint-scss": "^4.6.0", + "stylelint-stylistic": "^0.4.0", + "svgo": "^3.0.2", + "terser": "^5.17.1", + "typescript": "^5.0.4", + "unplugin-auto-import": "^0.15.3", + "unplugin-vue-components": "^0.24.1", + "unplugin-vue-setup-extend-plus": "^1.0.0", + "vite": "^4.3.1", + "vite-plugin-banner": "^0.7.0", + "vite-plugin-compression": "^0.5.1", + "vite-plugin-mock": "^2.9.8", + "vite-plugin-pages": "^0.29.0", + "vite-plugin-spritesmith": "^0.1.1", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-vue-inspector": "^3.4.0", + "vite-plugin-vue-meta-layouts": "^0.2.2", + "vue-tsc": "^1.4.2" + } +} diff --git a/admin/plop-templates/component/index.hbs b/admin/plop-templates/component/index.hbs new file mode 100644 index 0000000..162c0d3 --- /dev/null +++ b/admin/plop-templates/component/index.hbs @@ -0,0 +1,13 @@ + + + + + diff --git a/admin/plop-templates/component/prompt.js b/admin/plop-templates/component/prompt.js new file mode 100644 index 0000000..2b42bd2 --- /dev/null +++ b/admin/plop-templates/component/prompt.js @@ -0,0 +1,65 @@ +const fs = require('fs') + +function getFolder(path) { + const components = [] + const files = fs.readdirSync(path) + files.forEach((item) => { + const stat = fs.lstatSync(`${path}/${item}`) + if (stat.isDirectory() === true && item !== 'components') { + components.push(`${path}/${item}`) + components.push(...getFolder(`${path}/${item}`)) + } + }) + return components +} + +module.exports = { + description: '创建组件', + prompts: [ + { + type: 'confirm', + name: 'isGlobal', + message: '是否为全局组件', + default: false, + }, + { + type: 'list', + name: 'path', + message: '请选择组件创建目录', + choices: getFolder('src/views'), + when: (answers) => { + return !answers.isGlobal + }, + }, + { + type: 'input', + name: 'name', + message: '请输入组件名称', + validate: (v) => { + if (!v || v.trim === '') { + return '组件名称不能为空' + } + else { + return true + } + }, + }, + ], + actions: (data) => { + let path = '' + if (data.isGlobal) { + path = 'src/components/{{properCase name}}/index.vue' + } + else { + path = `${data.path}/components/{{properCase name}}/index.vue` + } + const actions = [ + { + type: 'add', + path, + templateFile: 'plop-templates/component/index.hbs', + }, + ] + return actions + }, +} diff --git a/admin/plop-templates/page/index.hbs b/admin/plop-templates/page/index.hbs new file mode 100644 index 0000000..c9dadfd --- /dev/null +++ b/admin/plop-templates/page/index.hbs @@ -0,0 +1,20 @@ +{{#if isFilesystem}} + +meta: + title: 页面标题 + +{{/if}} + + + + + + diff --git a/admin/plop-templates/page/prompt.js b/admin/plop-templates/page/prompt.js new file mode 100644 index 0000000..83410ee --- /dev/null +++ b/admin/plop-templates/page/prompt.js @@ -0,0 +1,60 @@ +const path = require('path') +const fs = require('fs') + +function getFolder(path) { + const components = [] + const files = fs.readdirSync(path) + files.forEach((item) => { + const stat = fs.lstatSync(`${path}/${item}`) + if (stat.isDirectory() === true && item !== 'components') { + components.push(`${path}/${item}`) + components.push(...getFolder(`${path}/${item}`)) + } + }) + return components +} + +module.exports = { + description: '创建页面', + prompts: [ + { + type: 'list', + name: 'path', + message: '请选择页面创建目录', + choices: getFolder('src/views'), + }, + { + type: 'input', + name: 'name', + message: '请输入文件名', + validate: (v) => { + if (!v || v.trim === '') { + return '文件名不能为空' + } + else { + return true + } + }, + }, + { + type: 'confirm', + name: 'isFilesystem', + message: '是否为基于文件系统的路由页面', + default: false, + }, + ], + actions: (data) => { + const relativePath = path.relative('src/views', data.path) + const actions = [ + { + type: 'add', + path: `${data.path}/{{dotCase name}}.vue`, + templateFile: 'plop-templates/page/index.hbs', + data: { + componentName: `${relativePath} ${data.name}`, + }, + }, + ] + return actions + }, +} diff --git a/admin/plop-templates/store/index.hbs b/admin/plop-templates/store/index.hbs new file mode 100644 index 0000000..b3336c5 --- /dev/null +++ b/admin/plop-templates/store/index.hbs @@ -0,0 +1,11 @@ +const use{{ properCase name }}Store = defineStore( + // 唯一ID + '{{ camelCase name }}', + { + state: () => ({}), + getters: {}, + actions: {}, + }, +) + +export default use{{ properCase name }}Store diff --git a/admin/plop-templates/store/prompt.js b/admin/plop-templates/store/prompt.js new file mode 100644 index 0000000..2cefa24 --- /dev/null +++ b/admin/plop-templates/store/prompt.js @@ -0,0 +1,28 @@ +module.exports = { + description: '创建全局状态', + prompts: [ + { + type: 'input', + name: 'name', + message: '请输入模块名称', + validate: (v) => { + if (!v || v.trim === '') { + return '模块名称不能为空' + } + else { + return true + } + }, + }, + ], + actions: () => { + const actions = [ + { + type: 'add', + path: 'src/store/modules/{{camelCase name}}.ts', + templateFile: 'plop-templates/store/index.hbs', + }, + ] + return actions + }, +} diff --git a/admin/plopfile.js b/admin/plopfile.js new file mode 100644 index 0000000..2103b17 --- /dev/null +++ b/admin/plopfile.js @@ -0,0 +1,6 @@ +module.exports = function (plop) { + plop.setWelcomeMessage('请选择需要创建的模式:') + plop.setGenerator('page', require('./plop-templates/page/prompt')) + plop.setGenerator('component', require('./plop-templates/component/prompt')) + plop.setGenerator('store', require('./plop-templates/store/prompt')) +} diff --git a/admin/pnpm-lock.yaml b/admin/pnpm-lock.yaml new file mode 100644 index 0000000..72ce673 --- /dev/null +++ b/admin/pnpm-lock.yaml @@ -0,0 +1,10262 @@ +lockfileVersion: '6.0' + +dependencies: + '@element-plus/icons-vue': + specifier: ^2.1.0 + version: registry.npmmirror.com/@element-plus/icons-vue@2.1.0(vue@3.2.47) + '@types/marked': + specifier: ^4.0.8 + version: registry.npmmirror.com/@types/marked@4.0.8 + '@vueuse/core': + specifier: ^10.0.2 + version: 10.0.2(vue@3.2.47) + '@vueuse/integrations': + specifier: ^10.0.2 + version: 10.0.2(axios@1.3.6)(nprogress@0.2.0)(vue@3.2.47) + axios: + specifier: ^1.3.6 + version: 1.3.6 + dayjs: + specifier: ^1.11.7 + version: 1.11.7 + echarts: + specifier: ^5.4.2 + version: registry.npmmirror.com/echarts@5.4.2 + element-plus: + specifier: ^2.3.3 + version: 2.3.3(vue@3.2.47) + eruda: + specifier: ^3.0.0 + version: 3.0.0 + highlight.js: + specifier: ^11.7.0 + version: registry.npmmirror.com/highlight.js@11.7.0 + hotkeys-js: + specifier: ^3.10.2 + version: 3.10.2 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + marked: + specifier: ^4.3.0 + version: registry.npmmirror.com/marked@4.3.0 + md-editor-v3: + specifier: ^3.0.0 + version: registry.npmmirror.com/md-editor-v3@3.0.0(vue@3.2.47) + mitt: + specifier: ^3.0.0 + version: 3.0.0 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + path-to-regexp: + specifier: ^6.2.1 + version: 6.2.1 + pinia: + specifier: ^2.0.35 + version: 2.0.35(typescript@5.0.4)(vue@3.2.47) + postcss: + specifier: ^8.4.23 + version: registry.npmmirror.com/postcss@8.4.23 + qs: + specifier: ^6.11.1 + version: 6.11.1 + resize-observer-polyfill: + specifier: ^1.5.1 + version: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + tailwindcss: + specifier: ^3.3.1 + version: registry.npmmirror.com/tailwindcss@3.3.1(postcss@8.4.23) + vconsole: + specifier: ^3.15.0 + version: 3.15.0 + vue: + specifier: ^3.2.47 + version: 3.2.47 + vue-echarts: + specifier: ^6.5.4 + version: registry.npmmirror.com/vue-echarts@6.5.4(echarts@5.4.2)(vue@3.2.47) + vue-router: + specifier: ^4.1.6 + version: 4.1.6(vue@3.2.47) + +devDependencies: + '@antfu/eslint-config': + specifier: ^0.38.5 + version: 0.38.5(eslint@8.38.0)(typescript@5.0.4) + '@iconify-json/ep': + specifier: ^1.1.10 + version: 1.1.10 + '@iconify/vue': + specifier: ^4.1.1 + version: 4.1.1(vue@3.2.47) + '@types/nprogress': + specifier: ^0.2.0 + version: 0.2.0 + '@types/path-browserify': + specifier: ^1.0.0 + version: 1.0.0 + '@types/qs': + specifier: ^6.9.7 + version: 6.9.7 + '@vitejs/plugin-vue': + specifier: ^4.1.0 + version: 4.1.0(vite@4.3.1)(vue@3.2.47) + '@vitejs/plugin-vue-jsx': + specifier: ^3.0.1 + version: 3.0.1(vite@4.3.1)(vue@3.2.47) + autoprefixer: + specifier: ^10.4.14 + version: registry.npmmirror.com/autoprefixer@10.4.14(postcss@8.4.23) + bumpp: + specifier: ^9.1.0 + version: 9.1.0 + cz-git: + specifier: ^1.6.1 + version: 1.6.1 + eslint: + specifier: ^8.38.0 + version: 8.38.0 + esno: + specifier: ^0.16.3 + version: 0.16.3 + fs-extra: + specifier: ^11.1.1 + version: 11.1.1 + http-server: + specifier: ^14.1.1 + version: 14.1.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + plop: + specifier: ^3.1.2 + version: 3.1.2 + postcss-html: + specifier: ^1.5.0 + version: 1.5.0 + sass: + specifier: ^1.62.0 + version: 1.62.0 + simple-git-hooks: + specifier: ^2.8.1 + version: 2.8.1 + stylelint: + specifier: ^15.5.0 + version: 15.5.0 + stylelint-config-standard: + specifier: ^33.0.0 + version: 33.0.0(stylelint@15.5.0) + stylelint-config-standard-scss: + specifier: ^8.0.0 + version: 8.0.0(postcss@8.4.23)(stylelint@15.5.0) + stylelint-config-standard-vue: + specifier: ^1.0.0 + version: 1.0.0(postcss-html@1.5.0)(stylelint@15.5.0) + stylelint-scss: + specifier: ^4.6.0 + version: 4.6.0(stylelint@15.5.0) + stylelint-stylistic: + specifier: ^0.4.0 + version: 0.4.0(stylelint@15.5.0) + svgo: + specifier: ^3.0.2 + version: 3.0.2 + terser: + specifier: ^5.17.1 + version: 5.17.1 + typescript: + specifier: ^5.0.4 + version: 5.0.4 + unplugin-auto-import: + specifier: ^0.15.3 + version: 0.15.3(@vueuse/core@10.0.2) + unplugin-vue-components: + specifier: ^0.24.1 + version: 0.24.1(vue@3.2.47) + unplugin-vue-setup-extend-plus: + specifier: ^1.0.0 + version: 1.0.0 + vite: + specifier: ^4.3.1 + version: 4.3.1(sass@1.62.0)(terser@5.17.1) + vite-plugin-banner: + specifier: ^0.7.0 + version: 0.7.0 + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@4.3.1) + vite-plugin-mock: + specifier: ^2.9.8 + version: 2.9.8(mockjs@1.1.0)(vite@4.3.1) + vite-plugin-pages: + specifier: ^0.29.0 + version: 0.29.0(vite@4.3.1) + vite-plugin-spritesmith: + specifier: ^0.1.1 + version: 0.1.1 + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@4.3.1) + vite-plugin-vue-inspector: + specifier: ^3.4.0 + version: 3.4.0(vite@4.3.1) + vite-plugin-vue-meta-layouts: + specifier: ^0.2.2 + version: 0.2.2(vite@4.3.1)(vue-router@4.1.6) + vue-tsc: + specifier: ^1.4.2 + version: 1.4.2(typescript@5.0.4) + +packages: + + /@ampproject/remapping@2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.1.1 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.18 + dev: true + + /@antfu/eslint-config-basic@0.38.5(@typescript-eslint/eslint-plugin@5.59.0)(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-Xifabjs94QscgQoLgZbj87GsagvtzZBoEY1+efHsz6RZE8kHqHzxZr9ulEZ/3e563Ld8fDGbgCTAxkDhrhkOjA==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + eslint: 8.38.0 + eslint-plugin-antfu: 0.38.5(eslint@8.38.0)(typescript@5.0.4) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.38.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint@8.38.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.38.0) + eslint-plugin-markdown: 3.0.0(eslint@8.38.0) + eslint-plugin-n: 15.7.0(eslint@8.38.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-promise: 6.1.1(eslint@8.38.0) + eslint-plugin-unicorn: 46.0.0(eslint@8.38.0) + eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.59.0)(eslint@8.38.0) + eslint-plugin-yml: 1.5.0(eslint@8.38.0) + jsonc-eslint-parser: 2.2.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + - typescript + dev: true + + /@antfu/eslint-config-ts@0.38.5(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-5NCZj44HgWNLvp5ikah26f7RnovhSgrNzfO3zSMewhaJZgDerglVpig3Rc0tOZFEGieWZTDWruZHyvZZRc3lJw==} + peerDependencies: + eslint: '>=7.4.0' + typescript: '>=3.9' + dependencies: + '@antfu/eslint-config-basic': 0.38.5(@typescript-eslint/eslint-plugin@5.59.0)(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + eslint: 8.38.0 + eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true + + /@antfu/eslint-config-vue@0.38.5(@typescript-eslint/eslint-plugin@5.59.0)(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-vfih3rjrPfaqep/UaxKs0tFifBvxzL3QXy6uW7eYXkabwglG7IeUZZZJnbbKe8bIGqfLNGl3HDHHDiloprivlQ==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-basic': 0.38.5(@typescript-eslint/eslint-plugin@5.59.0)(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + '@antfu/eslint-config-ts': 0.38.5(eslint@8.38.0)(typescript@5.0.4) + eslint: 8.38.0 + eslint-plugin-vue: 9.11.0(eslint@8.38.0) + local-pkg: 0.4.3 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/eslint-config@0.38.5(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-Oks5vh5FPMu/IAmXeaTzp0YUYoDuvM7UqaRyFQ7EOG9NLx8TBXQw7gkqB/h5+d11ikhKxrGCMbxcUO7910dobg==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-vue': 0.38.5(@typescript-eslint/eslint-plugin@5.59.0)(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + eslint: 8.38.0 + eslint-plugin-eslint-comments: 3.2.0(eslint@8.38.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.0)(eslint@8.38.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.38.0) + eslint-plugin-n: 15.7.0(eslint@8.38.0) + eslint-plugin-promise: 6.1.1(eslint@8.38.0) + eslint-plugin-unicorn: 46.0.0(eslint@8.38.0) + eslint-plugin-vue: 9.11.0(eslint@8.38.0) + eslint-plugin-yml: 1.5.0(eslint@8.38.0) + jsonc-eslint-parser: 2.2.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/utils@0.7.2: + resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==} + dev: true + + /@babel/code-frame@7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/code-frame@7.21.4: + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/compat-data@7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.21.3: + resolution: {integrity: sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.21.3) + '@babel/helper-module-transforms': 7.21.2 + '@babel/helpers': 7.21.0 + '@babel/parser': 7.21.3 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.21.3: + resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.18 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.3): + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.0 + '@babel/core': 7.21.3 + '@babel/helper-validator-option': 7.21.0 + browserslist: registry.npmmirror.com/browserslist@4.21.5 + lru-cache: registry.npmmirror.com/lru-cache@5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.3): + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-member-expression-to-functions@7.21.0: + resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-module-imports@7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-module-transforms@7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-module-imports': 7.18.6 + '@babel/helper-simple-access': 7.20.2 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression@7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-plugin-utils@7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers@7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access@7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/helper-string-parser@7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser@7.21.2: + resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.2 + + /@babel/parser@7.21.3: + resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.3 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.3): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.3): + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.21.3): + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typescript@7.21.3(@babel/core@7.21.3): + resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.0(@babel/core@7.21.3) + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.3) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/runtime@7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + dev: true + + /@babel/traverse@7.21.3: + resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.21.3 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.3 + '@babel/types': 7.21.3 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.21.2: + resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@babel/types@7.21.3: + resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@csstools/css-parser-algorithms@2.1.1(@csstools/css-tokenizer@2.1.1): + resolution: {integrity: sha512-viRnRh02AgO4mwIQb2xQNJju0i+Fh9roNgmbR5xEuG7J3TGgxjnE95HnBLgsFJOJOksvcfxOUCgODcft6Y07cA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.1.1 + dependencies: + '@csstools/css-tokenizer': 2.1.1 + dev: true + + /@csstools/css-tokenizer@2.1.1: + resolution: {integrity: sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/media-query-list-parser@2.0.4(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1): + resolution: {integrity: sha512-GyYot6jHgcSDZZ+tLSnrzkR7aJhF2ZW6d+CXH66mjy5WpAQhZD4HDke2OQ36SivGRWlZJpAz7TzbW6OKlEpxAA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.1.1 + '@csstools/css-tokenizer': ^2.1.1 + dependencies: + '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) + '@csstools/css-tokenizer': 2.1.1 + dev: true + + /@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.11): + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.10 + dependencies: + postcss-selector-parser: 6.0.11 + dev: true + + /@ctrl/tinycolor@3.6.0: + resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} + engines: {node: '>=10'} + dev: false + + /@esbuild-kit/cjs-loader@2.4.0: + resolution: {integrity: sha512-DBBCiHPgL2B/elUpvCDhNHXnlZQ9sfO2uyt1OJyAXKT41beQEFY4OxZ6gwS+ZesRCbZ6JV8M7GEyOPkjv8kdIw==} + dependencies: + '@esbuild-kit/core-utils': 3.0.0 + get-tsconfig: 4.2.0 + dev: true + + /@esbuild-kit/core-utils@3.0.0: + resolution: {integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==} + dependencies: + esbuild: 0.15.18 + source-map-support: 0.5.21 + dev: true + + /@esbuild-kit/esm-loader@2.5.0: + resolution: {integrity: sha512-ySs0qOsiwj+hsgZM9/MniGdvfa9/WzqfFuIia8/5gSUPeIQIX2/tG91QakxPFOR35VFiwTB7wCiHtiS6dc6SkA==} + dependencies: + '@esbuild-kit/core-utils': 3.0.0 + get-tsconfig: 4.2.0 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.38.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.38.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /@eslint-community/regexpp@4.5.0: + resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.5.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.38.0: + resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@floating-ui/core@1.2.6: + resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==} + dev: false + + /@floating-ui/dom@1.2.6: + resolution: {integrity: sha512-02vxFDuvuVPs22iJICacezYJyf7zwwOCWkPNkWNBr1U0Qt1cKFYzWvxts0AmqcOQGwt/3KJWcWIgtbUU38keyw==} + dependencies: + '@floating-ui/core': 1.2.6 + dev: false + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@iconify-json/ep@1.1.10: + resolution: {integrity: sha512-1N3H28hbulsw3UNZjAZ1c7BhK9mLiw8VrngQc58xNQ7dnzaUgtKN81aqkrZ9ffDXcfJGL3Rk9Yc3/QrSSI24sg==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/vue@4.1.1(vue@3.2.47): + resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} + peerDependencies: + vue: '>=3' + dependencies: + '@iconify/types': 2.0.0 + vue: 3.2.47 + dev: true + + /@jridgewell/source-map@0.3.3: + resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.18 + dev: true + + /@jsdevtools/ez-spawn@3.0.4: + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.1 + type-detect: 4.0.8 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@rollup/pluginutils@5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.0 + estree-walker: 2.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@types/debug@4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + dependencies: + '@types/ms': 0.7.31 + dev: true + + /@types/estree@1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + dev: true + + /@types/fined@1.1.3: + resolution: {integrity: sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==} + dev: true + + /@types/inquirer@8.2.5: + resolution: {integrity: sha512-QXlzybid60YtAwfgG3cpykptRYUx2KomzNutMlWsQC64J/WG/gQSl+P4w7A21sGN0VIxRVava4rgnT7FQmFCdg==} + dependencies: + '@types/through': 0.0.30 + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/liftoff@4.0.0: + resolution: {integrity: sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==} + dependencies: + '@types/fined': 1.1.3 + '@types/node': 18.11.3 + dev: true + + /@types/lodash-es@4.17.7: + resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==} + dependencies: + '@types/lodash': 4.14.192 + dev: false + + /@types/lodash@4.14.192: + resolution: {integrity: sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A==} + dev: false + + /@types/mdast@3.0.11: + resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/mockjs@1.0.7: + resolution: {integrity: sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==} + dev: true + + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: true + + /@types/node@18.11.3: + resolution: {integrity: sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==} + dev: true + + /@types/node@18.13.0: + resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} + dev: true + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/nprogress@0.2.0: + resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==} + dev: true + + /@types/path-browserify@1.0.0: + resolution: {integrity: sha512-XMCcyhSvxcch8b7rZAtFAaierBYdeHXVvg2iYnxOV0MCQHmPuRRmGZPFDRzPayxcGiiSL1Te9UIO+f3cuj0tfw==} + dev: true + + /@types/qs@6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + dev: true + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + dependencies: + '@types/node': 18.11.3 + dev: true + + /@types/through@0.0.30: + resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} + dependencies: + '@types/node': 18.13.0 + dev: true + + /@types/unist@2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@types/web-bluetooth@0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + /@typescript-eslint/eslint-plugin@5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.0 + '@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.0 + '@typescript-eslint/type-utils': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.38.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@5.59.0(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.0 + '@typescript-eslint/types': 5.59.0 + '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.38.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.59.0: + resolution: {integrity: sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.0 + '@typescript-eslint/visitor-keys': 5.59.0 + dev: true + + /@typescript-eslint/type-utils@5.59.0(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.38.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.59.0: + resolution: {integrity: sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.59.0(typescript@5.0.4): + resolution: {integrity: sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.0 + '@typescript-eslint/visitor-keys': 5.59.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.59.0(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.59.0 + '@typescript-eslint/types': 5.59.0 + '@typescript-eslint/typescript-estree': 5.59.0(typescript@5.0.4) + eslint: 8.38.0 + eslint-scope: 5.1.1 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.59.0: + resolution: {integrity: sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.1)(vue@3.2.47): + resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.21.3 + '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.3) + '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.3) + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + vue: 3.2.47 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@4.1.0(vite@4.3.1)(vue@3.2.47): + resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + vue: 3.2.47 + dev: true + + /@volar/language-core@1.4.0: + resolution: {integrity: sha512-zZg771L/v4MCPwM1KJxvnQ3q3QgbGJtEytivqf+PsxPr0kQ7XtwB1J30dd+YSGN869pXXZ0V6vWdHkDpWC8F3A==} + dependencies: + '@volar/source-map': 1.4.0 + dev: true + + /@volar/source-map@1.4.0: + resolution: {integrity: sha512-gkV8ol9qtP7aMdgijc8a5Yoxxoo90TT55YCi9bsMbKxEUDsOAnlciFNlijR9Ebe42d67GV3w15/RzjveTRNGBw==} + dependencies: + muggle-string: 0.2.2 + dev: true + + /@volar/typescript@1.4.0(typescript@5.0.4): + resolution: {integrity: sha512-r6OMHj/LeS86iQy3LEjjS+qpmHr9I7BiH8gAwp9WEJP76FHlMPi/EPDQxhf3VcMQ/w6Pi5aBczqI+I3akr9t4g==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-core': 1.4.0 + typescript: 5.0.4 + dev: true + + /@volar/vue-language-core@1.4.2: + resolution: {integrity: sha512-bDdFowfnyHI7udELEgUWukOh4l9jVTaxb9jZtj0GxUp0Mjj0u81d9+jE2UC3fFJpbndQLGFR6F+ffguHgmrj6Q==} + dependencies: + '@volar/language-core': 1.4.0 + '@volar/source-map': 1.4.0 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-sfc': 3.2.47 + '@vue/reactivity': 3.2.47 + '@vue/shared': 3.2.47 + minimatch: registry.npmmirror.com/minimatch@9.0.0 + muggle-string: 0.2.2 + vue-template-compiler: 2.7.14 + dev: true + + /@volar/vue-typescript@1.4.2(typescript@5.0.4): + resolution: {integrity: sha512-A1m1cSvS0Pf7Sm9q0S/1riV4RQQeH2h5gGo0vR9fGK2SrAStvh4HuuxPOX4N9uMDbRsNMhC0ILXwtlvjQ/IXJA==} + dependencies: + '@volar/typescript': 1.4.0(typescript@5.0.4) + '@volar/vue-language-core': 1.4.2 + transitivePeerDependencies: + - typescript + dev: true + + /@vue/babel-helper-vue-transform-on@1.0.2: + resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} + dev: true + + /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.3): + resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} + dependencies: + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.3) + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.3 + '@babel/types': 7.21.3 + '@vue/babel-helper-vue-transform-on': 1.0.2 + camelcase: 6.3.0 + html-tags: 3.2.0 + svg-tags: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: true + + /@vue/compiler-core@3.2.47: + resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} + dependencies: + '@babel/parser': 7.21.2 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + source-map: 0.6.1 + + /@vue/compiler-dom@3.2.47: + resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} + dependencies: + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/compiler-sfc@3.2.47: + resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + dependencies: + '@babel/parser': 7.21.2 + '@vue/compiler-core': 3.2.47 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-ssr': 3.2.47 + '@vue/reactivity-transform': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: registry.npmmirror.com/postcss@8.4.23 + source-map: 0.6.1 + + /@vue/compiler-ssr@3.2.47: + resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/devtools-api@6.4.5: + resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} + + /@vue/devtools-api@6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + dev: false + + /@vue/reactivity-transform@3.2.47: + resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} + dependencies: + '@babel/parser': 7.21.2 + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + + /@vue/reactivity@3.2.47: + resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} + dependencies: + '@vue/shared': 3.2.47 + + /@vue/runtime-core@3.2.47: + resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + dependencies: + '@vue/reactivity': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/runtime-dom@3.2.47: + resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + dependencies: + '@vue/runtime-core': 3.2.47 + '@vue/shared': 3.2.47 + csstype: 2.6.21 + + /@vue/server-renderer@3.2.47(vue@3.2.47): + resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + peerDependencies: + vue: 3.2.47 + dependencies: + '@vue/compiler-ssr': 3.2.47 + '@vue/shared': 3.2.47 + vue: 3.2.47 + + /@vue/shared@3.2.47: + resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + + /@vueuse/core@10.0.2(vue@3.2.47): + resolution: {integrity: sha512-/UGc2cXbxbeIFLDSJyHUjI9QZ4CJJkhiJe9TbKNPSofcWmYhhUgJ+7iw9njXTKu/Xc3Z6UeXVR9fosW1+cyrnQ==} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 10.0.2 + '@vueuse/shared': 10.0.2(vue@3.2.47) + vue-demi: 0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/core@9.13.0(vue@3.2.47): + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.2.47) + vue-demi: registry.npmmirror.com/vue-demi@0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/integrations@10.0.2(axios@1.3.6)(nprogress@0.2.0)(vue@3.2.47): + resolution: {integrity: sha512-HgyNe46D0fOhKe2PZsNDwHt6/0S+J5lJCwZbw4kPahH2T1oBqZIJppoSvE6b3aTWu0OXOJi1WISZoVfe5kn/TQ==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.0.2(vue@3.2.47) + '@vueuse/shared': 10.0.2(vue@3.2.47) + axios: 1.3.6 + nprogress: 0.2.0 + vue-demi: 0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/metadata@10.0.2: + resolution: {integrity: sha512-APSjlABrV+Q74c+FR0kFETvcN9W2pAaT3XF3WwqWUuk4srmVxv7DY4WshZxK2KYk1+MVY0Fus6J1Hk/JXVm6Aw==} + + /@vueuse/metadata@9.13.0: + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + dev: false + + /@vueuse/shared@10.0.2(vue@3.2.47): + resolution: {integrity: sha512-7W2l6qZaFvla3zAeEVo8hNHkNRKCezJa3JjZAKv3K4KsevXobHhVNr+RHaOVNK/6ETpFmtqiK+0pMIADbHjjag==} + dependencies: + vue-demi: registry.npmmirror.com/vue-demi@0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/shared@9.13.0(vue@3.2.47): + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + dependencies: + vue-demi: registry.npmmirror.com/vue-demi@0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + 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==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + dev: true + + /array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + dev: false + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: true + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true + + /aws4@1.11.0: + resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} + dev: true + + /axios@1.3.6: + resolution: {integrity: sha512-PEcdkk7JcdPiMDkvM4K6ZBRYq9keuVJsToxm2zQIM70Qqo2WHTdJZMXcG9X+RmRp2VPNUQC8W1RAGbgt6b1yMg==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /bin-pack@1.0.2: + resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.1 + dev: true + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.0 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: 7.5.0 + dev: true + + /bumpp@9.1.0: + resolution: {integrity: sha512-m3+YD8uoa0VttG+RV4oKr3lK60gkUn1yPDaBTFwT7xrdJUsy7Jm0VYgx457HI3VPAOX8szLmy1x2y1QcvB+M8Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + c12: 1.2.0 + cac: 6.7.14 + fast-glob: 3.2.12 + prompts: 2.4.2 + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + /c12@1.2.0: + resolution: {integrity: sha512-CMznkE0LpNEuD8ILp5QvsQVP+YvcpJnrI/zFeFnosU2PyDtx1wT7tXfZ8S3Tl3l9MTTXbKeuhDYKwgvnAPOx3w==} + dependencies: + defu: 6.1.2 + dotenv: 16.0.3 + giget: 1.1.2 + jiti: registry.npmmirror.com/jiti@1.18.2 + mlly: 1.2.0 + pathe: 1.1.0 + pkg-types: 1.0.2 + rc9: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + get-intrinsic: 1.2.0 + + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: registry.npmmirror.com/quick-lru@4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + upper-case-first: 2.0.2 + dev: true + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@5.1.2: + resolution: {integrity: sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /chalk@5.2.0: + resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: registry.npmmirror.com/anymatch@3.1.3 + braces: registry.npmmirror.com/braces@3.0.2 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path@2.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + readdirp: registry.npmmirror.com/readdirp@3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + + /clone-stats@0.0.1: + resolution: {integrity: sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==} + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + dev: true + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@10.0.0: + resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} + engines: {node: '>=14'} + dev: true + + /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==} + engines: {node: '>= 10'} + dev: true + + /commander@9.4.1: + resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} + engines: {node: ^12.20.0 || >=14} + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: concat-map/download/concat-map-0.0.1.tgz} + + /concat-stream@1.5.2: + resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==} + engines: {'0': node >= 0.8} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 2.0.6 + typedarray: 0.0.7 + dev: true + + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + upper-case: 2.0.2 + dev: true + + /contentstream@1.0.0: + resolution: {integrity: sha512-jqWbfFZFG9tZbdej7+TzXI4kanABh3BLtTWY6NxqTK5zo6iTIeo5aq4iRVfYsLQ0y8ccQqmJR/J4NeMmEdnR2w==} + engines: {node: '>= 0.8.0'} + dependencies: + readable-stream: 1.0.34 + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /copy-text-to-clipboard@3.0.1: + resolution: {integrity: sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==} + engines: {node: '>=12'} + dev: false + + /core-js@3.28.0: + resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==} + requiresBuild: true + dev: false + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + vary: 1.1.2 + dev: true + + /corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /cosmiconfig@8.1.3: + resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-functions-list@3.1.0: + resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} + engines: {node: '>=12.22'} + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.0.1 + nth-check: 2.1.1 + dev: true + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /csstype@2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + + /cwise-compiler@1.1.3: + resolution: {integrity: sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==} + dependencies: + uniq: 1.0.1 + dev: true + + /cz-git@1.6.1: + resolution: {integrity: sha512-+ohk/MFETERw4o/WpN3hUk7GM8oAwnaQI/uDuREGm4/B+G3DghGvNZQ/0MbFqZHWgKWvMzNZI6eKmPo0uPCu1A==} + dev: true + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + + /data-uri-to-buffer@0.0.3: + resolution: {integrity: sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=} + dev: true + + /dayjs@1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} + dev: false + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decode-uri-component@0.2.0: + resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} + engines: {node: '>=0.10'} + dev: true + + /deep-equal@2.2.0: + resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} + dependencies: + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /defu@6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + dev: true + + /del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /destr@1.2.2: + resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} + dev: true + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: registry.npmmirror.com/entities@2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: registry.npmmirror.com/entities@2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: registry.npmmirror.com/entities@4.5.0 + dev: true + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /element-plus@2.3.3(vue@3.2.47): + resolution: {integrity: sha512-Zy61OXrG6b4FF3h29A9ZOUkaEQXjCuFwNa7DlpB3Vo+42Tw5zBbHe5a4BY7i56TVJG5xTbS9UQyA726J91pDqg==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@ctrl/tinycolor': 3.6.0 + '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue@2.1.0(vue@3.2.47) + '@floating-ui/dom': 1.2.6 + '@popperjs/core': registry.npmmirror.com/@sxzz/popperjs-es@2.11.7 + '@types/lodash': 4.14.192 + '@types/lodash-es': 4.17.7 + '@vueuse/core': 9.13.0(vue@3.2.47) + async-validator: 4.2.5 + dayjs: 1.11.7 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.2.47 + transitivePeerDependencies: + - '@vue/composition-api' + dev: false + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /entities@4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /eruda@3.0.0: + resolution: {integrity: sha512-6L8A8aBHOQv0rqeBlNdJEl/hl6OAdLVRtJlVmBIlIJ6Fe1a92HFXO58jHLC0vFyuKV0deTjYjRaWwLo9lJ9K9A==} + dev: false + + /es-abstract@1.20.4: + resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: registry.npmmirror.com/function-bind@1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + has: registry.npmmirror.com/has@1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + unbox-primitive: 1.0.2 + dev: true + + /es-abstract@1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: registry.npmmirror.com/function-bind@1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: registry.npmmirror.com/has@1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: registry.npmmirror.com/has@1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: registry.npmmirror.com/has@1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 + dev: true + + /esbuild@0.15.18: + resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.15.18 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.15.18 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.15.18 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.15.18 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.15.18 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.15.18 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.15.18 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.15.18 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.15.18 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.15.18 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.15.18 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.15.18 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.15.18 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.15.18 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.15.18 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.15.18 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.15.18 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.15.18 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.15.18 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.15.18 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.15.18 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.15.18 + dev: true + + /esbuild@0.17.17: + resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.17 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.17 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.17 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.17 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.17 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.17 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.17 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.17 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.17 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.17 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.17 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.17 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.17 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.17 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.17 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.17 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.17 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.17 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.17 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.17 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.17 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.17 + dev: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: 3.2.7 + is-core-module: registry.npmmirror.com/is-core-module@2.12.0 + resolve: registry.npmmirror.com/resolve@1.22.2 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-node@0.3.7)(eslint@8.38.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + debug: 3.2.7 + eslint: 8.38.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-antfu@0.38.5(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-uBLSmOMhMLuioEm92Y7k4igNXBXcCrskzQYZKhzjoj+2GBo/hanKjCIHf2oDmydnCx6KCFARnQ+mnNanM0/qig==} + dependencies: + '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /eslint-plugin-es@4.1.0(eslint@8.38.0): + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.38.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.38.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.38.0 + ignore: 5.2.4 + dev: true + + /eslint-plugin-html@7.1.0: + resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} + dependencies: + htmlparser2: 8.0.2 + dev: true + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.0)(eslint@8.38.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.38.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.0)(eslint-import-resolver-node@0.3.7)(eslint@8.38.0) + has: 1.0.3 + is-core-module: 2.12.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.2 + semver: 6.3.0 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.0)(eslint@8.38.0)(typescript@5.0.4): + resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.0(eslint@8.38.0)(typescript@5.0.4) + eslint: 8.38.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsonc@2.7.0(eslint@8.38.0): + resolution: {integrity: sha512-DZgC71h/hZ9t5k/OGAKOMdJCleg2neZLL7No+YYi2ZMroCN4X5huZdrLf1USbrc6UTHwYujd1EDwXHg1qJ6CYw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) + eslint: 8.38.0 + jsonc-eslint-parser: 2.2.0 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-markdown@3.0.0(eslint@8.38.0): + resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.38.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-n@15.7.0(eslint@8.38.0): + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + builtins: 5.0.1 + eslint: 8.38.0 + eslint-plugin-es: 4.1.0(eslint@8.38.0) + eslint-utils: 3.0.0(eslint@8.38.0) + ignore: 5.2.4 + is-core-module: 2.12.0 + minimatch: 3.1.2 + resolve: 1.22.2 + semver: 7.5.0 + dev: true + + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + dev: true + + /eslint-plugin-promise@6.1.1(eslint@8.38.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.38.0 + dev: true + + /eslint-plugin-unicorn@46.0.0(eslint@8.38.0): + resolution: {integrity: sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA==} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.28.0' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) + ci-info: 3.8.0 + clean-regexp: 1.0.0 + eslint: 8.38.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.25 + regjsparser: 0.9.1 + safe-regex: 2.1.1 + semver: 7.5.0 + strip-indent: 3.0.0 + dev: true + + /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.59.0)(eslint@8.38.0): + resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(typescript@5.0.4) + eslint: 8.38.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-plugin-vue@9.11.0(eslint@8.38.0): + resolution: {integrity: sha512-bBCJAZnkBV7ATH4Z1E7CvN3nmtS4H7QUU3UBxPdo8WohRU+yHjnQRALpTbxMVcz0e4Mx3IyxIdP5HYODMxK9cQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) + eslint: 8.38.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.11 + semver: 7.5.0 + vue-eslint-parser: 9.1.1(eslint@8.38.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-yml@1.5.0(eslint@8.38.0): + resolution: {integrity: sha512-iygN054g+ZrnYmtOXMnT+sx9iDNXt89/m0+506cQHeG0+5jJN8hY5iOPQLd3yfd50AfK/mSasajBWruf1SoHpQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.38.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@8.38.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.38.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.38.0: + resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.38.0) + '@eslint-community/regexpp': 4.5.0 + '@eslint/eslintrc': 2.0.2 + '@eslint/js': 8.38.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /esno@0.16.3: + resolution: {integrity: sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==} + hasBin: true + dependencies: + tsx: 3.10.4 + dev: true + + /espree@9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.0 + dev: true + + /esprima-extract-comments@1.1.0: + resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==} + engines: {node: '>=4'} + dependencies: + esprima: 4.0.1 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /execa@7.1.1: + resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extract-comments@1.1.0: + resolution: {integrity: sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==} + engines: {node: '>=6'} + dependencies: + esprima-extract-comments: 1.1.0 + parse-code-context: 1.0.0 + dev: true + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true + + /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==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: 1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: true + + /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==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + dev: true + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + dependencies: + detect-file: 1.0.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + resolve-dir: 1.0.1 + dev: true + + /fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 5.0.0 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + + /first-chunk-stream@1.0.0: + resolution: {integrity: sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==} + engines: {node: '>=0.10.0'} + dev: true + + /flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gaze@1.1.3: + resolution: {integrity: sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==} + engines: {node: '>= 4.0.0'} + dependencies: + globule: 1.3.4 + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-intrinsic@1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + has: registry.npmmirror.com/has@1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + has: registry.npmmirror.com/has@1.0.3 + has-symbols: 1.0.3 + + /get-pixels@3.3.3: + resolution: {integrity: sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg==} + dependencies: + data-uri-to-buffer: 0.0.3 + jpeg-js: 0.4.4 + mime-types: 2.1.35 + ndarray: 1.0.19 + ndarray-pack: 1.2.1 + node-bitmap: 0.0.1 + omggif: 1.0.10 + parse-data-uri: 0.2.0 + pngjs: 3.4.0 + request: 2.88.2 + through: 2.3.8 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /get-tsconfig@4.2.0: + resolution: {integrity: sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg==} + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + dev: true + + /gif-encoder@0.4.3: + resolution: {integrity: sha512-HMfSa+EIng62NbDhM63QGYoc49/m8DcZ9hhBtw+CXX9mKboSpeFVxjZ2WEWaMFZ14MUjfACK7jsrxrJffIVrCg==} + engines: {node: '>= 0.8.0'} + dependencies: + readable-stream: 1.1.14 + dev: true + + /giget@1.1.2: + resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} + hasBin: true + dependencies: + colorette: 2.0.19 + defu: 6.1.2 + https-proxy-agent: 5.0.1 + mri: 1.2.0 + node-fetch-native: 1.0.2 + pathe: 1.1.0 + tar: 6.1.13 + transitivePeerDependencies: + - supports-color + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + ignore: 5.2.4 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: 3.0.0 + dev: true + + /globby@13.1.3: + resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + ignore: 5.2.4 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: 4.0.0 + dev: true + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /globule@1.3.4: + resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} + engines: {node: '>= 0.10'} + dependencies: + glob: registry.npmmirror.com/glob@7.1.7 + lodash: 4.17.21 + minimatch: registry.npmmirror.com/minimatch@3.0.8 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.1.3 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /handlebars-layouts@3.1.4: + resolution: {integrity: sha512-2llBmvnj8ueOfxNHdRzJOcgalzZjYVd9+WAl93kPYmlX4WGx7FTHTzNxhK+i9YKY2OSjzfehgpLiIwP/OJr6tw==} + engines: {node: '>= 0.10'} + dev: true + + /handlebars@4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.7 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: registry.npmmirror.com/uglify-js@3.17.4 + dev: true + + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: true + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@3.0.0 + kind-of: 4.0.0 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: true + + /hotkeys-js@3.10.2: + resolution: {integrity: sha512-Z6vLmJTYzkbZZXlBkhrYB962Q/rZGc/WHQiyEGu9ZZVF7bAeFDjjDa31grWREuw9Ygb4zmlov2bTkPYqj0aFnQ==} + dev: false + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-tags@3.2.0: + resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} + engines: {node: '>=8'} + dev: true + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: registry.npmmirror.com/entities@1.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.1 + dev: true + + /htmlparser2@8.0.1: + resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: 4.4.0 + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: registry.npmmirror.com/entities@4.5.0 + dev: true + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1 + mime: 1.6.0 + minimist: 1.2.7 + opener: 1.5.2 + portfinder: 1.0.32 + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + dev: true + + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /immutable@4.3.0: + resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: registry.npmmirror.com/has@1.0.3 + side-channel: 1.0.4 + dev: true + + /interpret@2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + dev: true + + /iota-array@1.0.0: + resolution: {integrity: sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==} + dev: true + + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: true + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true + + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true + + /jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + dev: true + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + + /js-sdsl@4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-tokens@8.0.0: + resolution: {integrity: sha512-PC7MzqInq9OqKyTXfIvQNcjMkODJYC8A17kAaQgeW79yfhqTWSOfjHYQ2mDDcwJ96Iibtwkfh0C7R/OvqPlgVA==} + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /json-content-demux@0.1.4: + resolution: {integrity: sha512-3GqPH2O0+8qBMTa1YTuL+7L24YJYNDjdXfa798y9S6GetScZAY2iAOGCdFkEPZJZdafPKv8ZUnp18VCCPTs0Nw==} + engines: {node: '>= 0.6.0'} + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /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==} + dev: true + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-eslint-parser@2.2.0: + resolution: {integrity: sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + semver: 7.5.0 + dev: true + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /known-css-properties@0.27.0: + resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==} + dev: true + + /kolorist@1.7.0: + resolution: {integrity: sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==} + dev: true + + /layout@2.2.0: + resolution: {integrity: sha512-+kdgg25XW11BA4cl9vF+SH01HaBipld2Nf/PlU2kSYncAbdUbDoahzrlh6yhR93N/wR2TGgcFoxebzR1LKmZUg==} + engines: {node: '>= 0.8.0'} + dependencies: + bin-pack: 1.0.2 + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /liftoff@4.0.0: + resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==} + engines: {node: '>=10.13.0'} + dependencies: + extend: 3.0.2 + findup-sync: 5.0.0 + fined: 2.0.0 + flagged-respawn: 2.0.0 + is-plain-object: 5.0.0 + object.map: 1.0.1 + rechoir: 0.8.0 + resolve: registry.npmmirror.com/resolve@1.22.2 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /listr2@5.0.8: + resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.0 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + parse-json: 4.0.0 + pify: registry.npmmirror.com/pify@3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-utils@1.4.0: + resolution: {integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash-unified@1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21): + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + dependencies: + '@types/lodash-es': 4.17.7 + lodash: 4.17.21 + lodash-es: 4.17.21 + dev: false + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.2.0 + is-unicode-supported: 1.3.0 + dev: true + + /log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + + /magic-string@0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string@0.30.0: + resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: true + + /make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.11 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + dev: false + + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + + /meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@7.4.2: + resolution: {integrity: sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@4.2.5: + resolution: {integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==} + engines: {node: '>=8'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mitt@3.0.0: + resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} + dev: false + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.7 + dev: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mlly@1.2.0: + resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} + dependencies: + acorn: 8.8.2 + pathe: 1.1.0 + pkg-types: 1.0.2 + ufo: 1.1.1 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 9.4.1 + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /muggle-string@0.2.2: + resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==} + dev: true + + /mutation-observer@1.0.3: + resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==} + dev: false + + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /ndarray-ops@1.2.2: + resolution: {integrity: sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==} + dependencies: + cwise-compiler: 1.1.3 + dev: true + + /ndarray-pack@1.2.1: + resolution: {integrity: sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g==} + dependencies: + cwise-compiler: 1.1.3 + ndarray: 1.0.19 + dev: true + + /ndarray@1.0.19: + resolution: {integrity: sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==} + dependencies: + iota-array: 1.0.0 + is-buffer: 1.1.6 + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /node-bitmap@0.0.1: + resolution: {integrity: sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=} + engines: {node: '>=v0.6.5'} + dev: true + + /node-fetch-native@1.0.2: + resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==} + dev: true + + /node-plop@0.31.1: + resolution: {integrity: sha512-qmXJJt3YETFt/e0dtMADVpvck6EvN01Jig086o+J3M6G++mWA7iJ3Pqz4m4kvlynh73Iz2/rcZzxq7xTiF+aIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/inquirer': 8.2.5 + change-case: 4.1.2 + del: 6.1.1 + globby: 13.1.3 + handlebars: 4.7.7 + inquirer: 8.2.5 + isbinaryfile: 4.0.10 + lodash.get: 4.4.2 + lower-case: 2.0.2 + mkdirp: 1.0.4 + resolve: registry.npmmirror.com/resolve@1.22.2 + title-case: 3.0.3 + upper-case: 2.0.2 + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: registry.npmmirror.com/resolve@1.22.2 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: registry.npmmirror.com/is-core-module@2.12.0 + semver: 7.5.0 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + dev: false + + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.7.4 + string.prototype.padend: 3.1.3 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: false + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true + + /obj-extend@0.1.0: + resolution: {integrity: sha512-or9c7Ue2wWCun41DuLP3+LKEUjSZcDSxfCM4HZQSX9tcjLL/yuzTW7MmtVNs+MmN16uDRpDrFmFK/WVSm4vklg==} + dev: true + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + + /object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + dev: true + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.7.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /ora@6.1.2: + resolution: {integrity: sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + chalk: 5.2.0 + cli-cursor: 4.0.0 + cli-spinners: 2.7.0 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + strip-ansi: 7.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-code-context@1.0.0: + resolution: {integrity: sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==} + engines: {node: '>=6'} + dev: true + + /parse-data-uri@0.2.0: + resolution: {integrity: sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w==} + dependencies: + data-uri-to-buffer: 0.0.3 + dev: true + + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.21.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true + + /path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: registry.npmmirror.com/pify@3.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pathe@1.1.0: + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} + dev: true + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pinia@2.0.35(typescript@5.0.4)(vue@3.2.47): + resolution: {integrity: sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.0 + typescript: 5.0.4 + vue: 3.2.47 + vue-demi: 0.14.0(vue@3.2.47) + dev: false + + /pixelsmith@2.6.0: + resolution: {integrity: sha512-1W0C8EVxAPJwsCodw/+dfeEtdSc8JuHFipVylf51PIvh7S7Q33qmVCCzeWQp1y1sXpZ52iXGY2D/ICMyHPIULw==} + engines: {node: '>= 12.0.0'} + dependencies: + async: 3.2.4 + concat-stream: 1.5.2 + get-pixels: 3.3.3 + mime-types: 2.1.35 + ndarray: 1.0.19 + obj-extend: 0.1.0 + save-pixels: 2.3.6 + vinyl-file: 1.3.0 + dev: true + + /pkg-types@1.0.2: + resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.2.0 + pathe: 1.1.0 + dev: true + + /plop@3.1.2: + resolution: {integrity: sha512-39SOtQ3WlePXSNqKqAh/QlUSHXHO25iCnyCO3Qs/9UzPVmwVledRTDGvPd2csh+JnHVXz4c63F6fBwdqZHgbUg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@types/liftoff': 4.0.0 + chalk: 5.1.2 + interpret: 2.2.0 + liftoff: 4.0.0 + minimist: 1.2.7 + node-plop: 0.31.1 + ora: 6.1.2 + v8flags: 4.0.0 + dev: true + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /pngjs-nozlib@1.0.0: + resolution: {integrity: sha512-N1PggqLp9xDqwAoKvGohmZ3m4/N9xpY0nDZivFqQLcpLHmliHnCp9BuNCsOeqHWMuEEgFjpEaq9dZq6RZyy0fA==} + engines: {iojs: '>= 1.0.0', node: '>=0.10.0'} + dev: true + + /pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + dev: true + + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-html@1.5.0: + resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.1 + js-tokens: 8.0.0 + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-safe-parser: 6.0.0(postcss@8.4.23) + dev: true + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: true + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: registry.npmmirror.com/postcss@5.2.18 + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.23): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + dev: true + + /postcss-scss@4.0.6(postcss@8.4.23): + resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.19 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + dev: true + + /postcss-selector-parser@6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + engines: {node: '>=4'} + dependencies: + cssesc: registry.npmmirror.com/cssesc@3.0.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /process-nextick-args@1.0.7: + resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + dev: true + + /qs@6.11.1: + resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /rc9@2.1.0: + resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} + dependencies: + defu: 6.1.2 + destr: 1.2.2 + flat: 5.0.2 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream@1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream@2.0.6: + resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /readable-stream@3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + string_decoder: 1.3.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /readable-stream@3.6.1: + resolution: {integrity: sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==} + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + string_decoder: 1.3.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: registry.npmmirror.com/resolve@1.22.2 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp-tree@0.1.25: + resolution: {integrity: sha512-szcL3aqw+vEeuxhL1AMYRyeMP+goYF5I/guaH10uJX5xbGyeQeNPPneaj3ZWVmGLCDxrVaaYekkr5R12gk4dJw==} + hasBin: true + dev: true + + /regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /replace-ext@0.0.1: + resolution: {integrity: sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=} + engines: {node: '>= 0.4'} + dev: true + + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see http://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: http://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.12.0 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: true + + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.12.0 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: true + + /rollup@3.20.7: + resolution: {integrity: sha512-P7E2zezKSLhWnTz46XxjSmInrbOCiul1yf+kJccMxT56vxjHwCbDfoLbiqFgu+WQoo9ij2PkraYaBstgB2prBA==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /rxjs@7.8.0: + resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + dependencies: + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.25 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sass@1.62.0: + resolution: {integrity: sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.0 + source-map-js: 1.0.2 + dev: true + + /save-pixels@2.3.6: + resolution: {integrity: sha512-/ayfEWBxt0tFpf5lxSU1S0+/TBn7EiaTZD+6GL+mwizHm3BKCBysnzT6Js7BusDUVcNVLkeJJKLZcBgdpM2leQ==} + dependencies: + contentstream: 1.0.0 + gif-encoder: 0.4.3 + jpeg-js: 0.4.4 + ndarray: 1.0.19 + ndarray-ops: 1.2.2 + pngjs-nozlib: 1.0.0 + through: 2.3.8 + dev: true + + /scule@1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + dev: true + + /secure-compare@3.0.1: + resolution: {integrity: sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=} + dev: true + + /semver@5.0.3: + resolution: {integrity: sha512-5OkOBiw69xqmxOFIXwXsiY1HlE+om8nNptg1ZIf95fzcnfgOv2fLm7pmmGbRJsjJIqPpW5Kwy4wpDBTz5wQlUw==} + hasBin: true + dev: true + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: true + + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + upper-case-first: 2.0.2 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + 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==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /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==} + engines: {node: '>=8'} + dev: true + + /shell-quote@1.7.4: + resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} + dev: true + + /shell-quote@1.8.0: + resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /simple-git-hooks@2.8.1: + resolution: {integrity: sha512-DYpcVR1AGtSfFUNzlBdHrQGPsOhuuEJ/FkmPOOlFysP60AHd3nsEpkGq/QEOdtUyT1Qhk7w9oLmFoMG+75BDog==} + hasBin: true + requiresBuild: true + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See http://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.0 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See http://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + /spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /sprintf-js@1.1.2: + resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} + dev: true + + /spritesheet-templates@10.5.2: + resolution: {integrity: sha512-dMrLgS5eHCEDWqo1c3mDM5rGdJpBNf1JAJrxTKA4qR54trNTtxqGZlH3ZppS5FHTgjKgOtEmycqE2vGSkCYiVw==} + engines: {node: '>= 8.0.0'} + dependencies: + handlebars: 4.7.7 + handlebars-layouts: 3.1.4 + json-content-demux: 0.1.4 + underscore: 1.13.6 + underscore.string: 3.3.6 + dev: true + + /spritesmith@3.4.0: + resolution: {integrity: sha512-epa/Ib2GzkrzOA6ZMKH+YOX4ooBlRz8JwIV5NQDt9FvqXVHTh4dVn/0oA+n5eeu6wem1CCrtZWODlOqvwXXpyA==} + engines: {node: '>= 4.0.0'} + dependencies: + concat-stream: 1.5.2 + layout: 2.2.0 + pixelsmith: 2.6.0 + semver: 5.0.3 + through2: 2.0.5 + dev: true + + /sshpk@1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string.prototype.padend@3.1.3: + resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-stream@1.0.0: + resolution: {integrity: sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==} + engines: {node: '>=0.10.0'} + dependencies: + first-chunk-stream: 1.0.0 + strip-bom: 2.0.0 + dev: true + + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /strip-literal@1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + dependencies: + acorn: 8.8.2 + dev: true + + /style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + dev: true + + /stylelint-config-html@1.1.0(postcss-html@1.5.0)(stylelint@15.5.0): + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 15.5.0 + dev: true + + /stylelint-config-recommended-scss@10.0.0(postcss@8.4.23)(stylelint@15.5.0): + resolution: {integrity: sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^15.3.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-scss: 4.0.6(postcss@8.4.23) + stylelint: 15.5.0 + stylelint-config-recommended: 11.0.0(stylelint@15.5.0) + stylelint-scss: 4.6.0(stylelint@15.5.0) + dev: true + + /stylelint-config-recommended-vue@1.4.0(postcss-html@1.5.0)(stylelint@15.5.0): + resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + semver: 7.3.8 + stylelint: 15.5.0 + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.5.0) + stylelint-config-recommended: 12.0.0(stylelint@15.5.0) + dev: true + + /stylelint-config-recommended@11.0.0(stylelint@15.5.0): + resolution: {integrity: sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==} + peerDependencies: + stylelint: ^15.3.0 + dependencies: + stylelint: 15.5.0 + dev: true + + /stylelint-config-recommended@12.0.0(stylelint@15.5.0): + resolution: {integrity: sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==} + peerDependencies: + stylelint: ^15.5.0 + dependencies: + stylelint: 15.5.0 + dev: true + + /stylelint-config-standard-scss@8.0.0(postcss@8.4.23)(stylelint@15.5.0): + resolution: {integrity: sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^15.4.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + stylelint: 15.5.0 + stylelint-config-recommended-scss: 10.0.0(postcss@8.4.23)(stylelint@15.5.0) + stylelint-config-standard: 32.0.0(stylelint@15.5.0) + dev: true + + /stylelint-config-standard-vue@1.0.0(postcss-html@1.5.0)(stylelint@15.5.0): + resolution: {integrity: sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 15.5.0 + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.5.0) + stylelint-config-recommended-vue: 1.4.0(postcss-html@1.5.0)(stylelint@15.5.0) + stylelint-config-standard: 33.0.0(stylelint@15.5.0) + dev: true + + /stylelint-config-standard@32.0.0(stylelint@15.5.0): + resolution: {integrity: sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==} + peerDependencies: + stylelint: ^15.4.0 + dependencies: + stylelint: 15.5.0 + stylelint-config-recommended: 11.0.0(stylelint@15.5.0) + dev: true + + /stylelint-config-standard@33.0.0(stylelint@15.5.0): + resolution: {integrity: sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==} + peerDependencies: + stylelint: ^15.5.0 + dependencies: + stylelint: 15.5.0 + stylelint-config-recommended: 12.0.0(stylelint@15.5.0) + dev: true + + /stylelint-scss@4.6.0(stylelint@15.5.0): + resolution: {integrity: sha512-M+E0BQim6G4XEkaceEhfVjP/41C9Klg5/tTPTCQVlgw/jm2tvB+OXJGaU0TDP5rnTCB62aX6w+rT+gqJW/uwjA==} + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + dependencies: + dlv: 1.1.3 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + stylelint: 15.5.0 + dev: true + + /stylelint-stylistic@0.4.0(stylelint@15.5.0): + resolution: {integrity: sha512-8x6sClY6D+wrdTZD9kEcIcyH6Qv3nXapngd8INEI0iABukdecepZcme+RpxMOJCe4ngacBZf+JlCLjDjKadBcA==} + engines: {node: '>=14.x'} + peerDependencies: + stylelint: ^15.0.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-media-query-parser: 0.2.3 + postcss-value-parser: 4.2.0 + style-search: 0.1.0 + stylelint: 15.5.0 + dev: true + + /stylelint@15.5.0: + resolution: {integrity: sha512-jyMO3R1QtE5mUS4v40+Gg+sIQBqe7CF1xPslxycDzNVkIBCUD4O+5F1vLPq16VmunUTv4qG9o2rUKLnU5KkVeQ==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) + '@csstools/css-tokenizer': 2.1.1 + '@csstools/media-query-list-parser': 2.0.4(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1) + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.11) + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 8.1.3 + css-functions-list: 3.1.0 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.2.12 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.2.4 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.27.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 6.0.0(postcss@8.4.23) + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 3.0.0 + svg-tags: 1.0.0 + table: 6.8.1 + v8-compile-cache: 2.3.0 + write-file-atomic: 5.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.0 + merge-options: 1.0.1 + micromatch: registry.npmmirror.com/micromatch@3.1.0 + postcss: registry.npmmirror.com/postcss@5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.7 + transitivePeerDependencies: + - supports-color + dev: true + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: registry.npmmirror.com/commander@7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + stable: 0.1.8 + dev: true + + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.2.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tar@6.1.13: + resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 4.2.5 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /terser@5.17.1: + resolution: {integrity: sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.3 + acorn: 8.8.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + dependencies: + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + dev: true + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + dev: true + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsutils@3.21.0(typescript@5.0.4): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + typescript: 5.0.4 + dev: true + + /tsx@3.10.4: + resolution: {integrity: sha512-sBxeSgUAPVqRgBPk6TY0yFiNDUlva9rA+Nj46oYEd89FXVD2MFWChFhybTtq7Qh1Ies/O75mQNwpLuO7m8gToA==} + hasBin: true + dependencies: + '@esbuild-kit/cjs-loader': 2.4.0 + '@esbuild-kit/core-utils': 3.0.0 + '@esbuild-kit/esm-loader': 2.5.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typedarray@0.0.7: + resolution: {integrity: sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==} + dev: true + + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + + /ufo@1.1.1: + resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /underscore.string@3.3.6: + resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==} + dependencies: + sprintf-js: 1.1.2 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + dev: true + + /unimport@3.0.6: + resolution: {integrity: sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==} + dependencies: + '@rollup/pluginutils': 5.0.2 + escape-string-regexp: 5.0.0 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + local-pkg: 0.4.3 + magic-string: 0.30.0 + mlly: 1.2.0 + pathe: 1.1.0 + pkg-types: 1.0.2 + scule: 1.0.0 + strip-literal: 1.0.1 + unplugin: 1.3.1 + transitivePeerDependencies: + - rollup + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + dependencies: + qs: 6.11.1 + dev: true + + /uniq@1.0.1: + resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} + dev: true + + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unplugin-auto-import@0.15.3(@vueuse/core@10.0.2): + resolution: {integrity: sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + dependencies: + '@antfu/utils': 0.7.2 + '@rollup/pluginutils': 5.0.2 + '@vueuse/core': 10.0.2(vue@3.2.47) + local-pkg: 0.4.3 + magic-string: 0.30.0 + minimatch: 9.0.0 + unimport: 3.0.6 + unplugin: 1.3.1 + transitivePeerDependencies: + - rollup + dev: true + + /unplugin-vue-components@0.24.1(vue@3.2.47): + resolution: {integrity: sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.2 + '@rollup/pluginutils': 5.0.2 + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.2.12 + local-pkg: 0.4.3 + magic-string: 0.30.0 + minimatch: 7.4.2 + resolve: 1.22.1 + unplugin: 1.2.0 + vue: 3.2.47 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin-vue-setup-extend-plus@1.0.0: + resolution: {integrity: sha512-Qb34atQ/elvkErQ12PNv6UWJPWIG4dEgjjizYKyycPeiRqQaMVNCKqRIqfxlhXntcU2l+o3VQuk1NNZN6QJ/xw==} + dependencies: + '@vue/compiler-sfc': 3.2.47 + magic-string: 0.26.7 + unplugin: 1.3.1 + dev: true + + /unplugin@1.2.0: + resolution: {integrity: sha512-7lJXQY4CxOK4jZyVskZuuNBqBSOlxezKqBpfQEpH+Odk2Ban3moKAlvzs9rZuZoZp6/1FEhvY9TZXav2FRhaBg==} + dependencies: + acorn: 8.8.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + dev: true + + /unplugin@1.3.1: + resolution: {integrity: sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==} + dependencies: + acorn: 8.8.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.0 + dev: true + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see http://github.com/lydell/urix#deprecated + dev: true + + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See http://v8.dev/blog/math-random for details. + hasBin: true + dev: true + + /v8-compile-cache@2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8flags@4.0.0: + resolution: {integrity: sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==} + engines: {node: '>= 10.13.0'} + dev: true + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /vconsole@3.15.0: + resolution: {integrity: sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==} + dependencies: + '@babel/runtime': 7.21.0 + copy-text-to-clipboard: 3.0.1 + core-js: 3.28.0 + mutation-observer: 1.0.3 + dev: false + + /verror@1.10.0: + resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + + /vinyl-file@1.3.0: + resolution: {integrity: sha512-i1CGRaiDs3qJ+Yc8cgtOnrZOwlhY02oDBrWSBKD9uYSsxqQG1RhNXLmR/orke0ye0sbKpVtAUHwhF2rs9A46cQ==} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + strip-bom: 2.0.0 + strip-bom-stream: 1.0.0 + vinyl: 1.2.0 + dev: true + + /vinyl@1.2.0: + resolution: {integrity: sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==} + engines: {node: '>= 0.9'} + dependencies: + clone: 1.0.4 + clone-stats: 0.0.1 + replace-ext: 0.0.1 + dev: true + + /vite-plugin-banner@0.7.0: + resolution: {integrity: sha512-g0cm0wbrR6b6wR8FWtfD1RSDPacdumKEOAnneXv+NpJ9ez+j6rklRv6lMOO+aPf+Y6Zb8OzgIk0FXBZ6h+DeZQ==} + dev: true + + /vite-plugin-compression@0.5.1(vite@4.3.1): + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.3.1): + resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@types/mockjs': 1.0.7 + chalk: 4.1.2 + chokidar: 3.5.3 + connect: 3.7.0 + debug: 4.3.4 + esbuild: 0.14.54 + fast-glob: 3.2.12 + mockjs: 1.1.0 + path-to-regexp: 6.2.1 + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-pages@0.29.0(vite@4.3.1): + resolution: {integrity: sha512-vRgLflQNMs8QnDB8A5XwX8b2XYSIN1Mdy3Bx7A7N9NTFeybRj/zpvoosdbMgJ3LsJ84AznHC3GytWQZGNpE5BA==} + peerDependencies: + '@vue/compiler-sfc': ^2.7.0 || ^3.0.0 + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@types/debug': 4.1.7 + debug: 4.3.4 + deep-equal: 2.2.0 + extract-comments: 1.1.0 + fast-glob: 3.2.12 + json5: 2.2.3 + local-pkg: 0.4.3 + picocolors: 1.0.0 + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + yaml: 2.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-spritesmith@0.1.1: + resolution: {integrity: sha512-y8PI25/FLe+CJr0bI+kOIptWy1fl7AOnZLXhXcb0VyUDAneZlFsFJm+K44lksNgV+0lRojAeMwwP+BhNqqL7Hw==} + dependencies: + fs-extra: 10.1.0 + gaze: 1.1.3 + lodash: 4.17.21 + mkdirp: 1.0.4 + spritesheet-templates: 10.5.2 + spritesmith: 3.4.0 + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@4.3.1): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-inspector@3.4.0(vite@4.3.1): + resolution: {integrity: sha512-gAdJ6fCPO7+PcUZJexgdOz27yuzQfEviBSS4c+zLLsItHdUq79oYgoWpPZwIYcE0FDFcAtz8dfG6I1ugWuykrw==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.3) + '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.3) + '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.3) + '@vue/compiler-dom': 3.2.47 + esno: 0.16.3 + kolorist: 1.7.0 + magic-string: 0.30.0 + shell-quote: 1.8.0 + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-meta-layouts@0.2.2(vite@4.3.1)(vue-router@4.1.6): + resolution: {integrity: sha512-u3WHlSzqE7tfOFFN7IygkQXDgnhVYD+GSfSXeMk1m/xI/gMtJtLeVwjBTow4kOn3oEkJcj/I9yCZoWpQeRHTFw==} + peerDependencies: + vite: '>=2.0.0' + vue-router: '>=4.0.14' + dependencies: + local-pkg: 0.4.3 + vite: 4.3.1(sass@1.62.0)(terser@5.17.1) + vue-router: 4.1.6(vue@3.2.47) + dev: true + + /vite@4.3.1(sass@1.62.0)(terser@5.17.1): + resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.17 + postcss: registry.npmmirror.com/postcss@8.4.23 + rollup: 3.20.7 + sass: 1.62.0 + terser: 5.17.1 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /vue-demi@0.14.0(vue@3.2.47): + resolution: {integrity: sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + + /vue-eslint-parser@9.1.1(eslint@8.38.0): + resolution: {integrity: sha512-C2aI/r85Q6tYcz4dpgvrs4wH/MqVrRAVIdpYedrxnATDHHkb+TroeRcDpKWGZCx/OcECMWfz7tVwQ8e+Opy6rA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.38.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-router@4.1.6(vue@3.2.47): + resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.4.5 + vue: 3.2.47 + + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.4.2(typescript@5.0.4): + resolution: {integrity: sha512-8VFjVekJuFtFG+N4rEimoR0OvNubhoTIMl2dlvbpyAD40LVPR1PN2SUc2qZPnWGGRsXZAVmFgiBHX0RB20HGyA==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/vue-language-core': 1.4.2 + '@volar/vue-typescript': 1.4.2(typescript@5.0.4) + semver: 7.5.0 + typescript: 5.0.4 + dev: true + + /vue@3.2.47: + resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-sfc': 3.2.47 + '@vue/runtime-dom': 3.2.47 + '@vue/server-renderer': 3.2.47(vue@3.2.47) + '@vue/shared': 3.2.47 + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + dev: true + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /write-file-atomic@5.0.0: + resolution: {integrity: sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml-eslint-parser@1.2.0: + resolution: {integrity: sha512-OmuvQd5lyIJWfFALc39K5fGqp0aWNc+EtyhVgcQIPZaUKMnTb7An3RMp+QJizJ/x0F4kpgTNe6BL/ctdvoIwIg==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.0 + lodash: 4.17.21 + yaml: 2.2.1 + dev: true + + /yaml@2.2.1: + resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + registry.nlark.com/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622796717993&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + + registry.npmmirror.com/@codemirror/autocomplete@6.6.0: + resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.6.0.tgz} + name: '@codemirror/autocomplete' + version: 6.6.0 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + dev: false + + registry.npmmirror.com/@codemirror/commands@6.2.3: + resolution: {integrity: sha512-9uf0g9m2wZyrIim1SavcxMdwsu8wc/y5uSw6JRUBYIGWrN+RY4vSru/BqB+MyNWqx4C2uRhQ/Kh7Pw8lAyT3qQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/commands/-/commands-6.2.3.tgz} + name: '@codemirror/commands' + version: 6.2.3 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + dev: false + + registry.npmmirror.com/@codemirror/lang-angular@0.1.0: + resolution: {integrity: sha512-vTjoHjzJmLrrMFmf/tojwp+O0P+R9mgWtjjaKDNDoY58PzOPg7ldMEBqIzABBc+/2mYPD85SG7O5byfBxc83eA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-angular/-/lang-angular-0.1.0.tgz} + name: '@codemirror/lang-angular' + version: 0.1.0 + dependencies: + '@codemirror/lang-html': registry.npmmirror.com/@codemirror/lang-html@6.4.3 + '@codemirror/lang-javascript': registry.npmmirror.com/@codemirror/lang-javascript@6.1.7 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + dev: false + + registry.npmmirror.com/@codemirror/lang-cpp@6.0.2: + resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz} + name: '@codemirror/lang-cpp' + version: 6.0.2 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/cpp': registry.npmmirror.com/@lezer/cpp@1.1.0 + dev: false + + registry.npmmirror.com/@codemirror/lang-css@6.2.0: + resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-css/-/lang-css-6.2.0.tgz} + name: '@codemirror/lang-css' + version: 6.2.0 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/css': registry.npmmirror.com/@lezer/css@1.1.1 + dev: false + + registry.npmmirror.com/@codemirror/lang-html@6.4.3: + resolution: {integrity: sha512-VKzQXEC8nL69Jg2hvAFPBwOdZNvL8tMFOrdFwWpU+wc6a6KEkndJ/19R5xSaglNX6v2bttm8uIEFYxdQDcIZVQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-html/-/lang-html-6.4.3.tgz} + name: '@codemirror/lang-html' + version: 6.4.3 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/lang-css': registry.npmmirror.com/@codemirror/lang-css@6.2.0 + '@codemirror/lang-javascript': registry.npmmirror.com/@codemirror/lang-javascript@6.1.7 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/css': registry.npmmirror.com/@lezer/css@1.1.1 + '@lezer/html': registry.npmmirror.com/@lezer/html@1.3.4 + dev: false + + registry.npmmirror.com/@codemirror/lang-java@6.0.1: + resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz} + name: '@codemirror/lang-java' + version: 6.0.1 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/java': registry.npmmirror.com/@lezer/java@1.0.3 + dev: false + + registry.npmmirror.com/@codemirror/lang-javascript@6.1.7: + resolution: {integrity: sha512-KXKqxlZ4W6t5I7i2ScmITUD3f/F5Cllk3kj0De9P9mFeYVfhOVOWuDLgYiLpk357u7Xh4dhqjJAnsNPPoTLghQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-javascript/-/lang-javascript-6.1.7.tgz} + name: '@codemirror/lang-javascript' + version: 6.1.7 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.2.1 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/javascript': registry.npmmirror.com/@lezer/javascript@1.4.3 + dev: false + + registry.npmmirror.com/@codemirror/lang-json@6.0.1: + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz} + name: '@codemirror/lang-json' + version: 6.0.1 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/json': registry.npmmirror.com/@lezer/json@1.0.0 + dev: false + + registry.npmmirror.com/@codemirror/lang-markdown@6.1.1: + resolution: {integrity: sha512-n87Ms6Y5UYb1UkFu8sRzTLfq/yyF1y2AYiWvaVdbBQi5WDj1tFk5N+AKA+WC0Jcjc1VxvrCCM0iizjdYYi9sFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-markdown/-/lang-markdown-6.1.1.tgz} + name: '@codemirror/lang-markdown' + version: 6.1.1 + dependencies: + '@codemirror/lang-html': registry.npmmirror.com/@codemirror/lang-html@6.4.3 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/markdown': registry.npmmirror.com/@lezer/markdown@1.0.2 + dev: false + + registry.npmmirror.com/@codemirror/lang-php@6.0.1: + resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-php/-/lang-php-6.0.1.tgz} + name: '@codemirror/lang-php' + version: 6.0.1 + dependencies: + '@codemirror/lang-html': registry.npmmirror.com/@codemirror/lang-html@6.4.3 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/php': registry.npmmirror.com/@lezer/php@1.0.1 + dev: false + + registry.npmmirror.com/@codemirror/lang-python@6.1.2: + resolution: {integrity: sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.2.tgz} + name: '@codemirror/lang-python' + version: 6.1.2 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/python': registry.npmmirror.com/@lezer/python@1.1.5 + dev: false + + registry.npmmirror.com/@codemirror/lang-rust@6.0.1: + resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz} + name: '@codemirror/lang-rust' + version: 6.0.1 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/rust': registry.npmmirror.com/@lezer/rust@1.0.0 + dev: false + + registry.npmmirror.com/@codemirror/lang-sass@6.0.1: + resolution: {integrity: sha512-USy9zqtdLYxSuqq0s4peMoQi+BDzyOyO7chUzli+X2xVCjmBhc3CsWQ4kkDU0NYtCHHFQRkcFO8770eaOwZqfw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-sass/-/lang-sass-6.0.1.tgz} + name: '@codemirror/lang-sass' + version: 6.0.1 + dependencies: + '@codemirror/lang-css': registry.npmmirror.com/@codemirror/lang-css@6.2.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/sass': registry.npmmirror.com/@lezer/sass@1.0.1 + dev: false + + registry.npmmirror.com/@codemirror/lang-sql@6.4.1: + resolution: {integrity: sha512-PFB56L+A0WGY35uRya+Trt5g19V9k2V9X3c55xoFW4RgiATr/yLqWsbbnEsdxuMn5tLpuikp7Kmj9smRsqBXAg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-sql/-/lang-sql-6.4.1.tgz} + name: '@codemirror/lang-sql' + version: 6.4.1 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@codemirror/lang-vue@0.1.1: + resolution: {integrity: sha512-GIfc/MemCFKUdNSYGTFZDN8XsD2z0DUY7DgrK34on0dzdZ/CawZbi+SADYfVzWoPPdxngHzLhqlR5pSOqyPCvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-vue/-/lang-vue-0.1.1.tgz} + name: '@codemirror/lang-vue' + version: 0.1.1 + dependencies: + '@codemirror/lang-html': registry.npmmirror.com/@codemirror/lang-html@6.4.3 + '@codemirror/lang-javascript': registry.npmmirror.com/@codemirror/lang-javascript@6.1.7 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@codemirror/lang-wast@6.0.1: + resolution: {integrity: sha512-sQLsqhRjl2MWG3rxZysX+2XAyed48KhLBHLgq9xcKxIJu3npH/G+BIXW5NM5mHeDUjG0jcGh9BcjP0NfMStuzA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-wast/-/lang-wast-6.0.1.tgz} + name: '@codemirror/lang-wast' + version: 6.0.1 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@codemirror/lang-xml@6.0.2: + resolution: {integrity: sha512-JQYZjHL2LAfpiZI2/qZ/qzDuSqmGKMwyApYmEUUCTxLM4MWS7sATUEfIguZQr9Zjx/7gcdnewb039smF6nC2zw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lang-xml/-/lang-xml-6.0.2.tgz} + name: '@codemirror/lang-xml' + version: 6.0.2 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/xml': registry.npmmirror.com/@lezer/xml@1.0.1 + dev: false + + registry.npmmirror.com/@codemirror/language-data@6.3.0: + resolution: {integrity: sha512-D9tOZS38mK59jDs1Flqe8GgCdUAYI339SqBdwHJZwxgyXHsBc8RIhAlz2oXWGpvZeP/kVHy9LVfoBFgO02mx7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/language-data/-/language-data-6.3.0.tgz} + name: '@codemirror/language-data' + version: 6.3.0 + dependencies: + '@codemirror/lang-angular': registry.npmmirror.com/@codemirror/lang-angular@0.1.0 + '@codemirror/lang-cpp': registry.npmmirror.com/@codemirror/lang-cpp@6.0.2 + '@codemirror/lang-css': registry.npmmirror.com/@codemirror/lang-css@6.2.0 + '@codemirror/lang-html': registry.npmmirror.com/@codemirror/lang-html@6.4.3 + '@codemirror/lang-java': registry.npmmirror.com/@codemirror/lang-java@6.0.1 + '@codemirror/lang-javascript': registry.npmmirror.com/@codemirror/lang-javascript@6.1.7 + '@codemirror/lang-json': registry.npmmirror.com/@codemirror/lang-json@6.0.1 + '@codemirror/lang-markdown': registry.npmmirror.com/@codemirror/lang-markdown@6.1.1 + '@codemirror/lang-php': registry.npmmirror.com/@codemirror/lang-php@6.0.1 + '@codemirror/lang-python': registry.npmmirror.com/@codemirror/lang-python@6.1.2 + '@codemirror/lang-rust': registry.npmmirror.com/@codemirror/lang-rust@6.0.1 + '@codemirror/lang-sass': registry.npmmirror.com/@codemirror/lang-sass@6.0.1 + '@codemirror/lang-sql': registry.npmmirror.com/@codemirror/lang-sql@6.4.1 + '@codemirror/lang-vue': registry.npmmirror.com/@codemirror/lang-vue@0.1.1 + '@codemirror/lang-wast': registry.npmmirror.com/@codemirror/lang-wast@6.0.1 + '@codemirror/lang-xml': registry.npmmirror.com/@codemirror/lang-xml@6.0.2 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/legacy-modes': registry.npmmirror.com/@codemirror/legacy-modes@6.3.2 + dev: false + + registry.npmmirror.com/@codemirror/language@6.6.0: + resolution: {integrity: sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/language/-/language-6.6.0.tgz} + name: '@codemirror/language' + version: 6.6.0 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + style-mod: registry.npmmirror.com/style-mod@4.0.3 + dev: false + + registry.npmmirror.com/@codemirror/legacy-modes@6.3.2: + resolution: {integrity: sha512-ki5sqNKWzKi5AKvpVE6Cna4Q+SgxYuYVLAZFSsMjGBWx5qSVa+D+xipix65GS3f2syTfAD9pXKMX4i4p49eneQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/legacy-modes/-/legacy-modes-6.3.2.tgz} + name: '@codemirror/legacy-modes' + version: 6.3.2 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + dev: false + + registry.npmmirror.com/@codemirror/lint@6.2.1: + resolution: {integrity: sha512-y1muai5U/uUPAGRyHMx9mHuHLypPcHWxzlZGknp/U5Mdb5Ol8Q5ZLp67UqyTbNFJJ3unVxZ8iX3g1fMN79S1JQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/lint/-/lint-6.2.1.tgz} + name: '@codemirror/lint' + version: 6.2.1 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + crelt: registry.npmmirror.com/crelt@1.0.5 + dev: false + + registry.npmmirror.com/@codemirror/search@6.4.0: + resolution: {integrity: sha512-zMDgaBXah+nMLK2dHz9GdCnGbQu+oaGRXS1qviqNZkvOCv/whp5XZFyoikLp/23PM9RBcbuKUUISUmQHM1eRHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/search/-/search-6.4.0.tgz} + name: '@codemirror/search' + version: 6.4.0 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + crelt: registry.npmmirror.com/crelt@1.0.5 + dev: false + + registry.npmmirror.com/@codemirror/state@6.2.0: + resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/state/-/state-6.2.0.tgz} + name: '@codemirror/state' + version: 6.2.0 + dev: false + + registry.npmmirror.com/@codemirror/view@6.10.0: + resolution: {integrity: sha512-Oea3rvE4JQLMmLsy2b54yxXQJgJM9xKpUQIpF/LGgKUTH2lA06GAmEtKKWn5OUnbW3jrH1hHeUd8DJEgePMOeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@codemirror/view/-/view-6.10.0.tgz} + name: '@codemirror/view' + version: 6.10.0 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + style-mod: registry.npmmirror.com/style-mod@4.0.3 + w3c-keyname: registry.npmmirror.com/w3c-keyname@2.2.6 + dev: false + + registry.npmmirror.com/@element-plus/icons-vue@2.1.0(vue@3.2.47): + resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz} + id: registry.npmmirror.com/@element-plus/icons-vue/2.1.0 + name: '@element-plus/icons-vue' + version: 2.1.0 + peerDependencies: + vue: ^3.2.0 + dependencies: + vue: 3.2.47 + dev: false + + registry.npmmirror.com/@esbuild/android-arm64@0.17.17: + resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz} + name: '@esbuild/android-arm64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.15.18: + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz} + name: '@esbuild/android-arm' + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.17.17: + resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.17.tgz} + name: '@esbuild/android-arm' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.17.17: + resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.17.tgz} + name: '@esbuild/android-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.17: + resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz} + name: '@esbuild/darwin-arm64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.17.17: + resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz} + name: '@esbuild/darwin-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.17: + resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.17: + resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz} + name: '@esbuild/freebsd-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.17.17: + resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz} + name: '@esbuild/linux-arm64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.17.17: + resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz} + name: '@esbuild/linux-arm' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.17.17: + resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz} + name: '@esbuild/linux-ia32' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} + name: '@esbuild/linux-loong64' + version: 0.14.54 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz} + name: '@esbuild/linux-loong64' + version: 0.15.18 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.17.17: + resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz} + name: '@esbuild/linux-loong64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.17: + resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz} + name: '@esbuild/linux-mips64el' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.17: + resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz} + name: '@esbuild/linux-ppc64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.17: + resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz} + name: '@esbuild/linux-riscv64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.17.17: + resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz} + name: '@esbuild/linux-s390x' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.17.17: + resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz} + name: '@esbuild/linux-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.17: + resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz} + name: '@esbuild/netbsd-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.17: + resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz} + name: '@esbuild/openbsd-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.17.17: + resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz} + name: '@esbuild/sunos-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.17.17: + resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz} + name: '@esbuild/win32-arm64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.17.17: + resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz} + name: '@esbuild/win32-ia32' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.17.17: + resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz} + name: '@esbuild/win32-x64' + version: 0.17.17 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@jridgewell/gen-mapping@0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} + name: '@jridgewell/gen-mapping' + version: 0.1.1 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: true + + registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.3 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.18 + + registry.npmmirror.com/@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.0 + engines: {node: '>=6.0.0'} + + registry.npmmirror.com/@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.14 + + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.15 + + registry.npmmirror.com/@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.18 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.0 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14 + + registry.npmmirror.com/@lezer/common@1.0.2: + resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/common/-/common-1.0.2.tgz} + name: '@lezer/common' + version: 1.0.2 + dev: false + + registry.npmmirror.com/@lezer/cpp@1.1.0: + resolution: {integrity: sha512-zUHrjNFuY/DOZCkOBJ6qItQIkcopHM/Zv/QOE0a4XNG3HDNahxTNu5fQYl8dIuKCpxCqRdMl5cEwl5zekFc7BA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/cpp/-/cpp-1.1.0.tgz} + name: '@lezer/cpp' + version: 1.1.0 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/css@1.1.1: + resolution: {integrity: sha512-mSjx+unLLapEqdOYDejnGBokB5+AiJKZVclmud0MKQOKx3DLJ5b5VTCstgDDknR6iIV4gVrN6euzsCnj0A2gQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/css/-/css-1.1.1.tgz} + name: '@lezer/css' + version: 1.1.1 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/highlight@1.1.4: + resolution: {integrity: sha512-IECkFmw2l7sFcYXrV8iT9GeY4W0fU4CxX0WMwhmhMIVjoDdD1Hr6q3G2NqVtLg/yVe5n7i4menG3tJ2r4eCrPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/highlight/-/highlight-1.1.4.tgz} + name: '@lezer/highlight' + version: 1.1.4 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + dev: false + + registry.npmmirror.com/@lezer/html@1.3.4: + resolution: {integrity: sha512-HdJYMVZcT4YsMo7lW3ipL4NoyS2T67kMPuSVS5TgLGqmaCjEU/D6xv7zsa1ktvTK5lwk7zzF1e3eU6gBZIPm5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/html/-/html-1.3.4.tgz} + name: '@lezer/html' + version: 1.3.4 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/java@1.0.3: + resolution: {integrity: sha512-kKN17wmgP1cgHb8juR4pwVSPMKkDMzY/lAPbBsZ1fpXwbk2sg3N1kIrf0q+LefxgrANaQb/eNO7+m2QPruTFng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/java/-/java-1.0.3.tgz} + name: '@lezer/java' + version: 1.0.3 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/javascript@1.4.3: + resolution: {integrity: sha512-k7Eo9z9B1supZ5cCD4ilQv/RZVN30eUQL+gGbr6ybrEY3avBAL5MDiYi2aa23Aj0A79ry4rJRvPAwE2TM8bd+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/javascript/-/javascript-1.4.3.tgz} + name: '@lezer/javascript' + version: 1.4.3 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/json@1.0.0: + resolution: {integrity: sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/json/-/json-1.0.0.tgz} + name: '@lezer/json' + version: 1.0.0 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/lr@1.3.4: + resolution: {integrity: sha512-7o+e4og/QoC/6btozDPJqnzBhUaD1fMfmvnEKQO1wRRiTse1WxaJ3OMEXZJnkgT6HCcTVOctSoXK9jGJw2oe9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/lr/-/lr-1.3.4.tgz} + name: '@lezer/lr' + version: 1.3.4 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + dev: false + + registry.npmmirror.com/@lezer/markdown@1.0.2: + resolution: {integrity: sha512-8CY0OoZ6V5EzPjSPeJ4KLVbtXdLBd8V6sRCooN5kHnO28ytreEGTyrtU/zUwo/XLRzGr/e1g44KlzKi3yWGB5A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/markdown/-/markdown-1.0.2.tgz} + name: '@lezer/markdown' + version: 1.0.2 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.0.2 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + dev: false + + registry.npmmirror.com/@lezer/php@1.0.1: + resolution: {integrity: sha512-aqdCQJOXJ66De22vzdwnuC502hIaG9EnPK2rSi+ebXyUd+j7GAX1mRjWZOVOmf3GST1YUfUCu6WXDiEgDGOVwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/php/-/php-1.0.1.tgz} + name: '@lezer/php' + version: 1.0.1 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/python@1.1.5: + resolution: {integrity: sha512-h0DVr6IfrmKUbTc5PeetaC87IZYoHyn5JogsVYW5mRDpVRyEsvaLBMLyEN4Ufc2BKp1c9y2Pkr8ZNLxS8dTLsQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/python/-/python-1.1.5.tgz} + name: '@lezer/python' + version: 1.1.5 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/rust@1.0.0: + resolution: {integrity: sha512-IpGAxIjNxYmX9ra6GfQTSPegdCAWNeq23WNmrsMMQI7YNSvKtYxO4TX5rgZUmbhEucWn0KTBMeDEPXg99YKtTA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/rust/-/rust-1.0.0.tgz} + name: '@lezer/rust' + version: 1.0.0 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/sass@1.0.1: + resolution: {integrity: sha512-S/aYAzABzMqWLfKKqV89pCWME4yjZYC6xzD02l44wbmb0sHxmN9/8aE4GULrKFzFaGazHdXcGEbPZ4zzB6yqwQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/sass/-/sass-1.0.1.tgz} + name: '@lezer/sass' + version: 1.0.1 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@lezer/xml@1.0.1: + resolution: {integrity: sha512-jMDXrV953sDAUEMI25VNrI9dz94Ai96FfeglytFINhhwQ867HKlCE2jt3AwZTCT7M528WxdDWv/Ty8e9wizwmQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lezer/xml/-/xml-1.0.1.tgz} + name: '@lezer/xml' + version: 1.0.1 + dependencies: + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.1.4 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.4 + dev: false + + registry.npmmirror.com/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + + registry.npmmirror.com/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.nlark.com/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmmirror.com/fastq@1.15.0 + + registry.npmmirror.com/@sxzz/popperjs-es@2.11.7: + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz} + name: '@sxzz/popperjs-es' + version: 2.11.7 + dev: false + + registry.npmmirror.com/@types/linkify-it@3.0.2: + resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/linkify-it/-/linkify-it-3.0.2.tgz} + name: '@types/linkify-it' + version: 3.0.2 + dev: false + + registry.npmmirror.com/@types/markdown-it@12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/markdown-it/-/markdown-it-12.2.3.tgz} + name: '@types/markdown-it' + version: 12.2.3 + dependencies: + '@types/linkify-it': registry.npmmirror.com/@types/linkify-it@3.0.2 + '@types/mdurl': registry.npmmirror.com/@types/mdurl@1.0.2 + dev: false + + registry.npmmirror.com/@types/marked@4.0.8: + resolution: {integrity: sha512-HVNzMT5QlWCOdeuBsgXP8EZzKUf0+AXzN+sLmjvaB3ZlLqO+e4u0uXrdw9ub69wBKFs+c6/pA4r9sy6cCDvImw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/marked/-/marked-4.0.8.tgz} + name: '@types/marked' + version: 4.0.8 + dev: false + + registry.npmmirror.com/@types/mdurl@1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/mdurl/-/mdurl-1.0.2.tgz} + name: '@types/mdurl' + version: 1.0.2 + dev: false + + registry.npmmirror.com/@vavt/markdown-theme@3.0.0: + resolution: {integrity: sha512-Vp/q1woesYOodIyQFUIeDflwrnXdRtLljbQa5tm3IUI75RDNB3K1R9NU/aPUhafkITQvnwl7U2uOXnXd2JJRBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@vavt/markdown-theme/-/markdown-theme-3.0.0.tgz} + name: '@vavt/markdown-theme' + version: 3.0.0 + dev: false + + registry.npmmirror.com/any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz} + name: any-promise + version: 1.3.0 + dev: false + + registry.npmmirror.com/anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + name: anymatch + version: 3.1.3 + engines: {node: '>= 8'} + dependencies: + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + + registry.npmmirror.com/arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/arg/-/arg-5.0.2.tgz} + name: arg + version: 5.0.2 + dev: false + + registry.npmmirror.com/argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: false + + registry.npmmirror.com/autoprefixer@10.4.14(postcss@8.4.23): + resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.14.tgz} + id: registry.npmmirror.com/autoprefixer/10.4.14 + name: autoprefixer + version: 10.4.14 + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.21.5 + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001464 + fraction.js: registry.npmmirror.com/fraction.js@4.2.0 + normalize-range: registry.npmmirror.com/normalize-range@0.1.2 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + + registry.npmmirror.com/binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + name: binary-extensions + version: 2.2.0 + engines: {node: '>=8'} + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: 0.0.1 + + registry.npmmirror.com/brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + name: brace-expansion + version: 2.0.1 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + dev: true + + registry.npmmirror.com/braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/braces/-/braces-2.3.2.tgz} + name: braces + version: 2.3.2 + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: registry.npmmirror.com/fill-range@4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range@7.0.1 + + registry.npmmirror.com/browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz} + name: browserslist + version: 4.21.5 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001464 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.327 + node-releases: registry.npmmirror.com/node-releases@2.0.10 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.10(browserslist@4.21.5) + dev: true + + registry.npmmirror.com/camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz} + name: camelcase-css + version: 2.0.1 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/caniuse-lite@1.0.30001464: + resolution: {integrity: sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz} + name: caniuse-lite + version: 1.0.30001464 + dev: true + + registry.npmmirror.com/chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: registry.npmmirror.com/anymatch@3.1.3 + braces: registry.npmmirror.com/braces@3.0.2 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path@2.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + readdirp: registry.npmmirror.com/readdirp@3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + + registry.npmmirror.com/codemirror@6.0.1: + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz} + name: codemirror + version: 6.0.1 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.6.0 + '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.2.3 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.6.0 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.2.1 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.4.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.10.0 + dev: false + + registry.npmmirror.com/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: true + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + + registry.npmmirror.com/commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/commander/-/commander-4.1.1.tgz} + name: commander + version: 4.1.1 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} + name: commander + version: 7.2.0 + engines: {node: '>= 10'} + dev: true + + registry.npmmirror.com/copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} + name: copy-to-clipboard + version: 3.3.3 + dependencies: + toggle-selection: registry.npmmirror.com/toggle-selection@1.0.6 + dev: false + + registry.npmmirror.com/crelt@1.0.5: + resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/crelt/-/crelt-1.0.5.tgz} + name: crelt + version: 1.0.5 + dev: false + + registry.npmmirror.com/cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz} + name: cssesc + version: 3.0.0 + engines: {node: '>=4'} + hasBin: true + + registry.npmmirror.com/didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz} + name: didyoumean + version: 1.2.2 + dev: false + + registry.npmmirror.com/dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz} + name: dlv + version: 1.1.3 + dev: false + + registry.npmmirror.com/echarts@5.4.2: + resolution: {integrity: sha512-2W3vw3oI2tWJdyAz+b8DuWS0nfXtSDqlDmqgin/lfzbkB01cuMEN66KWBlmur3YMp5nEDEEt5s23pllnAzB4EA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/echarts/-/echarts-5.4.2.tgz} + name: echarts + version: 5.4.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.3.0 + zrender: registry.npmmirror.com/zrender@5.4.3 + dev: false + + registry.npmmirror.com/electron-to-chromium@1.4.327: + resolution: {integrity: sha512-DIk2H4g/3ZhjgiABJjVdQvUdMlSABOsjeCm6gmUzIdKxAuFrGiJ8QXMm3i09grZdDBMC/d8MELMrdwYRC0+YHg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.327.tgz} + name: electron-to-chromium + version: 1.4.327 + dev: true + + registry.npmmirror.com/entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/entities/-/entities-1.1.2.tgz} + name: entities + version: 1.1.2 + dev: true + + registry.npmmirror.com/entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} + name: entities + version: 2.2.0 + dev: true + + registry.npmmirror.com/entities@3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/entities/-/entities-3.0.1.tgz} + name: entities + version: 3.0.1 + engines: {node: '>=0.12'} + dev: false + + registry.npmmirror.com/entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/entities/-/entities-4.5.0.tgz} + name: entities + version: 4.5.0 + engines: {node: '>=0.12'} + dev: true + + registry.npmmirror.com/esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} + name: esbuild-android-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-64@0.15.18: + resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz} + name: esbuild-android-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} + name: esbuild-android-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64@0.15.18: + resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz} + name: esbuild-android-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} + name: esbuild-darwin-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64@0.15.18: + resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz} + name: esbuild-darwin-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} + name: esbuild-darwin-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64@0.15.18: + resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz} + name: esbuild-darwin-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} + name: esbuild-freebsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64@0.15.18: + resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz} + name: esbuild-freebsd-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64@0.15.18: + resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz} + name: esbuild-freebsd-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} + name: esbuild-linux-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32@0.15.18: + resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz} + name: esbuild-linux-32 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} + name: esbuild-linux-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64@0.15.18: + resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz} + name: esbuild-linux-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} + name: esbuild-linux-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64@0.15.18: + resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz} + name: esbuild-linux-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} + name: esbuild-linux-arm + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm@0.15.18: + resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz} + name: esbuild-linux-arm + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} + name: esbuild-linux-mips64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le@0.15.18: + resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz} + name: esbuild-linux-mips64le + version: 0.15.18 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} + name: esbuild-linux-ppc64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le@0.15.18: + resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz} + name: esbuild-linux-ppc64le + version: 0.15.18 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} + name: esbuild-linux-riscv64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64@0.15.18: + resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz} + name: esbuild-linux-riscv64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} + name: esbuild-linux-s390x + version: 0.14.54 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x@0.15.18: + resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz} + name: esbuild-linux-s390x + version: 0.15.18 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} + name: esbuild-netbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64@0.15.18: + resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz} + name: esbuild-netbsd-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} + name: esbuild-openbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64@0.15.18: + resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz} + name: esbuild-openbsd-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} + name: esbuild-sunos-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64@0.15.18: + resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz} + name: esbuild-sunos-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} + name: esbuild-windows-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32@0.15.18: + resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz} + name: esbuild-windows-32 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} + name: esbuild-windows-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64@0.15.18: + resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz} + name: esbuild-windows-64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} + name: esbuild-windows-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64@0.15.18: + resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz} + name: esbuild-windows-arm64 + version: 0.15.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + name: fast-glob + version: 3.2.12 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + + registry.npmmirror.com/fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + + registry.npmmirror.com/fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz} + name: fill-range + version: 4.0.0 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: registry.npmmirror.com/is-number@3.0.0 + repeat-string: 1.6.1 + to-regex-range: registry.npmmirror.com/to-regex-range@2.1.1 + dev: true + + registry.npmmirror.com/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 + + registry.npmmirror.com/fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz} + name: fraction.js + version: 4.2.0 + dev: true + + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + + registry.npmmirror.com/fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + + registry.npmmirror.com/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + + registry.npmmirror.com/glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} + name: glob-parent + version: 6.0.2 + engines: {node: '>=10.13.0'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: false + + registry.npmmirror.com/glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-7.1.6.tgz} + name: glob + version: 7.1.6 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: false + + registry.npmmirror.com/glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-7.1.7.tgz} + name: glob + version: 7.1.7 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: true + + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: true + + registry.npmmirror.com/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + dev: true + + registry.npmmirror.com/has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + + registry.npmmirror.com/highlight.js@11.7.0: + resolution: {integrity: sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/highlight.js/-/highlight.js-11.7.0.tgz} + name: highlight.js + version: 11.7.0 + engines: {node: '>=12.0.0'} + dev: false + + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + + registry.npmmirror.com/is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + name: is-binary-path + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + binary-extensions: registry.npmmirror.com/binary-extensions@2.2.0 + + registry.npmmirror.com/is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.0.tgz} + name: is-core-module + version: 2.12.0 + dependencies: + has: registry.npmmirror.com/has@1.0.3 + + registry.npmmirror.com/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob@2.1.1 + + registry.npmmirror.com/is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz} + name: is-number + version: 3.0.0 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + registry.npmmirror.com/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + + registry.npmmirror.com/jiti@1.18.2: + resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jiti/-/jiti-1.18.2.tgz} + name: jiti + version: 1.18.2 + hasBin: true + + registry.npmmirror.com/lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz} + name: lilconfig + version: 2.1.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + + registry.npmmirror.com/linkify-it@4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/linkify-it/-/linkify-it-4.0.1.tgz} + name: linkify-it + version: 4.0.1 + dependencies: + uc.micro: registry.npmmirror.com/uc.micro@1.0.6 + dev: false + + registry.npmmirror.com/lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + name: lru-cache + version: 5.1.1 + dependencies: + yallist: 3.1.1 + dev: true + + registry.npmmirror.com/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + registry.npmmirror.com/lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-8.0.5.tgz} + name: lru-cache + version: 8.0.5 + engines: {node: '>=16.14'} + dev: false + + registry.npmmirror.com/markdown-it-codetabs@1.2.0: + resolution: {integrity: sha512-kF0ec56hKmBZ4xMSFm1pIOuRT37iInD8uvTq+uaWpVKnja6mAg6gkGMLaeLeBiRx4fAMJmrWy417WPf8GgNWxg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/markdown-it-codetabs/-/markdown-it-codetabs-1.2.0.tgz} + name: markdown-it-codetabs + version: 1.2.0 + dev: false + + registry.npmmirror.com/markdown-it-image-figures@2.1.1(markdown-it@13.0.1): + resolution: {integrity: sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz} + id: registry.npmmirror.com/markdown-it-image-figures/2.1.1 + name: markdown-it-image-figures + version: 2.1.1 + engines: {node: '>=12.0.0'} + peerDependencies: + markdown-it: '*' + dependencies: + markdown-it: registry.npmmirror.com/markdown-it@13.0.1 + dev: false + + registry.npmmirror.com/markdown-it-task-lists@2.1.1: + resolution: {integrity: sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz} + name: markdown-it-task-lists + version: 2.1.1 + dev: false + + registry.npmmirror.com/markdown-it@13.0.1: + resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/markdown-it/-/markdown-it-13.0.1.tgz} + name: markdown-it + version: 13.0.1 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@2.0.1 + entities: registry.npmmirror.com/entities@3.0.1 + linkify-it: registry.npmmirror.com/linkify-it@4.0.1 + mdurl: registry.npmmirror.com/mdurl@1.0.1 + uc.micro: registry.npmmirror.com/uc.micro@1.0.6 + dev: false + + registry.npmmirror.com/marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/marked/-/marked-4.3.0.tgz} + name: marked + version: 4.3.0 + engines: {node: '>= 12'} + hasBin: true + dev: false + + registry.npmmirror.com/md-editor-v3@3.0.0(vue@3.2.47): + resolution: {integrity: sha512-/O3XIWnof3cneqvZwTmTW00KjHFuBImY13ou3cShbBZBesXVswbUGs1NOMq0bSfbJJOHDp2G636d3GnwqRl30w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/md-editor-v3/-/md-editor-v3-3.0.0.tgz} + id: registry.npmmirror.com/md-editor-v3/3.0.0 + name: md-editor-v3 + version: 3.0.0 + peerDependencies: + vue: ^3.2.47 + dependencies: + '@codemirror/lang-markdown': registry.npmmirror.com/@codemirror/lang-markdown@6.1.1 + '@codemirror/language-data': registry.npmmirror.com/@codemirror/language-data@6.3.0 + '@types/markdown-it': registry.npmmirror.com/@types/markdown-it@12.2.3 + '@vavt/markdown-theme': registry.npmmirror.com/@vavt/markdown-theme@3.0.0 + codemirror: registry.npmmirror.com/codemirror@6.0.1 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + lru-cache: registry.npmmirror.com/lru-cache@8.0.5 + markdown-it: registry.npmmirror.com/markdown-it@13.0.1 + markdown-it-codetabs: registry.npmmirror.com/markdown-it-codetabs@1.2.0 + markdown-it-image-figures: registry.npmmirror.com/markdown-it-image-figures@2.1.1(markdown-it@13.0.1) + markdown-it-task-lists: registry.npmmirror.com/markdown-it-task-lists@2.1.1 + medium-zoom: registry.npmmirror.com/medium-zoom@1.0.8 + vue: 3.2.47 + dev: false + + registry.npmmirror.com/mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz} + name: mdurl + version: 1.0.1 + dev: false + + registry.npmmirror.com/medium-zoom@1.0.8: + resolution: {integrity: sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/medium-zoom/-/medium-zoom-1.0.8.tgz} + name: medium-zoom + version: 1.0.8 + dev: false + + registry.npmmirror.com/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + + registry.npmmirror.com/micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz} + name: micromatch + version: 3.1.0 + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: registry.npmmirror.com/braces@2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + + registry.npmmirror.com/minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-3.0.8.tgz} + name: minimatch + version: 3.0.8 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: true + + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + + registry.npmmirror.com/minimatch@9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz} + name: minimatch + version: 9.0.0 + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true + + registry.npmmirror.com/mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mz/-/mz-2.7.0.tgz} + name: mz + version: 2.7.0 + dependencies: + any-promise: registry.npmmirror.com/any-promise@1.3.0 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + thenify-all: registry.npmmirror.com/thenify-all@1.6.0 + dev: false + + registry.npmmirror.com/nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz} + name: nanoid + version: 3.3.6 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + registry.npmmirror.com/node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz} + name: node-releases + version: 2.0.10 + dev: true + + registry.npmmirror.com/normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + name: normalize-path + version: 3.0.0 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz} + name: normalize-range + version: 0.1.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz} + name: object-hash + version: 3.0.0 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + + registry.npmmirror.com/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + + registry.npmmirror.com/pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pify/-/pify-2.3.0.tgz} + name: pify + version: 2.3.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pify/-/pify-3.0.0.tgz} + name: pify + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/pirates@4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pirates/-/pirates-4.0.5.tgz} + name: pirates + version: 4.0.5 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/postcss-import@14.1.0(postcss@8.4.23): + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz} + id: registry.npmmirror.com/postcss-import/14.1.0 + name: postcss-import + version: 14.1.0 + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + read-cache: registry.npmmirror.com/read-cache@1.0.0 + resolve: registry.npmmirror.com/resolve@1.22.2 + dev: false + + registry.npmmirror.com/postcss-js@4.0.1(postcss@8.4.23): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz} + id: registry.npmmirror.com/postcss-js/4.0.1 + name: postcss-js + version: 4.0.1 + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: registry.npmmirror.com/camelcase-css@2.0.1 + postcss: registry.npmmirror.com/postcss@8.4.23 + dev: false + + registry.npmmirror.com/postcss-load-config@3.1.4(postcss@8.4.23): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz} + id: registry.npmmirror.com/postcss-load-config/3.1.4 + name: postcss-load-config + version: 3.1.4 + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: registry.npmmirror.com/lilconfig@2.1.0 + postcss: registry.npmmirror.com/postcss@8.4.23 + yaml: registry.npmmirror.com/yaml@1.10.2 + dev: false + + registry.npmmirror.com/postcss-nested@6.0.0(postcss@8.4.23): + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.0.tgz} + id: registry.npmmirror.com/postcss-nested/6.0.0 + name: postcss-nested + version: 6.0.0 + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.11 + dev: false + + registry.npmmirror.com/postcss-selector-parser@6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz} + name: postcss-selector-parser + version: 6.0.11 + engines: {node: '>=4'} + dependencies: + cssesc: registry.npmmirror.com/cssesc@3.0.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} + name: postcss-value-parser + version: 4.2.0 + + registry.npmmirror.com/postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz} + name: postcss + version: 5.2.18 + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: 0.5.7 + supports-color: 3.2.3 + dev: true + + registry.npmmirror.com/postcss@8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz} + name: postcss + version: 8.4.23 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid@3.3.6 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + + registry.npmmirror.com/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + + registry.npmmirror.com/quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} + name: quick-lru + version: 4.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz} + name: quick-lru + version: 5.1.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz} + name: read-cache + version: 1.0.0 + dependencies: + pify: registry.npmmirror.com/pify@2.3.0 + dev: false + + registry.npmmirror.com/readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + name: readdirp + version: 3.6.0 + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.npmmirror.com/picomatch@2.3.1 + + registry.npmmirror.com/resize-detector@0.3.0: + resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz} + name: resize-detector + version: 0.3.0 + dev: false + + registry.npmmirror.com/resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} + name: resize-observer-polyfill + version: 1.5.1 + dev: false + + registry.npmmirror.com/resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz} + name: resolve + version: 1.22.2 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.12.0 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + + registry.npmmirror.com/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + registry.npmmirror.com/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 + + registry.npmmirror.com/source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/style-mod@4.0.3: + resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/style-mod/-/style-mod-4.0.3.tgz} + name: style-mod + version: 4.0.3 + dev: false + + registry.npmmirror.com/sucrase@3.32.0: + resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sucrase/-/sucrase-3.32.0.tgz} + name: sucrase + version: 3.32.0 + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + commander: registry.npmmirror.com/commander@4.1.1 + glob: registry.npmmirror.com/glob@7.1.6 + lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 + mz: registry.npmmirror.com/mz@2.7.0 + pirates: registry.npmmirror.com/pirates@4.0.5 + ts-interface-checker: registry.npmmirror.com/ts-interface-checker@0.1.13 + dev: false + + registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + + registry.npmmirror.com/tailwindcss@3.3.1(postcss@8.4.23): + resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.3.1.tgz} + id: registry.npmmirror.com/tailwindcss/3.3.1 + name: tailwindcss + version: 3.3.1 + engines: {node: '>=12.13.0'} + hasBin: true + peerDependencies: + postcss: ^8.0.9 + dependencies: + arg: registry.npmmirror.com/arg@5.0.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + color-name: registry.npmmirror.com/color-name@1.1.4 + didyoumean: registry.npmmirror.com/didyoumean@1.2.2 + dlv: registry.npmmirror.com/dlv@1.1.3 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + glob-parent: registry.npmmirror.com/glob-parent@6.0.2 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + jiti: registry.npmmirror.com/jiti@1.18.2 + lilconfig: registry.npmmirror.com/lilconfig@2.1.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + object-hash: registry.npmmirror.com/object-hash@3.0.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.23 + postcss-import: registry.npmmirror.com/postcss-import@14.1.0(postcss@8.4.23) + postcss-js: registry.npmmirror.com/postcss-js@4.0.1(postcss@8.4.23) + postcss-load-config: registry.npmmirror.com/postcss-load-config@3.1.4(postcss@8.4.23) + postcss-nested: registry.npmmirror.com/postcss-nested@6.0.0(postcss@8.4.23) + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.11 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + quick-lru: registry.npmmirror.com/quick-lru@5.1.1 + resolve: registry.npmmirror.com/resolve@1.22.2 + sucrase: registry.npmmirror.com/sucrase@3.32.0 + transitivePeerDependencies: + - ts-node + dev: false + + registry.npmmirror.com/thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz} + name: thenify-all + version: 1.6.0 + engines: {node: '>=0.8'} + dependencies: + thenify: registry.npmmirror.com/thenify@3.3.1 + dev: false + + registry.npmmirror.com/thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz} + name: thenify + version: 3.3.1 + dependencies: + any-promise: registry.npmmirror.com/any-promise@1.3.0 + dev: false + + registry.npmmirror.com/to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz} + name: to-regex-range + version: 2.1.1 + engines: {node: '>=0.10.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@3.0.0 + repeat-string: 1.6.1 + dev: true + + registry.npmmirror.com/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@7.0.0 + + registry.npmmirror.com/toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} + name: toggle-selection + version: 1.0.6 + dev: false + + registry.npmmirror.com/ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz} + name: ts-interface-checker + version: 0.1.13 + dev: false + + registry.npmmirror.com/tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: true + + registry.npmmirror.com/tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz} + name: tslib + version: 2.3.0 + dev: false + + registry.npmmirror.com/tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz} + name: tslib + version: 2.5.0 + dev: true + + registry.npmmirror.com/uc.micro@1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz} + name: uc.micro + version: 1.0.6 + dev: false + + registry.npmmirror.com/uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz} + name: uglify-js + version: 3.17.4 + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/update-browserslist-db@1.0.10(browserslist@4.21.5): + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.10 + name: update-browserslist-db + version: 1.0.10 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.21.5 + escalade: registry.npmmirror.com/escalade@3.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + dev: true + + registry.npmmirror.com/util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + name: util-deprecate + version: 1.0.2 + + registry.npmmirror.com/vue-demi@0.13.11(vue@3.2.47): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz} + id: registry.npmmirror.com/vue-demi/0.13.11 + name: vue-demi + version: 0.13.11 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + dev: false + + registry.npmmirror.com/vue-demi@0.14.0(vue@3.2.47): + resolution: {integrity: sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.0.tgz} + id: registry.npmmirror.com/vue-demi/0.14.0 + name: vue-demi + version: 0.14.0 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + + registry.npmmirror.com/vue-echarts@6.5.4(echarts@5.4.2)(vue@3.2.47): + resolution: {integrity: sha512-pLJTk2hfhauoWdmiZGXByAtcO6bpfnAS+jkJqKimSBSV5I5ckh2nka9duLlIVbTvQOEb2tFa0XiXjACQNcEfpA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.5.4.tgz} + id: registry.npmmirror.com/vue-echarts/6.5.4 + name: vue-echarts + version: 6.5.4 + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.5 + echarts: ^5.4.1 + vue: ^2.6.12 || ^3.1.1 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + echarts: registry.npmmirror.com/echarts@5.4.2 + resize-detector: registry.npmmirror.com/resize-detector@0.3.0 + vue: 3.2.47 + vue-demi: registry.npmmirror.com/vue-demi@0.13.11(vue@3.2.47) + dev: false + + registry.npmmirror.com/w3c-keyname@2.2.6: + resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.6.tgz} + name: w3c-keyname + version: 2.2.6 + dev: false + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + + registry.npmmirror.com/yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} + name: yaml + version: 1.10.2 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/zrender@5.4.3: + resolution: {integrity: sha512-DRUM4ZLnoaT0PBVvGBDO9oWIDBKFdAVieNWxWwK0niYzJCMwGchRk21/hsE+RKkIveH3XHCyvXcJDkgLVvfizQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/zrender/-/zrender-5.4.3.tgz} + name: zrender + version: 5.4.3 + dependencies: + tslib: registry.npmmirror.com/tslib@2.3.0 + dev: false diff --git a/admin/postcss.config.js b/admin/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/admin/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/admin/public/browser_upgrade/chrome.png b/admin/public/browser_upgrade/chrome.png new file mode 100644 index 0000000..c205a47 Binary files /dev/null and b/admin/public/browser_upgrade/chrome.png differ diff --git a/admin/public/browser_upgrade/edge.png b/admin/public/browser_upgrade/edge.png new file mode 100644 index 0000000..3e7f158 Binary files /dev/null and b/admin/public/browser_upgrade/edge.png differ diff --git a/admin/public/browser_upgrade/index.css b/admin/public/browser_upgrade/index.css new file mode 100644 index 0000000..c1c7026 --- /dev/null +++ b/admin/public/browser_upgrade/index.css @@ -0,0 +1,49 @@ +#browser-upgrade { + position: absolute; + z-index: 10001; + top: 0; + left: 0; + height: 100%; + width: 100%; + display: none; + user-select: none; + color: #736477; + background-color: snow; +} + +#browser-upgrade .title { + margin: 40px 0; + text-align: center; + font-size: 24px; +} + +#browser-upgrade .browsers { + text-align: center; +} + +#browser-upgrade .browsers .browser { + display: inline-block; + margin: 0 20px; + cursor: pointer; + text-decoration: none; +} + +#browser-upgrade .browsers .browser .browser-icon { + display: block; + width: 50px; + height: 50px; + margin: 0 auto; + border: none; +} + +#browser-upgrade .browsers .browser .browser-name { + text-align: center; + margin-top: 10px; + padding-bottom: 2px; + color: #736477; + border-bottom: 1px solid transparent; +} + +#browser-upgrade .browsers .browser:hover .browser-name { + border-bottom: 1px solid #736477; +} diff --git a/admin/public/favicon.ico b/admin/public/favicon.ico new file mode 100644 index 0000000..0f6c2e8 Binary files /dev/null and b/admin/public/favicon.ico differ diff --git a/admin/public/favicon.svg b/admin/public/favicon.svg new file mode 100644 index 0000000..12820c3 --- /dev/null +++ b/admin/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/public/loading.css b/admin/public/loading.css new file mode 100644 index 0000000..677ad56 --- /dev/null +++ b/admin/public/loading.css @@ -0,0 +1,90 @@ +#app { + height: 100%; +} + +.fantastic-admin-home { + position: absolute; + z-index: 10000; + top: 0; + left: 0; + height: 100%; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + user-select: none; + color: #736477; + background-image: linear-gradient( + 45deg, + rgb(51, 138, 249), + rgb(47, 248, 255) + ); +} + +.fantastic-admin-home .loading { + --r1: 154%; + --r2: 68.5%; + + width: 60px; + height: 60px; + border-radius: 50%; + background: radial-gradient( + var(--r1) var(--r2) at top, + #0000 79.5%, + #85f7fb 80% + ) + center left, + radial-gradient(var(--r1) var(--r2) at bottom, #85f7fb 79.5%, #0000 80%) + center center, + radial-gradient(var(--r1) var(--r2) at top, #0000 79.5%, #85f7fb 80%) center + right, + #d0f4ff; + background-size: 50.5% 220%; + background-position: -100% 0%, 0% 0%, 100% 0%; + background-repeat: no-repeat; + animation: p9 2s infinite linear; +} + +@keyframes p9 { + 33% { + background-position: 0% 33%, 100% 33%, 200% 33%; + } + 66% { + background-position: -100% 66%, 0% 66%, 100% 66%; + } + 100% { + background-position: 0% 100%, 100% 100%, 200% 100%; + } +} + +@keyframes square-to-dot-animation { + 15%, + 25% { + border-radius: 100%; + width: 0; + height: 0; + margin: 5px; + border-width: 5px; + } + + 40% { + border-radius: 15%; + width: 10px; + height: 10px; + margin: initial; + border-width: 3px; + } +} + +.fantastic-admin-home .text { + position: relative; + font-size: 24px; + margin-top: 20px; +} + +.fantastic-admin-home .text::after { + content: "…"; + position: absolute; + padding-left: 5px; +} diff --git a/admin/scripts/prepare.js b/admin/scripts/prepare.js new file mode 100644 index 0000000..d456d88 --- /dev/null +++ b/admin/scripts/prepare.js @@ -0,0 +1,15 @@ +import path from 'node:path' +import fs from 'fs-extra' +import { icons } from '@iconify-json/ep' + +async function prepare() { + const outputDir = path.resolve(process.cwd(), 'public/icons') + await fs.ensureDir(outputDir) + await fs.emptyDir(outputDir) + await fs.writeJSON( + path.resolve(outputDir, 'icons.json'), + icons, + ) +} + +prepare() diff --git a/admin/scss.template.hbs b/admin/scss.template.hbs new file mode 100644 index 0000000..7b01572 --- /dev/null +++ b/admin/scss.template.hbs @@ -0,0 +1,66 @@ +{ + // Default options + 'functions': true, + 'variableNameTransforms': ['dasherize'] +} + +{{#block "sprites"}} +{{#each sprites}} +${{../spritesheet_info.strings.name}}-sprite-{{strings.name}}: ({{px.x}}, {{px.y}}, {{px.offset_x}}, {{px.offset_y}}, {{px.width}}, {{px.height}}, {{px.total_width}}, {{px.total_height}}, '{{{escaped_image}}}', '{{name}}'); +{{/each}} + +${{spritesheet_info.strings.name}}-sprites: ( +{{#each sprites}} + {{strings.name}}: ${{../spritesheet_info.strings.name}}-sprite-{{strings.name}}, +{{/each}} +); +{{/block}} + +{{#block "sprite-functions"}} +{{#if options.functions}} +@mixin {{spritesheet_info.strings.name}}-sprite-width($sprite) { + width: nth($sprite, 5); +} + +@mixin {{spritesheet_info.strings.name}}-sprite-height($sprite) { + height: nth($sprite, 6); +} + +@mixin {{spritesheet_info.strings.name}}-sprite-position($sprite) { + $sprite-offset-x: nth($sprite, 3); + $sprite-offset-y: nth($sprite, 4); + background-position: $sprite-offset-x $sprite-offset-y; +} + +@mixin {{spritesheet_info.strings.name}}-sprite-size($sprite) { + background-size: nth($sprite, 7) nth($sprite, 8); +} + +@mixin {{spritesheet_info.strings.name}}-sprite-image($sprite) { + $sprite-image: nth($sprite, 9); + background-image: url(#{$sprite-image}); +} + +@mixin {{spritesheet_info.strings.name}}-sprite($name) { + @include {{spritesheet_info.strings.name}}-sprite-image(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-position(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-size(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-width(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + @include {{spritesheet_info.strings.name}}-sprite-height(map-get(${{spritesheet_info.strings.name}}-sprites, #{$name})); + background-repeat: no-repeat; +} +{{/if}} +{{/block}} + +{{#block "spritesheet-functions"}} +{{#if options.functions}} +@mixin all-{{spritesheet_info.strings.name}}-sprites() { + @each $key, $val in ${{spritesheet_info.strings.name}}-sprites { + $sprite-name: nth($val, 10); + .{{spritesheet_info.strings.name}}-#{$sprite-name}-sprites { + @include {{spritesheet_info.strings.name}}-sprite($key); + } + } +} +{{/if}} +{{/block}} diff --git a/admin/src/App.vue b/admin/src/App.vue new file mode 100644 index 0000000..7e65a2b --- /dev/null +++ b/admin/src/App.vue @@ -0,0 +1,77 @@ + + + diff --git a/admin/src/api/index.ts b/admin/src/api/index.ts new file mode 100644 index 0000000..3e09438 --- /dev/null +++ b/admin/src/api/index.ts @@ -0,0 +1,84 @@ +import axios from 'axios' + +// import qs from 'qs' +import { ElMessage } from 'element-plus' +import router from '@/router/index' +import useUserStore from '@/store/modules/user' + +function toLogin() { + useUserStore().logout().then(() => { + router.push({ + path: '/login', + query: { + redirect: router.currentRoute.value.path !== '/login' ? router.currentRoute.value.fullPath : undefined, + }, + }) + }) +} + +const api = axios.create({ + baseURL: (import.meta.env.DEV && import.meta.env.VITE_OPEN_PROXY === 'true') ? '/proxy/' : import.meta.env.VITE_APP_API_BASEURL, + timeout: 1000 * 60, + responseType: 'json', +}) + +api.interceptors.request.use( + (request) => { + const userStore = useUserStore() + /** + * 全局拦截请求发送前提交的参数 + * 以下代码为示例,在请求头里带上 token 信息 + */ + if (userStore.isLogin && request.headers) { + request.headers.Authorization = userStore.token ? `Bearer ${userStore.token}` : '' + } + // 是否将 POST 请求参数进行字符串化处理 + if (request.method === 'post') { + // request.data = qs.stringify(request.data, { + // arrayFormat: 'brackets', + // }) + } + return request + }, +) + +api.interceptors.response.use( + (response) => { + /** + * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示 + * 假设返回数据格式为:{ status: 1, error: '', data: '' } + * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录 + * 请求出错时 error 会返回错误信息 + */ + return Promise.resolve(response.data) + }, + (error) => { + let msg = '' + if (error?.response) { + const { data, status } = error.response + if (status === 401) { + msg = '权限验证失败,请重新登录' + // loginout + if(data.code === 401 && data.message.includes('请登录后继续操作')){ + const userStore = useUserStore() + userStore.logout().then(() => { + router.push({ name: 'login' }) + }) + } + } + const { message, code } = data + message && (msg = message) + } + else { + msg = '接口请求异常,请稍后再试' + } + + ElMessage({ + message: msg, + type: 'error', + }) + return Promise.reject(error) + }, +) + +export default api diff --git a/admin/src/api/modules/app.ts b/admin/src/api/modules/app.ts new file mode 100644 index 0000000..9fc7db8 --- /dev/null +++ b/admin/src/api/modules/app.ts @@ -0,0 +1,14 @@ +import api from '../index' + +export default { + queryCats: params => api.get('app/queryAppCats', { params }), + deleteCats: (data: { id: number }) => api.post('app/delAppCats', data), + createCats: data => api.post('app/createAppCats', data), + updateCats: data => api.post('app/updateAppCats', data), + queryApp: params => api.get('app/queryApp', { params }), + deleteApp: (data: { id: number }) => api.post('app/delApp', data), + createApp: data => api.post('app/createApp', data), + updateApp: data => api.post('app/updateApp', data), + auditPassApp: (data: { id: number }) => api.post('app/auditPass', data), + auditFailApp: (data: { id: number }) => api.post('app/auditFail', data), +} diff --git a/admin/src/api/modules/autoReply.ts b/admin/src/api/modules/autoReply.ts new file mode 100644 index 0000000..a655542 --- /dev/null +++ b/admin/src/api/modules/autoReply.ts @@ -0,0 +1,21 @@ +import api from '../index' + +export default { + queryAutoReply: (params: { + page?: number + size?: number + prompt?: string + status?: number + }) => api.get('autoreply/query', { params }), + delAutoReply: (data: { id: number }) => api.post('autoreply/del', data), + addAutoReply: (data: { + prompt: string + answer: string + }) => api.post('autoreply/add', data), + updateAutoReply: (data: { + id: number + prompt: string + answer: string + status: number + }) => api.post('autoreply/update', data), +} diff --git a/admin/src/api/modules/badWords.ts b/admin/src/api/modules/badWords.ts new file mode 100644 index 0000000..39c45cb --- /dev/null +++ b/admin/src/api/modules/badWords.ts @@ -0,0 +1,13 @@ +import api from '../index' + +export default { + queryBadWords: (params = {}) => api.get('badwords/query', { params }), + queryViolation: (params = {}) => api.get('badwords/violation', { params }), + delBadWords: (data: { id: number }) => api.post('badwords/del', data), + addBadWords: (data: { word: string }) => api.post('badwords/add', data), + updateBadWords: (data: { + id: number + word: string + status: number + }) => api.post('badwords/update', data), +} diff --git a/admin/src/api/modules/chat.ts b/admin/src/api/modules/chat.ts new file mode 100644 index 0000000..624a87a --- /dev/null +++ b/admin/src/api/modules/chat.ts @@ -0,0 +1,10 @@ +import api from '../index' + +export default { + queryChatAll: params => api.get('chatLog/chatAll', { params }), + queryDrawAll: params => api.get('chatLog/drawAll', { params }), + recDrawImg: (data: { id: number }) => api.post('chatLog/recDrawImg', data), + queryMjDrawAll: params => api.get('midjourney/getList', { params }), + recMjDrawImg: (data: { id: number }) => api.post('midjourney/rec', data), + delChatLog: (data: { id: number }) => api.post('midjourney/del', data), +} diff --git a/admin/src/api/modules/chatgpt.ts b/admin/src/api/modules/chatgpt.ts new file mode 100644 index 0000000..5760734 --- /dev/null +++ b/admin/src/api/modules/chatgpt.ts @@ -0,0 +1,26 @@ +import api from '../index' + +export default { + queryKeyList: params => api.get('chatgpt/keyList', { params }), + queryKeyModelList: params => api.get('chatgpt/keyModelList', { params }), + queryKeyDetail: params => api.get('chatgpt/keyDetail', { params }), + addGptKey: (data: any) => api.post('chatgpt/addKey', data), + updateGptKey: (data: any) => api.post('chatgpt/updateKey', data), + addWhiteUser: (data: any) => api.post('chatgpt/addWhiteUser', data), + updateWhiteUser: (data: any) => api.post('chatgpt/updateWhiteUser', data), + queryWhiteUserList: params => api.get('chatgpt/userWhiteList', { params }), + deleteGptKey: (data: any) => api.post('chatgpt/deleteKey', data), + queryChatBoxTypes: () => api.get('chatgpt/queryChatBoxTypes'), + setChatBoxType: data => api.post('chatgpt/setChatBoxType', data), + delChatBoxType: data => api.post('chatgpt/delChatBoxType', data), + queryChatBoxs: () => api.get('chatgpt/queryChatBoxs'), + setChatBox: data => api.post('chatgpt/setChatBox', data), + delChatBox: data => api.post('chatgpt/delChatBox', data), + + queryChatPreTypes: () => api.get('chatgpt/queryChatPreTypes'), + setChatPreType: data => api.post('chatgpt/setChatPreType', data), + delChatPreType: data => api.post('chatgpt/delChatPreType', data), + queryChatPres: () => api.get('chatgpt/queryChatPres'), + setChatPre: data => api.post('chatgpt/setChatPre', data), + delChatPre: data => api.post('chatgpt/delChatPre', data), +} diff --git a/admin/src/api/modules/config.ts b/admin/src/api/modules/config.ts new file mode 100644 index 0000000..ce24272 --- /dev/null +++ b/admin/src/api/modules/config.ts @@ -0,0 +1,15 @@ +import api from '../index' + +interface KeyValue { + configKey: string + configVal: any +} + +export default { + queryAllConfig: () => api.get('config/queryAll'), + queryGptKeys: () => api.get('config/queryGptKeys'), + setGptKeys: data => api.post('config/setGptKeys', data), + queryConfig: data => api.post('config/query', data), + copyright: () => api.get('config/copyright'), + setConfig: (data: { settings: KeyValue[] }) => api.post('config/set', data), +} diff --git a/admin/src/api/modules/dashboard.ts b/admin/src/api/modules/dashboard.ts new file mode 100644 index 0000000..7722dc3 --- /dev/null +++ b/admin/src/api/modules/dashboard.ts @@ -0,0 +1,7 @@ +import api from '../index' + +export default { + getBaseInfo: params => api.get('/statistic/base', { params }), + getChatStatistic: params => api.get('/statistic/chatStatistic', { params }), + getBaiduVisit: params => api.get('/statistic/baiduVisit', { params }), +} diff --git a/admin/src/api/modules/menu.ts b/admin/src/api/modules/menu.ts new file mode 100644 index 0000000..7a6ca87 --- /dev/null +++ b/admin/src/api/modules/menu.ts @@ -0,0 +1,12 @@ +import api from '../index' + +export default { + quertMenu: params => api.get('menu/query', { params }), + visibleMenu: (data: { id: number }) => api.post('menu/visible', data), + setMenu: (data: any) => api.post('menu/setMenu', data), + delMenu: (data: any) => api.post('menu/delete', data), + updateIcon: (data: any) => api.post('menu/updateIcon', data), + // queryMjDrawAll: params => api.get('midjourney/getList', { params }), + // recMjDrawImg: (data: { id: number }) => api.post('midjourney/rec', data), + // delChatLog: (data: { id: number }) => api.post('midjourney/del', data), +} diff --git a/admin/src/api/modules/mj.ts b/admin/src/api/modules/mj.ts new file mode 100644 index 0000000..7809749 --- /dev/null +++ b/admin/src/api/modules/mj.ts @@ -0,0 +1,12 @@ +import api from '../index' + +export default { + queryAdminDrawList: params => api.get('midjourney/adminDrawList', { params }), + salesAuditOrder: data => api.post('sales/auditOrder', data), + updateSalesUser: data => api.post('sales/updateUserSales', data), + queryRecords: params => api.get('sales/inviteRecords', { params }), + querySalesUserList: params => api.get('sales/salesUserList', { params }), + queryPrompts: () => api.get('midjourney/queryPrompts'), + setPrompt: data => api.post('midjourney/setPrompt', data), + delPrompt: data => api.post('midjourney/delPrompt', data), +} diff --git a/admin/src/api/modules/models.ts b/admin/src/api/modules/models.ts new file mode 100644 index 0000000..2471e17 --- /dev/null +++ b/admin/src/api/modules/models.ts @@ -0,0 +1,13 @@ +import api from '../index' + +export default { + queryModels: (params: any) => api.get('models/query', { params }), + setModels: (data: any) => api.post('models/setModel', data), + delModels: (data: any) => api.post('models/delModel', data), + // setMenu: (data: any) => api.post('menu/setMenu', data), + // delMenu: (data: any) => api.post('menu/delete', data), + // updateIcon: (data: any) => api.post('menu/updateIcon', data), + // queryMjDrawAll: params => api.get('midjourney/getList', { params }), + // recMjDrawImg: (data: { id: number }) => api.post('midjourney/rec', data), + // delChatLog: (data: { id: number }) => api.post('midjourney/del', data), +} diff --git a/admin/src/api/modules/order.ts b/admin/src/api/modules/order.ts new file mode 100644 index 0000000..6c2a2e2 --- /dev/null +++ b/admin/src/api/modules/order.ts @@ -0,0 +1,7 @@ +import api from '../index' + +export default { + queryAllOrder: params => api.get('order/queryAll', { params }), + deleteOrder: data => api.post('order/delete', data), + deleteNotPay: () => api.post('order/deleteNotPay'), +} diff --git a/admin/src/api/modules/package.ts b/admin/src/api/modules/package.ts new file mode 100644 index 0000000..cf0713e --- /dev/null +++ b/admin/src/api/modules/package.ts @@ -0,0 +1,12 @@ +import api from '../index' + +export default { + queryAllPackage: params => api.get('crami/queryAllPackage', { params }), + updatePackage: data => api.post('crami/updatePackage', data), + createPackage: data => api.post('crami/createPackage', data), + delPackage: data => api.post('crami/delPackage', data), + queryAllCrami: params => api.get('crami/queryAllCrami', { params }), + delCrami: data => api.post('crami/delCrami', data), + createCrami: data => api.post('crami/createCrami', data), + batchDelCrami: data => api.post('crami/batchDelCrami', data), +} diff --git a/admin/src/api/modules/sales.ts b/admin/src/api/modules/sales.ts new file mode 100644 index 0000000..031bb96 --- /dev/null +++ b/admin/src/api/modules/sales.ts @@ -0,0 +1,9 @@ +import api from '../index' + +export default { + querySalesOrder: params => api.get('sales/salesOrder', { params }), + salesAuditOrder: data => api.post('sales/auditOrder', data), + updateSalesUser: data => api.post('sales/updateUserSales', data), + queryRecords: params => api.get('sales/inviteRecords', { params }), + querySalesUserList: params => api.get('sales/salesUserList', { params }), +} diff --git a/admin/src/api/modules/user.ts b/admin/src/api/modules/user.ts new file mode 100644 index 0000000..465d5ff --- /dev/null +++ b/admin/src/api/modules/user.ts @@ -0,0 +1,32 @@ +import api from '../index' + +export default { + login: (data: { + username: string + password: string + }) => api.post('auth/login', data), + + permission: () => api.get('auth/getInfo'), + + getInfo: () => api.get('auth/getInfo'), + + queryAllUser: params => api.get('user/queryAll', { params }), + + updateUserStatus: (data: { + status: string + }) => api.post('user/updateStatus', data), + + resetUserPassword: (data: { id: number }) => api.post('user/resetUserPass', data), + + sendUserCrami: (data: { + userId: number + usesLeft: number + paintCount: number + balance: number + }) => api.post('user/recharge', data), + + updatePassword: (data: { + oldPassword: string + password: string + }) => api.post('auth/updatePassword', data), +} diff --git a/admin/src/api/modules/userBalance.ts b/admin/src/api/modules/userBalance.ts new file mode 100644 index 0000000..aeed38a --- /dev/null +++ b/admin/src/api/modules/userBalance.ts @@ -0,0 +1,6 @@ +import api from '../index' + +export default { + upgradeBalance: data => api.post('balance/upgradeBalance', data), + queryUserAccountLog: params => api.get('balance/accountLog', { params }), +} diff --git a/admin/src/assets/icons/403.svg b/admin/src/assets/icons/403.svg new file mode 100644 index 0000000..0660eff --- /dev/null +++ b/admin/src/assets/icons/403.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/404.svg b/admin/src/assets/icons/404.svg new file mode 100644 index 0000000..7759c6d --- /dev/null +++ b/admin/src/assets/icons/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/draw.svg b/admin/src/assets/icons/draw.svg new file mode 100644 index 0000000..93155a8 --- /dev/null +++ b/admin/src/assets/icons/draw.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/fullscreen-exit.svg b/admin/src/assets/icons/fullscreen-exit.svg new file mode 100644 index 0000000..0da0a88 --- /dev/null +++ b/admin/src/assets/icons/fullscreen-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/fullscreen.svg b/admin/src/assets/icons/fullscreen.svg new file mode 100644 index 0000000..15ebd25 --- /dev/null +++ b/admin/src/assets/icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/image-load-fail.svg b/admin/src/assets/icons/image-load-fail.svg new file mode 100644 index 0000000..89ae0fe --- /dev/null +++ b/admin/src/assets/icons/image-load-fail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/menu-account.svg b/admin/src/assets/icons/menu-account.svg new file mode 100644 index 0000000..87ba37a --- /dev/null +++ b/admin/src/assets/icons/menu-account.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-alioss.svg b/admin/src/assets/icons/menu-alioss.svg new file mode 100644 index 0000000..bc9310c --- /dev/null +++ b/admin/src/assets/icons/menu-alioss.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-baidufanyi.svg b/admin/src/assets/icons/menu-baidufanyi.svg new file mode 100644 index 0000000..495c825 --- /dev/null +++ b/admin/src/assets/icons/menu-baidufanyi.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-baidutongji.svg b/admin/src/assets/icons/menu-baidutongji.svg new file mode 100644 index 0000000..34c14d7 --- /dev/null +++ b/admin/src/assets/icons/menu-baidutongji.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-baiduyunminganci.svg b/admin/src/assets/icons/menu-baiduyunminganci.svg new file mode 100644 index 0000000..c02e336 --- /dev/null +++ b/admin/src/assets/icons/menu-baiduyunminganci.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-baseconfig.svg b/admin/src/assets/icons/menu-baseconfig.svg new file mode 100644 index 0000000..6d77f4b --- /dev/null +++ b/admin/src/assets/icons/menu-baseconfig.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-book.svg b/admin/src/assets/icons/menu-book.svg new file mode 100644 index 0000000..800e1c5 --- /dev/null +++ b/admin/src/assets/icons/menu-book.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-chat.svg b/admin/src/assets/icons/menu-chat.svg new file mode 100644 index 0000000..a360522 --- /dev/null +++ b/admin/src/assets/icons/menu-chat.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-chevereto.svg b/admin/src/assets/icons/menu-chevereto.svg new file mode 100644 index 0000000..688c7d8 --- /dev/null +++ b/admin/src/assets/icons/menu-chevereto.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-commission.svg b/admin/src/assets/icons/menu-commission.svg new file mode 100644 index 0000000..ee4e28f --- /dev/null +++ b/admin/src/assets/icons/menu-commission.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-copyright.svg b/admin/src/assets/icons/menu-copyright.svg new file mode 100644 index 0000000..5164a8e --- /dev/null +++ b/admin/src/assets/icons/menu-copyright.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-crami.svg b/admin/src/assets/icons/menu-crami.svg new file mode 100644 index 0000000..f2c1b10 --- /dev/null +++ b/admin/src/assets/icons/menu-crami.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-distribution.svg b/admin/src/assets/icons/menu-distribution.svg new file mode 100644 index 0000000..35b70d5 --- /dev/null +++ b/admin/src/assets/icons/menu-distribution.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-draw.svg b/admin/src/assets/icons/menu-draw.svg new file mode 100644 index 0000000..11cbd05 --- /dev/null +++ b/admin/src/assets/icons/menu-draw.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-email.svg b/admin/src/assets/icons/menu-email.svg new file mode 100644 index 0000000..0417a27 --- /dev/null +++ b/admin/src/assets/icons/menu-email.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-header.svg b/admin/src/assets/icons/menu-header.svg new file mode 100644 index 0000000..995bb26 --- /dev/null +++ b/admin/src/assets/icons/menu-header.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-history.svg b/admin/src/assets/icons/menu-history.svg new file mode 100644 index 0000000..80fad8d --- /dev/null +++ b/admin/src/assets/icons/menu-history.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-huifuyushe.svg b/admin/src/assets/icons/menu-huifuyushe.svg new file mode 100644 index 0000000..e5b47be --- /dev/null +++ b/admin/src/assets/icons/menu-huifuyushe.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-hupipay.svg b/admin/src/assets/icons/menu-hupipay.svg new file mode 100644 index 0000000..cc67cdf --- /dev/null +++ b/admin/src/assets/icons/menu-hupipay.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-key.svg b/admin/src/assets/icons/menu-key.svg new file mode 100644 index 0000000..7578a87 --- /dev/null +++ b/admin/src/assets/icons/menu-key.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-list.svg b/admin/src/assets/icons/menu-list.svg new file mode 100644 index 0000000..051faf6 --- /dev/null +++ b/admin/src/assets/icons/menu-list.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-logo.svg b/admin/src/assets/icons/menu-logo.svg new file mode 100644 index 0000000..bdfb246 --- /dev/null +++ b/admin/src/assets/icons/menu-logo.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-mapay.svg b/admin/src/assets/icons/menu-mapay.svg new file mode 100644 index 0000000..ac98c4b --- /dev/null +++ b/admin/src/assets/icons/menu-mapay.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-menu.svg b/admin/src/assets/icons/menu-menu.svg new file mode 100644 index 0000000..297c3ee --- /dev/null +++ b/admin/src/assets/icons/menu-menu.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-message.svg b/admin/src/assets/icons/menu-message.svg new file mode 100644 index 0000000..10169fb --- /dev/null +++ b/admin/src/assets/icons/menu-message.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-midjourney.svg b/admin/src/assets/icons/menu-midjourney.svg new file mode 100644 index 0000000..c67eefb --- /dev/null +++ b/admin/src/assets/icons/menu-midjourney.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-mind.svg b/admin/src/assets/icons/menu-mind.svg new file mode 100644 index 0000000..2b6e4d9 --- /dev/null +++ b/admin/src/assets/icons/menu-mind.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-minganci.svg b/admin/src/assets/icons/menu-minganci.svg new file mode 100644 index 0000000..fc06712 --- /dev/null +++ b/admin/src/assets/icons/menu-minganci.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-model.svg b/admin/src/assets/icons/menu-model.svg new file mode 100644 index 0000000..da17fa9 --- /dev/null +++ b/admin/src/assets/icons/menu-model.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-notice.svg b/admin/src/assets/icons/menu-notice.svg new file mode 100644 index 0000000..342debf --- /dev/null +++ b/admin/src/assets/icons/menu-notice.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-order.svg b/admin/src/assets/icons/menu-order.svg new file mode 100644 index 0000000..7f88871 --- /dev/null +++ b/admin/src/assets/icons/menu-order.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-package.svg b/admin/src/assets/icons/menu-package.svg new file mode 100644 index 0000000..90665a7 --- /dev/null +++ b/admin/src/assets/icons/menu-package.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-params.svg b/admin/src/assets/icons/menu-params.svg new file mode 100644 index 0000000..ac2a68a --- /dev/null +++ b/admin/src/assets/icons/menu-params.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-preset.svg b/admin/src/assets/icons/menu-preset.svg new file mode 100644 index 0000000..ffaa5a5 --- /dev/null +++ b/admin/src/assets/icons/menu-preset.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-prompt.svg b/admin/src/assets/icons/menu-prompt.svg new file mode 100644 index 0000000..920d963 --- /dev/null +++ b/admin/src/assets/icons/menu-prompt.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-proxy.svg b/admin/src/assets/icons/menu-proxy.svg new file mode 100644 index 0000000..a8e1ce0 --- /dev/null +++ b/admin/src/assets/icons/menu-proxy.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-qianyizhushou.svg b/admin/src/assets/icons/menu-qianyizhushou.svg new file mode 100644 index 0000000..42cd5c6 --- /dev/null +++ b/admin/src/assets/icons/menu-qianyizhushou.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-records.svg b/admin/src/assets/icons/menu-records.svg new file mode 100644 index 0000000..f2fc2a3 --- /dev/null +++ b/admin/src/assets/icons/menu-records.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-register.svg b/admin/src/assets/icons/menu-register.svg new file mode 100644 index 0000000..2c0d2d2 --- /dev/null +++ b/admin/src/assets/icons/menu-register.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-signIn.svg b/admin/src/assets/icons/menu-signIn.svg new file mode 100644 index 0000000..e0e56c6 --- /dev/null +++ b/admin/src/assets/icons/menu-signIn.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-tengxuncos.svg b/admin/src/assets/icons/menu-tengxuncos.svg new file mode 100644 index 0000000..004986f --- /dev/null +++ b/admin/src/assets/icons/menu-tengxuncos.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-tiixan.svg b/admin/src/assets/icons/menu-tiixan.svg new file mode 100644 index 0000000..0d00b7c --- /dev/null +++ b/admin/src/assets/icons/menu-tiixan.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-tips.svg b/admin/src/assets/icons/menu-tips.svg new file mode 100644 index 0000000..4fd894b --- /dev/null +++ b/admin/src/assets/icons/menu-tips.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-type.svg b/admin/src/assets/icons/menu-type.svg new file mode 100644 index 0000000..87739a0 --- /dev/null +++ b/admin/src/assets/icons/menu-type.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-userlist.svg b/admin/src/assets/icons/menu-userlist.svg new file mode 100644 index 0000000..9ad1f95 --- /dev/null +++ b/admin/src/assets/icons/menu-userlist.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-visible.svg b/admin/src/assets/icons/menu-visible.svg new file mode 100644 index 0000000..2d0f2f5 --- /dev/null +++ b/admin/src/assets/icons/menu-visible.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-visitor.svg b/admin/src/assets/icons/menu-visitor.svg new file mode 100644 index 0000000..c1401ce --- /dev/null +++ b/admin/src/assets/icons/menu-visitor.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-vx.svg b/admin/src/assets/icons/menu-vx.svg new file mode 100644 index 0000000..77d053a --- /dev/null +++ b/admin/src/assets/icons/menu-vx.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-weigui.svg b/admin/src/assets/icons/menu-weigui.svg new file mode 100644 index 0000000..ad74644 --- /dev/null +++ b/admin/src/assets/icons/menu-weigui.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-weixinpay.svg b/admin/src/assets/icons/menu-weixinpay.svg new file mode 100644 index 0000000..b3311d0 --- /dev/null +++ b/admin/src/assets/icons/menu-weixinpay.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-yipay.svg b/admin/src/assets/icons/menu-yipay.svg new file mode 100644 index 0000000..bb8e5d8 --- /dev/null +++ b/admin/src/assets/icons/menu-yipay.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/menu-zidingyi.svg b/admin/src/assets/icons/menu-zidingyi.svg new file mode 100644 index 0000000..308ff83 --- /dev/null +++ b/admin/src/assets/icons/menu-zidingyi.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/search-down.svg b/admin/src/assets/icons/search-down.svg new file mode 100644 index 0000000..3ccac20 --- /dev/null +++ b/admin/src/assets/icons/search-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/search-enter.svg b/admin/src/assets/icons/search-enter.svg new file mode 100644 index 0000000..1b9e666 --- /dev/null +++ b/admin/src/assets/icons/search-enter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/search-up.svg b/admin/src/assets/icons/search-up.svg new file mode 100644 index 0000000..45454da --- /dev/null +++ b/admin/src/assets/icons/search-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/sidebar-ai.svg b/admin/src/assets/icons/sidebar-ai.svg new file mode 100644 index 0000000..a15aa2b --- /dev/null +++ b/admin/src/assets/icons/sidebar-ai.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-app.svg b/admin/src/assets/icons/sidebar-app.svg new file mode 100644 index 0000000..cb3f0d1 --- /dev/null +++ b/admin/src/assets/icons/sidebar-app.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-breadcrumb.svg b/admin/src/assets/icons/sidebar-breadcrumb.svg new file mode 100644 index 0000000..b44f1b1 --- /dev/null +++ b/admin/src/assets/icons/sidebar-breadcrumb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/sidebar-chat.svg b/admin/src/assets/icons/sidebar-chat.svg new file mode 100644 index 0000000..f1c95f5 --- /dev/null +++ b/admin/src/assets/icons/sidebar-chat.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-client.svg b/admin/src/assets/icons/sidebar-client.svg new file mode 100644 index 0000000..c4ccfc3 --- /dev/null +++ b/admin/src/assets/icons/sidebar-client.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-default.svg b/admin/src/assets/icons/sidebar-default.svg new file mode 100644 index 0000000..67d7848 --- /dev/null +++ b/admin/src/assets/icons/sidebar-default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/sidebar-keys.svg b/admin/src/assets/icons/sidebar-keys.svg new file mode 100644 index 0000000..3ebd9be --- /dev/null +++ b/admin/src/assets/icons/sidebar-keys.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-menu.svg b/admin/src/assets/icons/sidebar-menu.svg new file mode 100644 index 0000000..40afaf2 --- /dev/null +++ b/admin/src/assets/icons/sidebar-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/icons/sidebar-mj.svg b/admin/src/assets/icons/sidebar-mj.svg new file mode 100644 index 0000000..1f6cef3 --- /dev/null +++ b/admin/src/assets/icons/sidebar-mj.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-order.svg b/admin/src/assets/icons/sidebar-order.svg new file mode 100644 index 0000000..0b22c8d --- /dev/null +++ b/admin/src/assets/icons/sidebar-order.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-package.svg b/admin/src/assets/icons/sidebar-package.svg new file mode 100644 index 0000000..68e7628 --- /dev/null +++ b/admin/src/assets/icons/sidebar-package.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-pay.svg b/admin/src/assets/icons/sidebar-pay.svg new file mode 100644 index 0000000..8f67ac0 --- /dev/null +++ b/admin/src/assets/icons/sidebar-pay.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-register.svg b/admin/src/assets/icons/sidebar-register.svg new file mode 100644 index 0000000..66af4c6 --- /dev/null +++ b/admin/src/assets/icons/sidebar-register.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-repply.svg b/admin/src/assets/icons/sidebar-repply.svg new file mode 100644 index 0000000..050436a --- /dev/null +++ b/admin/src/assets/icons/sidebar-repply.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-secure.svg b/admin/src/assets/icons/sidebar-secure.svg new file mode 100644 index 0000000..975c570 --- /dev/null +++ b/admin/src/assets/icons/sidebar-secure.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-sensitive.svg b/admin/src/assets/icons/sidebar-sensitive.svg new file mode 100644 index 0000000..238f1c3 --- /dev/null +++ b/admin/src/assets/icons/sidebar-sensitive.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-share.svg b/admin/src/assets/icons/sidebar-share.svg new file mode 100644 index 0000000..0cc4b1c --- /dev/null +++ b/admin/src/assets/icons/sidebar-share.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-storage.svg b/admin/src/assets/icons/sidebar-storage.svg new file mode 100644 index 0000000..15f6d8a --- /dev/null +++ b/admin/src/assets/icons/sidebar-storage.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-system.svg b/admin/src/assets/icons/sidebar-system.svg new file mode 100644 index 0000000..ba07a14 --- /dev/null +++ b/admin/src/assets/icons/sidebar-system.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/sidebar-user.svg b/admin/src/assets/icons/sidebar-user.svg new file mode 100644 index 0000000..2ba6c1f --- /dev/null +++ b/admin/src/assets/icons/sidebar-user.svg @@ -0,0 +1 @@ + diff --git a/admin/src/assets/icons/toolbar-collapse.svg b/admin/src/assets/icons/toolbar-collapse.svg new file mode 100644 index 0000000..149dfe8 --- /dev/null +++ b/admin/src/assets/icons/toolbar-collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/src/assets/images/bg.jpg b/admin/src/assets/images/bg.jpg new file mode 100644 index 0000000..f64e254 Binary files /dev/null and b/admin/src/assets/images/bg.jpg differ diff --git a/admin/src/assets/images/login-banner.png b/admin/src/assets/images/login-banner.png new file mode 100644 index 0000000..69bcf66 Binary files /dev/null and b/admin/src/assets/images/login-banner.png differ diff --git a/admin/src/assets/images/logo.png b/admin/src/assets/images/logo.png new file mode 100644 index 0000000..aa04928 Binary files /dev/null and b/admin/src/assets/images/logo.png differ diff --git a/admin/src/assets/sprites/.gitkeep b/admin/src/assets/sprites/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/admin/src/assets/styles/custom.css b/admin/src/assets/styles/custom.css new file mode 100644 index 0000000..c796563 --- /dev/null +++ b/admin/src/assets/styles/custom.css @@ -0,0 +1,169 @@ +.flex { + display: flex; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-between { + justify-content: space-between; +} + +.justify-around { + justify-content: space-around; +} + +.justify-center { + justify-content: center; +} + +.align-start { + align-items: flex-start; +} + +.align-end { + align-items: flex-end; +} + +.align-center { + align-items: center; +} + +.flex-column { + flex-direction: column; +} + +.flex-row { + flex-direction: row; +} + +.ml-1 { + margin-left: 0.25rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.ml-4 { + margin-left: 1rem; +} + +.ml-5 { + margin-left: 1.25rem; +} + +.mr-1 { + margin-right: 0.25rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mr-4 { + margin-right: 1rem; +} + +.mr-5 { + margin-right: 1.25rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mb-5 { + margin-bottom: 1.25rem; +} + +.font-bold { + font-weight: bold; +} + +.font-1 { + font-size: 1rem; +} + +.font-2 { + font-size: 1.25rem; +} + +.font-3 { + font-size: 1.5rem; +} + +.font-4 { + font-size: 1.75rem; +} + +.font-5 { + font-size: 2rem; +} + +.font-6 { + font-size: 2.25rem; +} + +.font-7 { + font-size: 2.5rem; +} + +.font-8 { + font-size: 2.75rem; +} + +.font-9 { + font-size: 3rem; +} + +.font-10 { + font-size: 3.25rem; +} + + diff --git a/admin/src/assets/styles/element-plus/dark.scss b/admin/src/assets/styles/element-plus/dark.scss new file mode 100644 index 0000000..c3bb9e1 --- /dev/null +++ b/admin/src/assets/styles/element-plus/dark.scss @@ -0,0 +1,9 @@ +// 暗黑模式 +@forward "element-plus/theme-chalk/src/dark/var.scss" with ( + $bg-color: ( + "page": #0a0a0a, + "": #141414, + "overlay": #1d1e1f, + ) +); +@use "element-plus/theme-chalk/src/dark/css-vars.scss" as *; diff --git a/admin/src/assets/styles/element-plus/index.scss b/admin/src/assets/styles/element-plus/index.scss new file mode 100644 index 0000000..ec7e379 --- /dev/null +++ b/admin/src/assets/styles/element-plus/index.scss @@ -0,0 +1,9 @@ +// @forward "element-plus/theme-chalk/src/common/var.scss" with ( +// $colors: ( +// "primary": ( +// "base": green +// ) +// ) +// ); +@use "element-plus/theme-chalk/src/index.scss" as *; +@use "./dark.scss"; diff --git a/admin/src/assets/styles/globals.scss b/admin/src/assets/styles/globals.scss new file mode 100644 index 0000000..c40443c --- /dev/null +++ b/admin/src/assets/styles/globals.scss @@ -0,0 +1,181 @@ +@use "./themes.scss"; +@use "./element-plus/index.scss"; +@use "./custom.css"; + +// 全局变量 +:root { + // 头部宽度(默认自适应宽度,可固定宽度,固定宽度后为居中显示) + --g-header-width: 100%; + // 头部高度 + --g-header-height: 70px; + // 侧边栏宽度 + --g-main-sidebar-width: 70px; + --g-sub-sidebar-width: 220px; + // 侧边栏Logo高度 + --g-sidebar-logo-height: 50px; + // 顶栏高度 + --g-topbar-height: 50px; +} +// 全局样式 +::-webkit-scrollbar { + width: 12px; + height: 12px; +} + +::-webkit-scrollbar-thumb { + background-color: rgb(0 0 0 / 40%); + background-clip: padding-box; + border: 3px solid transparent; + border-radius: 6px; +} + +::-webkit-scrollbar-thumb:hover { + background-color: rgb(0 0 0 / 50%); +} + +::-webkit-scrollbar-track { + background-color: transparent; +} + +html, +body { + height: 100%; +} + +body { + margin: 0; + box-sizing: border-box; + font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif; + -webkit-tap-highlight-color: transparent; + + &.overflow-hidden { + overflow: hidden; + } +} + +* { + box-sizing: inherit; +} +// 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] +[data-fixed-calc-width] { + position: fixed; + left: 50%; + right: 0; + width: calc(100% - var(--g-main-sidebar-actual-width) - var(--g-sub-sidebar-actual-width)); + transform: translateX(-50%) translateX(calc(var(--g-main-sidebar-actual-width) / 2)) translateX(calc(var(--g-sub-sidebar-actual-width) / 2)); +} + +[data-mode="mobile"] { + [data-fixed-calc-width] { + width: 100% !important; + transform: translateX(-50%) !important; + } +} +// textarea 字体跟随系统 +textarea { + font-family: inherit; +} +// 列表页全局样式 +.el-table.list-table { + margin: 20px 0; + + .el-button + .el-dropdown { + margin-left: 10px; + } +} + +.el-loading-mask { + z-index: 900 !important; +} + +.notice { + .banner { + position: relative; + width: 100%; + height: 200px; + background-size: cover; + border-radius: 6px; + background-image: url("https://chevereto.jiangly.com/images/2023/11/12/nine_banner.png"); + } + + .tag { + padding: 3px 10px; + display: flex; + font-size: 14px; + justify-content: center; + align-items: center; + background: #6692f5; + border-radius: 8px; + opacity: 0.8; + color: #fff; + margin-right: 10px; + user-select: none; + } + + .title { + user-select: none; + font-size: 2.5rem; + font-family: "PingFang SC-Bold", "PingFang SC"; + color: #fff; + text-shadow: 0 3px 3px rgb(0 0 0 / 10%); + position: absolute; + left: 50px; + top: 70px; + background-clip: text; + } + + .subtitle { + position: absolute; + left: 50px; + top: 140px; + } + + .info { + font-weight: 400; + color: #fff; + margin-right: 10px; + user-select: none; + } + + .message { + font-size: 20px; + display: flex; + align-items: center; + padding-top: 10px; + padding-bottom: 10px; + } + + .brage { + width: 4px; + height: 18px; + background: #6692f5; + border-radius: 6px; + margin-right: 10px; + } + + .notice-text { + color: #999 !important; + margin-top: 10px; + padding-left: 15px; + font-size: 16px; + } + + .author-info { + color: #999 !important; + margin-top: 10px; + padding-left: 15px; + font-size: 16px; + } + + .red { + color: red; + } + + .notice_block { + // border: 1px solid rgb(156 145 145); + box-shadow: 0 8px 10px 1px rgb(0 0 0 / 16.1%); + border-radius: 6px; + padding: 10px; + margin-top: 25px; + } +} diff --git a/admin/src/assets/styles/nprogress.scss b/admin/src/assets/styles/nprogress.scss new file mode 100644 index 0000000..9947aa6 --- /dev/null +++ b/admin/src/assets/styles/nprogress.scss @@ -0,0 +1,63 @@ +#nprogress { + pointer-events: none; + + .bar { + position: fixed; + z-index: 1031; + top: 0; + left: 0; + width: 100%; + height: 2px; + background: var(--g-nprogress-color); + } + + .peg { + display: block; + position: absolute; + right: 0; + width: 100px; + height: 100%; + opacity: 1; + transform: rotate(3deg) translate(0, -4px); + box-shadow: 0 0 10px var(--g-nprogress-color), 0 0 5px var(--g-nprogress-color); + } + + .spinner { + display: block; + position: fixed; + z-index: 1031; + top: 11px; + right: 14px; + + .spinner-icon { + width: 18px; + height: 18px; + box-sizing: border-box; + border: solid 2px transparent; + border-radius: 50%; + animation: nprogress-spinner 400ms linear infinite; + border-top-color: var(--g-nprogress-color); + border-left-color: var(--g-nprogress-color); + } + } +} + +.nprogress-custom-parent { + overflow: hidden; + position: relative; + + #nprogress .spinner, + #nprogress .bar { + position: absolute; + } +} + +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +@keyframes nprogress-spinner { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} diff --git a/admin/src/assets/styles/resources/utils.scss b/admin/src/assets/styles/resources/utils.scss new file mode 100644 index 0000000..270747c --- /dev/null +++ b/admin/src/assets/styles/resources/utils.scss @@ -0,0 +1,53 @@ +// 文字超出隐藏,默认为单行超出隐藏,可设置多行 +@mixin text-overflow($line: 1, $fixed-width: true) { + @if $line == 1 and $fixed-width == true { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } @else { + /* stylelint-disable-next-line value-no-vendor-prefix */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: $line; + overflow: hidden; + } +} + +// 定位居中,默认水平居中,可选择垂直居中,或者水平垂直都居中 +@mixin position-center($type: x) { + position: absolute; + + @if $type == x { + left: 50%; + transform: translateX(-50%); + } + + @if $type == y { + top: 50%; + transform: translateY(-50%); + } + + @if $type == xy { + left: 50%; + top: 50%; + transform: translateX(-50%) translateY(-50%); + } +} + +// 文字两端对齐 +%justify-align { + text-align: justify; + text-align-last: justify; +} + +// 清除浮动 +%clearfix { + zoom: 1; + + &::before, + &::after { + content: ""; + display: block; + clear: both; + } +} diff --git a/admin/src/assets/styles/resources/variables.scss b/admin/src/assets/styles/resources/variables.scss new file mode 100644 index 0000000..d314af3 --- /dev/null +++ b/admin/src/assets/styles/resources/variables.scss @@ -0,0 +1 @@ +// 全局变量 diff --git a/admin/src/assets/styles/tailwind.css b/admin/src/assets/styles/tailwind.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/admin/src/assets/styles/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/admin/src/assets/styles/themes.scss b/admin/src/assets/styles/themes.scss new file mode 100644 index 0000000..179e406 --- /dev/null +++ b/admin/src/assets/styles/themes.scss @@ -0,0 +1,124 @@ +:root { + --g-box-shadow-color: rgb(0 0 0 / 12%); + + /* ----- 应用 ----- */ + // 应用背景色 + --g-app-bg: var(--el-bg-color); + // 主区域背景色 + --g-main-bg: var(--el-bg-color-page); + + /* ----- 顶部 ----- */ + // 背景色 + --g-header-bg: #222b45; + // 文字颜色 + --g-header-color: #fff; + // 导航文字颜色 + --g-header-menu-color: #fff; + // 导航鼠标悬浮文字颜色 + --g-header-menu-hover-color: #fff; + // 导航鼠标悬浮背景色 + --g-header-menu-hover-bg: #334067; + // 导航选中文字颜色 + --g-header-menu-active-color: #fff; + // 导航选中背景色 + --g-header-menu-active-bg: #334067; + + /* ----- 主导航 ----- */ + // 背景色 + --g-main-sidebar-bg: #222b45; + // 菜单文字颜色 + --g-main-sidebar-menu-color: #eee; + // 菜单鼠标悬浮文字颜色 + --g-main-sidebar-menu-hover-color: #fff; + // 菜单鼠标悬浮背景色 + --g-main-sidebar-menu-hover-bg: #334067; + // 菜单选中文字颜色 + --g-main-sidebar-menu-active-color: #fff; + // 菜单选中背景色 + --g-main-sidebar-menu-active-bg: #334067; + + /* ----- 次导航 ----- */ + // 背景色 + --g-sub-sidebar-bg: #fff; + // 菜单背景色 + --g-sub-sidebar-menu-bg: #e8e8e8; + // 菜单文字颜色 + --g-sub-sidebar-menu-color: var(--el-text-color-primary); + // 菜单鼠标悬浮文字颜色 + --g-sub-sidebar-menu-hover-color: var(--el-text-color-primary); + // 菜单鼠标悬浮背景色 + --g-sub-sidebar-menu-hover-bg: #e1e1e1; + // 菜单选中文字颜色 + --g-sub-sidebar-menu-active-color: #fff; + // 菜单选中背景色 + --g-sub-sidebar-menu-active-bg: var(--el-color-primary); + + /* ----- 顶栏 ----- */ + --g-toolbar-bg: var(--el-bg-color); + + /* ----- 进度条 ----- */ + --g-nprogress-color: var(--el-color-primary); + + /* ----- 暗黑模式 ----- */ + &.dark { + --g-box-shadow-color: rgb(0 0 0 / 72%); + + /* ----- 应用 ----- */ + // 应用背景色 + --g-app-bg: var(--el-bg-color); + // 主区域背景色 + --g-main-bg: var(--el-bg-color-page); + + /* ----- 顶部 ----- */ + // 背景色 + --g-header-bg: var(--el-bg-color); + // 文字颜色 + --g-header-color: #fff; + // 导航文字颜色 + --g-header-menu-color: #ccc; + // 导航鼠标悬浮文字颜色 + --g-header-menu-hover-color: #fff; + // 导航鼠标悬浮背景色 + --g-header-menu-hover-bg: var(--el-color-primary-light-5); + // 导航选中文字颜色 + --g-header-menu-active-color: #fff; + // 导航选中背景色 + --g-header-menu-active-bg: var(--el-color-primary-light-3); + + /* ----- 主导航 ----- */ + // 背景色 + --g-main-sidebar-bg: var(--el-bg-color); + // 菜单文字颜色 + --g-main-sidebar-menu-color: #ccc; + // 菜单鼠标悬浮文字颜色 + --g-main-sidebar-menu-hover-color: #fff; + // 菜单鼠标悬浮背景色 + --g-main-sidebar-menu-hover-bg: var(--el-color-primary-light-5); + // 菜单选中文字颜色 + --g-main-sidebar-menu-active-color: #fff; + // 菜单选中背景色 + --g-main-sidebar-menu-active-bg: var(--el-color-primary-light-3); + + /* ----- 次导航 ----- */ + // 背景色 + --g-sub-sidebar-bg: var(--el-bg-color-page); + // 菜单背景色 + --g-sub-sidebar-menu-bg: var(--el-bg-color); + // 菜单文字颜色 + --g-sub-sidebar-menu-color: var(--el-text-color-secondary); + // 菜单鼠标悬浮文字颜色 + --g-sub-sidebar-menu-hover-color: var(--el-text-color-primary); + // 菜单鼠标悬浮背景色 + --g-sub-sidebar-menu-hover-bg: var(--el-color-primary-light-5); + // 菜单选中文字颜色 + --g-sub-sidebar-menu-active-color: var(--el-text-color-primary); + // 菜单选中背景色 + --g-sub-sidebar-menu-active-bg: var(--el-color-primary-light-3); + + /* ----- 顶栏 ----- */ + --g-toolbar-bg: var(--el-bg-color); + + /* ----- 进度条 ----- */ + --g-nprogress-color: var(--el-color-primary); + } +} diff --git a/admin/src/components/Auth/index.vue b/admin/src/components/Auth/index.vue new file mode 100644 index 0000000..a43fa74 --- /dev/null +++ b/admin/src/components/Auth/index.vue @@ -0,0 +1,16 @@ + + + diff --git a/admin/src/components/AuthAll/index.vue b/admin/src/components/AuthAll/index.vue new file mode 100644 index 0000000..3c4178c --- /dev/null +++ b/admin/src/components/AuthAll/index.vue @@ -0,0 +1,16 @@ + + + diff --git a/admin/src/components/Copyright/index.vue b/admin/src/components/Copyright/index.vue new file mode 100644 index 0000000..a027fd8 --- /dev/null +++ b/admin/src/components/Copyright/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/admin/src/components/FileUpload/index.vue b/admin/src/components/FileUpload/index.vue new file mode 100644 index 0000000..dee0717 --- /dev/null +++ b/admin/src/components/FileUpload/index.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/admin/src/components/FixedActionBar/index.vue b/admin/src/components/FixedActionBar/index.vue new file mode 100644 index 0000000..86bd7ea --- /dev/null +++ b/admin/src/components/FixedActionBar/index.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/admin/src/components/IconifyIcon/index.vue b/admin/src/components/IconifyIcon/index.vue new file mode 100644 index 0000000..efcdfcd --- /dev/null +++ b/admin/src/components/IconifyIcon/index.vue @@ -0,0 +1,21 @@ + + + diff --git a/admin/src/components/ImagePreview/index.vue b/admin/src/components/ImagePreview/index.vue new file mode 100644 index 0000000..f8f9032 --- /dev/null +++ b/admin/src/components/ImagePreview/index.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/admin/src/components/ImageUpload/index.vue b/admin/src/components/ImageUpload/index.vue new file mode 100644 index 0000000..f6723b7 --- /dev/null +++ b/admin/src/components/ImageUpload/index.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/admin/src/components/ImagesUpload/index.vue b/admin/src/components/ImagesUpload/index.vue new file mode 100644 index 0000000..c2a05b4 --- /dev/null +++ b/admin/src/components/ImagesUpload/index.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/admin/src/components/NotAllowed/index.vue b/admin/src/components/NotAllowed/index.vue new file mode 100644 index 0000000..ed0b521 --- /dev/null +++ b/admin/src/components/NotAllowed/index.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/admin/src/components/PageHeader/index.vue b/admin/src/components/PageHeader/index.vue new file mode 100644 index 0000000..47cf0db --- /dev/null +++ b/admin/src/components/PageHeader/index.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/admin/src/components/PageMain/index.vue b/admin/src/components/PageMain/index.vue new file mode 100644 index 0000000..f325bc1 --- /dev/null +++ b/admin/src/components/PageMain/index.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/admin/src/components/PcasCascader/index.vue b/admin/src/components/PcasCascader/index.vue new file mode 100644 index 0000000..45aaa74 --- /dev/null +++ b/admin/src/components/PcasCascader/index.vue @@ -0,0 +1,140 @@ + + + diff --git a/admin/src/components/PcasCascader/pcas-code.json b/admin/src/components/PcasCascader/pcas-code.json new file mode 100644 index 0000000..bf936a0 --- /dev/null +++ b/admin/src/components/PcasCascader/pcas-code.json @@ -0,0 +1 @@ +[{"code":"11","name":"北京市","children":[{"code":"1101","name":"市辖区","children":[{"code":"110101","name":"东城区","children":[{"code":"110101001","name":"东华门街道"},{"code":"110101002","name":"景山街道"},{"code":"110101003","name":"交道口街道"},{"code":"110101004","name":"安定门街道"},{"code":"110101005","name":"北新桥街道"},{"code":"110101006","name":"东四街道"},{"code":"110101007","name":"朝阳门街道"},{"code":"110101008","name":"建国门街道"},{"code":"110101009","name":"东直门街道"},{"code":"110101010","name":"和平里街道"},{"code":"110101011","name":"前门街道"},{"code":"110101012","name":"崇文门外街道"},{"code":"110101013","name":"东花市街道"},{"code":"110101014","name":"龙潭街道"},{"code":"110101015","name":"体育馆路街道"},{"code":"110101016","name":"天坛街道"},{"code":"110101017","name":"永定门外街道"}]},{"code":"110102","name":"西城区","children":[{"code":"110102001","name":"西长安街街道"},{"code":"110102003","name":"新街口街道"},{"code":"110102007","name":"月坛街道"},{"code":"110102009","name":"展览路街道"},{"code":"110102010","name":"德胜街道"},{"code":"110102011","name":"金融街街道"},{"code":"110102012","name":"什刹海街道"},{"code":"110102013","name":"大栅栏街道"},{"code":"110102014","name":"天桥街道"},{"code":"110102015","name":"椿树街道"},{"code":"110102016","name":"陶然亭街道"},{"code":"110102017","name":"广安门内街道"},{"code":"110102018","name":"牛街街道"},{"code":"110102019","name":"白纸坊街道"},{"code":"110102020","name":"广安门外街道"}]},{"code":"110105","name":"朝阳区","children":[{"code":"110105001","name":"建外街道"},{"code":"110105002","name":"朝外街道"},{"code":"110105003","name":"呼家楼街道"},{"code":"110105004","name":"三里屯街道"},{"code":"110105005","name":"左家庄街道"},{"code":"110105006","name":"香河园街道"},{"code":"110105007","name":"和平街街道"},{"code":"110105008","name":"安贞街道"},{"code":"110105009","name":"亚运村街道"},{"code":"110105010","name":"小关街道"},{"code":"110105011","name":"酒仙桥街道"},{"code":"110105012","name":"麦子店街道"},{"code":"110105013","name":"团结湖街道"},{"code":"110105014","name":"六里屯街道"},{"code":"110105015","name":"八里庄街道"},{"code":"110105016","name":"双井街道"},{"code":"110105017","name":"劲松街道"},{"code":"110105018","name":"潘家园街道"},{"code":"110105019","name":"垡头街道"},{"code":"110105021","name":"南磨房地区"},{"code":"110105022","name":"高碑店地区"},{"code":"110105023","name":"将台地区"},{"code":"110105024","name":"太阳宫地区"},{"code":"110105025","name":"大屯街道"},{"code":"110105026","name":"望京街道"},{"code":"110105027","name":"小红门地区"},{"code":"110105028","name":"十八里店地区"},{"code":"110105029","name":"平房地区"},{"code":"110105030","name":"东风地区"},{"code":"110105031","name":"奥运村街道"},{"code":"110105032","name":"来广营地区"},{"code":"110105033","name":"常营地区"},{"code":"110105034","name":"三间房地区"},{"code":"110105035","name":"管庄地区"},{"code":"110105036","name":"金盏地区"},{"code":"110105037","name":"孙河地区"},{"code":"110105038","name":"崔各庄地区"},{"code":"110105039","name":"东坝地区"},{"code":"110105040","name":"黑庄户地区"},{"code":"110105041","name":"豆各庄地区"},{"code":"110105042","name":"王四营地区"},{"code":"110105043","name":"东湖街道"},{"code":"110105400","name":"首都机场街道"}]},{"code":"110106","name":"丰台区","children":[{"code":"110106001","name":"右安门街道"},{"code":"110106002","name":"太平桥街道"},{"code":"110106003","name":"西罗园街道"},{"code":"110106004","name":"大红门街道"},{"code":"110106005","name":"南苑街道"},{"code":"110106006","name":"东高地街道"},{"code":"110106007","name":"东铁匠营街道"},{"code":"110106008","name":"六里桥街道"},{"code":"110106009","name":"丰台街道"},{"code":"110106010","name":"新村街道"},{"code":"110106011","name":"长辛店街道"},{"code":"110106012","name":"云岗街道"},{"code":"110106013","name":"方庄街道"},{"code":"110106014","name":"宛平街道"},{"code":"110106015","name":"马家堡街道"},{"code":"110106016","name":"和义街道"},{"code":"110106017","name":"卢沟桥街道"},{"code":"110106018","name":"花乡街道"},{"code":"110106020","name":"成寿寺街道"},{"code":"110106021","name":"石榴庄街道"},{"code":"110106022","name":"玉泉营街道"},{"code":"110106023","name":"看丹街道"},{"code":"110106024","name":"五里店街道"},{"code":"110106025","name":"青塔街道"},{"code":"110106100","name":"北宫镇"},{"code":"110106101","name":"王佐镇"}]},{"code":"110107","name":"石景山区","children":[{"code":"110107001","name":"八宝山街道"},{"code":"110107002","name":"老山街道"},{"code":"110107003","name":"八角街道"},{"code":"110107004","name":"古城街道"},{"code":"110107005","name":"苹果园街道"},{"code":"110107006","name":"金顶街街道"},{"code":"110107009","name":"广宁街道"},{"code":"110107010","name":"五里坨街道"},{"code":"110107011","name":"鲁谷街道"}]},{"code":"110108","name":"海淀区","children":[{"code":"110108001","name":"万寿路街道"},{"code":"110108002","name":"永定路街道"},{"code":"110108003","name":"羊坊店街道"},{"code":"110108004","name":"甘家口街道"},{"code":"110108005","name":"八里庄街道"},{"code":"110108006","name":"紫竹院街道"},{"code":"110108007","name":"北下关街道"},{"code":"110108008","name":"北太平庄街道"},{"code":"110108010","name":"学院路街道"},{"code":"110108011","name":"中关村街道"},{"code":"110108012","name":"海淀街道"},{"code":"110108013","name":"青龙桥街道"},{"code":"110108014","name":"清华园街道"},{"code":"110108015","name":"燕园街道"},{"code":"110108016","name":"香山街道"},{"code":"110108017","name":"清河街道"},{"code":"110108018","name":"花园路街道"},{"code":"110108019","name":"西三旗街道"},{"code":"110108020","name":"马连洼街道"},{"code":"110108021","name":"田村路街道"},{"code":"110108022","name":"上地街道"},{"code":"110108023","name":"万柳地区"},{"code":"110108024","name":"东升地区"},{"code":"110108025","name":"曙光街道"},{"code":"110108026","name":"温泉地区"},{"code":"110108027","name":"四季青地区"},{"code":"110108028","name":"西北旺地区"},{"code":"110108029","name":"苏家坨地区"},{"code":"110108030","name":"上庄地区"}]},{"code":"110109","name":"门头沟区","children":[{"code":"110109001","name":"大峪街道"},{"code":"110109002","name":"城子街道"},{"code":"110109003","name":"东辛房街道"},{"code":"110109004","name":"大台街道"},{"code":"110109005","name":"王平地区"},{"code":"110109006","name":"永定地区"},{"code":"110109007","name":"龙泉地区"},{"code":"110109101","name":"潭柘寺镇"},{"code":"110109104","name":"军庄镇"},{"code":"110109105","name":"雁翅镇"},{"code":"110109106","name":"斋堂镇"},{"code":"110109107","name":"清水镇"},{"code":"110109108","name":"妙峰山镇"}]},{"code":"110111","name":"房山区","children":[{"code":"110111001","name":"城关街道"},{"code":"110111002","name":"新镇街道"},{"code":"110111004","name":"向阳街道"},{"code":"110111005","name":"东风街道"},{"code":"110111006","name":"迎风街道"},{"code":"110111007","name":"星城街道"},{"code":"110111008","name":"良乡地区"},{"code":"110111009","name":"周口店地区"},{"code":"110111010","name":"琉璃河地区"},{"code":"110111011","name":"拱辰街道"},{"code":"110111012","name":"西潞街道"},{"code":"110111101","name":"阎村镇"},{"code":"110111103","name":"窦店镇"},{"code":"110111104","name":"石楼镇"},{"code":"110111105","name":"长阳镇"},{"code":"110111107","name":"河北镇"},{"code":"110111108","name":"长沟镇"},{"code":"110111109","name":"大石窝镇"},{"code":"110111110","name":"张坊镇"},{"code":"110111111","name":"十渡镇"},{"code":"110111112","name":"青龙湖镇"},{"code":"110111115","name":"韩村河镇"},{"code":"110111208","name":"霞云岭乡"},{"code":"110111209","name":"南窖乡"},{"code":"110111210","name":"佛子庄乡"},{"code":"110111211","name":"大安山乡"},{"code":"110111212","name":"史家营乡"},{"code":"110111213","name":"蒲洼乡"}]},{"code":"110112","name":"通州区","children":[{"code":"110112001","name":"中仓街道"},{"code":"110112002","name":"新华街道"},{"code":"110112003","name":"北苑街道"},{"code":"110112004","name":"玉桥街道"},{"code":"110112007","name":"潞源街道"},{"code":"110112008","name":"通运街道"},{"code":"110112009","name":"文景街道"},{"code":"110112010","name":"九棵树街道"},{"code":"110112011","name":"临河里街道"},{"code":"110112012","name":"杨庄街道"},{"code":"110112013","name":"潞邑街道"},{"code":"110112104","name":"宋庄镇"},{"code":"110112105","name":"张家湾镇"},{"code":"110112106","name":"漷县镇"},{"code":"110112109","name":"马驹桥镇"},{"code":"110112110","name":"西集镇"},{"code":"110112114","name":"台湖镇"},{"code":"110112117","name":"永乐店镇"},{"code":"110112119","name":"潞城镇"},{"code":"110112120","name":"永顺镇"},{"code":"110112121","name":"梨园镇"},{"code":"110112209","name":"于家务回族乡"}]},{"code":"110113","name":"顺义区","children":[{"code":"110113001","name":"胜利街道"},{"code":"110113002","name":"光明街道"},{"code":"110113003","name":"仁和地区"},{"code":"110113004","name":"后沙峪地区"},{"code":"110113005","name":"天竺地区"},{"code":"110113006","name":"杨镇地区"},{"code":"110113007","name":"牛栏山地区"},{"code":"110113008","name":"南法信地区"},{"code":"110113009","name":"马坡地区"},{"code":"110113010","name":"石园街道"},{"code":"110113011","name":"空港街道"},{"code":"110113012","name":"双丰街道"},{"code":"110113013","name":"旺泉街道"},{"code":"110113101","name":"高丽营镇"},{"code":"110113104","name":"李桥镇"},{"code":"110113105","name":"李遂镇"},{"code":"110113106","name":"南彩镇"},{"code":"110113108","name":"北务镇"},{"code":"110113109","name":"大孙各庄镇"},{"code":"110113110","name":"张镇"},{"code":"110113111","name":"龙湾屯镇"},{"code":"110113112","name":"木林镇"},{"code":"110113113","name":"北小营镇"},{"code":"110113115","name":"北石槽镇"},{"code":"110113116","name":"赵全营镇"}]},{"code":"110114","name":"昌平区","children":[{"code":"110114001","name":"城北街道"},{"code":"110114002","name":"南口地区"},{"code":"110114003","name":"马池口地区"},{"code":"110114004","name":"沙河地区"},{"code":"110114005","name":"城南街道"},{"code":"110114007","name":"东小口地区"},{"code":"110114008","name":"天通苑北街道"},{"code":"110114009","name":"天通苑南街道"},{"code":"110114010","name":"霍营街道"},{"code":"110114011","name":"回龙观街道"},{"code":"110114012","name":"龙泽园街道"},{"code":"110114013","name":"史各庄街道"},{"code":"110114104","name":"阳坊镇"},{"code":"110114110","name":"小汤山镇"},{"code":"110114111","name":"南邵镇"},{"code":"110114112","name":"崔村镇"},{"code":"110114113","name":"百善镇"},{"code":"110114115","name":"北七家镇"},{"code":"110114116","name":"兴寿镇"},{"code":"110114118","name":"流村镇"},{"code":"110114119","name":"十三陵镇"},{"code":"110114120","name":"延寿镇"}]},{"code":"110115","name":"大兴区","children":[{"code":"110115001","name":"兴丰街道"},{"code":"110115002","name":"林校路街道"},{"code":"110115003","name":"清源街道"},{"code":"110115004","name":"亦庄地区"},{"code":"110115005","name":"黄村地区"},{"code":"110115006","name":"旧宫地区"},{"code":"110115007","name":"西红门地区"},{"code":"110115008","name":"瀛海地区"},{"code":"110115009","name":"观音寺街道"},{"code":"110115010","name":"天宫院街道"},{"code":"110115011","name":"高米店街道"},{"code":"110115012","name":"荣华街道"},{"code":"110115013","name":"博兴街道"},{"code":"110115103","name":"青云店镇"},{"code":"110115104","name":"采育镇"},{"code":"110115105","name":"安定镇"},{"code":"110115106","name":"礼贤镇"},{"code":"110115107","name":"榆垡镇"},{"code":"110115108","name":"庞各庄镇"},{"code":"110115109","name":"北臧村镇"},{"code":"110115110","name":"魏善庄镇"},{"code":"110115111","name":"长子营镇"},{"code":"110115403","name":"北京经济技术开发区"},{"code":"110115404","name":"中关村国家自主创新示范区大兴生物医药产业基地"},{"code":"110115405","name":"国家新媒体产业基地"},{"code":"110115406","name":"大兴国际机场"}]},{"code":"110116","name":"怀柔区","children":[{"code":"110116001","name":"泉河街道"},{"code":"110116002","name":"龙山街道"},{"code":"110116003","name":"怀柔地区"},{"code":"110116004","name":"雁栖地区"},{"code":"110116005","name":"庙城地区"},{"code":"110116102","name":"北房镇"},{"code":"110116103","name":"杨宋镇"},{"code":"110116105","name":"桥梓镇"},{"code":"110116106","name":"怀北镇"},{"code":"110116107","name":"汤河口镇"},{"code":"110116108","name":"渤海镇"},{"code":"110116109","name":"九渡河镇"},{"code":"110116110","name":"琉璃庙镇"},{"code":"110116111","name":"宝山镇"},{"code":"110116211","name":"长哨营满族乡"},{"code":"110116213","name":"喇叭沟门满族乡"},{"code":"110116400","name":"北京雁栖经济开发区"}]},{"code":"110117","name":"平谷区","children":[{"code":"110117001","name":"滨河街道"},{"code":"110117002","name":"兴谷街道"},{"code":"110117003","name":"渔阳地区"},{"code":"110117004","name":"峪口地区"},{"code":"110117005","name":"马坊地区"},{"code":"110117006","name":"金海湖地区"},{"code":"110117101","name":"东高村镇"},{"code":"110117102","name":"山东庄镇"},{"code":"110117104","name":"南独乐河镇"},{"code":"110117105","name":"大华山镇"},{"code":"110117106","name":"夏各庄镇"},{"code":"110117108","name":"马昌营镇"},{"code":"110117110","name":"王辛庄镇"},{"code":"110117111","name":"大兴庄镇"},{"code":"110117112","name":"刘家店镇"},{"code":"110117114","name":"镇罗营镇"},{"code":"110117213","name":"黄松峪乡"},{"code":"110117214","name":"熊儿寨乡"}]},{"code":"110118","name":"密云区","children":[{"code":"110118001","name":"鼓楼街道"},{"code":"110118002","name":"果园街道"},{"code":"110118003","name":"檀营地区"},{"code":"110118100","name":"密云镇"},{"code":"110118101","name":"溪翁庄镇"},{"code":"110118102","name":"西田各庄镇"},{"code":"110118103","name":"十里堡镇"},{"code":"110118104","name":"河南寨镇"},{"code":"110118105","name":"巨各庄镇"},{"code":"110118106","name":"穆家峪镇"},{"code":"110118107","name":"太师屯镇"},{"code":"110118108","name":"高岭镇"},{"code":"110118109","name":"不老屯镇"},{"code":"110118110","name":"冯家峪镇"},{"code":"110118111","name":"古北口镇"},{"code":"110118112","name":"大城子镇"},{"code":"110118113","name":"东邵渠镇"},{"code":"110118114","name":"北庄镇"},{"code":"110118115","name":"新城子镇"},{"code":"110118116","name":"石城镇"},{"code":"110118400","name":"中关村科技园区密云园"}]},{"code":"110119","name":"延庆区","children":[{"code":"110119001","name":"百泉街道"},{"code":"110119002","name":"香水园街道"},{"code":"110119003","name":"儒林街道"},{"code":"110119100","name":"延庆镇"},{"code":"110119101","name":"康庄镇"},{"code":"110119102","name":"八达岭镇"},{"code":"110119103","name":"永宁镇"},{"code":"110119104","name":"旧县镇"},{"code":"110119105","name":"张山营镇"},{"code":"110119106","name":"四海镇"},{"code":"110119107","name":"千家店镇"},{"code":"110119108","name":"沈家营镇"},{"code":"110119109","name":"大榆树镇"},{"code":"110119110","name":"井庄镇"},{"code":"110119200","name":"大庄科乡"},{"code":"110119201","name":"刘斌堡乡"},{"code":"110119202","name":"香营乡"},{"code":"110119203","name":"珍珠泉乡"}]}]}]},{"code":"12","name":"天津市","children":[{"code":"1201","name":"市辖区","children":[{"code":"120101","name":"和平区","children":[{"code":"120101001","name":"劝业场街道"},{"code":"120101002","name":"小白楼街道"},{"code":"120101003","name":"五大道街道"},{"code":"120101004","name":"新兴街道"},{"code":"120101005","name":"南营门街道"},{"code":"120101006","name":"南市街道"}]},{"code":"120102","name":"河东区","children":[{"code":"120102001","name":"大王庄街道"},{"code":"120102002","name":"大直沽街道"},{"code":"120102003","name":"中山门街道"},{"code":"120102004","name":"富民路街道"},{"code":"120102005","name":"二号桥街道"},{"code":"120102006","name":"春华街道"},{"code":"120102007","name":"唐家口街道"},{"code":"120102008","name":"向阳楼街道"},{"code":"120102009","name":"常州道街道"},{"code":"120102010","name":"上杭路街道"},{"code":"120102011","name":"东新街道"},{"code":"120102012","name":"鲁山道街道"},{"code":"120102013","name":"天津铁厂街道"}]},{"code":"120103","name":"河西区","children":[{"code":"120103001","name":"大营门街道"},{"code":"120103002","name":"下瓦房街道"},{"code":"120103003","name":"桃园街道"},{"code":"120103004","name":"挂甲寺街道"},{"code":"120103005","name":"马场街道"},{"code":"120103006","name":"越秀路街道"},{"code":"120103007","name":"友谊路街道"},{"code":"120103008","name":"天塔街道"},{"code":"120103009","name":"尖山街道"},{"code":"120103010","name":"陈塘庄街道"},{"code":"120103011","name":"柳林街道"},{"code":"120103012","name":"东海街道"},{"code":"120103013","name":"梅江街道"},{"code":"120103014","name":"太湖路街道"}]},{"code":"120104","name":"南开区","children":[{"code":"120104001","name":"长虹街道"},{"code":"120104002","name":"鼓楼街道"},{"code":"120104003","name":"兴南街道"},{"code":"120104004","name":"广开街道"},{"code":"120104005","name":"万兴街道"},{"code":"120104006","name":"学府街道"},{"code":"120104007","name":"向阳路街道"},{"code":"120104008","name":"嘉陵道街道"},{"code":"120104009","name":"王顶堤街道"},{"code":"120104010","name":"水上公园街道"},{"code":"120104011","name":"体育中心街道"},{"code":"120104012","name":"华苑街道"}]},{"code":"120105","name":"河北区","children":[{"code":"120105001","name":"光复道街道"},{"code":"120105002","name":"望海楼街道"},{"code":"120105003","name":"鸿顺里街道"},{"code":"120105004","name":"新开河街道"},{"code":"120105005","name":"铁东路街道"},{"code":"120105006","name":"建昌道街道"},{"code":"120105007","name":"宁园街道"},{"code":"120105008","name":"王串场街道"},{"code":"120105009","name":"江都路街道"},{"code":"120105010","name":"月牙河街道"}]},{"code":"120106","name":"红桥区","children":[{"code":"120106001","name":"西于庄街道"},{"code":"120106003","name":"咸阳北路街道"},{"code":"120106004","name":"丁字沽街道"},{"code":"120106005","name":"西沽街道"},{"code":"120106006","name":"三条石街道"},{"code":"120106008","name":"邵公庄街道"},{"code":"120106009","name":"芥园街道"},{"code":"120106010","name":"铃铛阁街道"},{"code":"120106012","name":"和苑街道"}]},{"code":"120110","name":"东丽区","children":[{"code":"120110001","name":"张贵庄街道"},{"code":"120110002","name":"丰年村街道"},{"code":"120110003","name":"万新街道"},{"code":"120110004","name":"无瑕街道"},{"code":"120110005","name":"新立街道"},{"code":"120110006","name":"华明街道"},{"code":"120110007","name":"金钟街道"},{"code":"120110008","name":"军粮城街道"},{"code":"120110009","name":"金桥街道"},{"code":"120110010","name":"华新街道"},{"code":"120110011","name":"东丽湖街道"},{"code":"120110400","name":"天津经济技术开发区西区"},{"code":"120110401","name":"天津航空物流区"},{"code":"120110402","name":"天津空港经济区"},{"code":"120110403","name":"东丽区经济技术开发区"},{"code":"120110405","name":"综合保税区"},{"code":"120110406","name":"航空新城"},{"code":"120110407","name":"服务滨海新区建设管理委员会"}]},{"code":"120111","name":"西青区","children":[{"code":"120111001","name":"西营门街道"},{"code":"120111002","name":"李七庄街道"},{"code":"120111003","name":"赤龙南街道"},{"code":"120111005","name":"津门湖街道"},{"code":"120111100","name":"中北镇"},{"code":"120111101","name":"杨柳青镇"},{"code":"120111102","name":"辛口镇"},{"code":"120111103","name":"张家窝镇"},{"code":"120111104","name":"精武镇"},{"code":"120111105","name":"大寺镇"},{"code":"120111106","name":"王稳庄镇"},{"code":"120111400","name":"天津经济技术开发区微电子小区"},{"code":"120111401","name":"新技术产业园区"},{"code":"120111450","name":"西青区开发区"}]},{"code":"120112","name":"津南区","children":[{"code":"120112001","name":"双新街道"},{"code":"120112002","name":"双林街道"},{"code":"120112003","name":"海棠街道"},{"code":"120112100","name":"咸水沽镇"},{"code":"120112101","name":"葛沽镇"},{"code":"120112102","name":"小站镇"},{"code":"120112103","name":"双港镇"},{"code":"120112104","name":"辛庄镇"},{"code":"120112106","name":"双桥河镇"},{"code":"120112107","name":"八里台镇"},{"code":"120112108","name":"北闸口镇"},{"code":"120112403","name":"长青"},{"code":"120112404","name":"津南开发区东区"},{"code":"120112405","name":"津南开发区西区"},{"code":"120112501","name":"津南国家农业园区"}]},{"code":"120113","name":"北辰区","children":[{"code":"120113001","name":"果园新村街道"},{"code":"120113002","name":"集贤里街道"},{"code":"120113003","name":"普东街道"},{"code":"120113004","name":"瑞景街道"},{"code":"120113005","name":"佳荣里街道"},{"code":"120113006","name":"青源街道"},{"code":"120113007","name":"广源街道"},{"code":"120113008","name":"双环邨街道"},{"code":"120113100","name":"天穆镇"},{"code":"120113101","name":"北仓镇"},{"code":"120113102","name":"双街镇"},{"code":"120113103","name":"双口镇"},{"code":"120113104","name":"青光镇"},{"code":"120113106","name":"宜兴埠镇"},{"code":"120113107","name":"小淀镇"},{"code":"120113108","name":"大张庄镇"},{"code":"120113111","name":"西堤头镇"},{"code":"120113400","name":"科技园区北区"},{"code":"120113401","name":"科技园区南区"},{"code":"120113402","name":"天津医药医疗器械工业园"},{"code":"120113403","name":"天津陆路港物流装备产业园"},{"code":"120113404","name":"天津风电产业园"},{"code":"120113500","name":"红旗农场"},{"code":"120113501","name":"曙光农场"}]},{"code":"120114","name":"武清区","children":[{"code":"120114001","name":"杨村街道"},{"code":"120114002","name":"下朱庄街道"},{"code":"120114003","name":"东蒲洼街道"},{"code":"120114004","name":"黄庄街道"},{"code":"120114005","name":"徐官屯街道"},{"code":"120114006","name":"运河西街道"},{"code":"120114101","name":"梅厂镇"},{"code":"120114102","name":"大碱厂镇"},{"code":"120114103","name":"崔黄口镇"},{"code":"120114104","name":"大良镇"},{"code":"120114105","name":"下伍旗镇"},{"code":"120114106","name":"南蔡村镇"},{"code":"120114107","name":"大孟庄镇"},{"code":"120114108","name":"泗村店镇"},{"code":"120114109","name":"河西务镇"},{"code":"120114110","name":"城关镇"},{"code":"120114111","name":"东马圈镇"},{"code":"120114112","name":"黄花店镇"},{"code":"120114113","name":"石各庄镇"},{"code":"120114114","name":"王庆坨镇"},{"code":"120114115","name":"汊沽港镇"},{"code":"120114116","name":"河北屯镇"},{"code":"120114117","name":"上马台镇"},{"code":"120114118","name":"大王古庄镇"},{"code":"120114119","name":"陈咀镇"},{"code":"120114120","name":"豆张庄镇"},{"code":"120114121","name":"曹子里镇"},{"code":"120114122","name":"大黄堡镇"},{"code":"120114123","name":"高村镇"},{"code":"120114124","name":"白古屯镇"},{"code":"120114400","name":"天津经济技术开发区逸仙科学工业园"},{"code":"120114401","name":"武清经济技术开发区"},{"code":"120114403","name":"天津京滨工业园"},{"code":"120114404","name":"天津京津电子商务产业园"},{"code":"120114405","name":"天津武清汽车产业园"},{"code":"120114406","name":"天津京津科技谷"},{"code":"120114407","name":"京津高村科技创新园"}]},{"code":"120115","name":"宝坻区","children":[{"code":"120115001","name":"海滨街道"},{"code":"120115002","name":"宝平街道"},{"code":"120115003","name":"钰华街道"},{"code":"120115006","name":"周良街道"},{"code":"120115007","name":"潮阳街道"},{"code":"120115008","name":"朝霞街道"},{"code":"120115101","name":"大口屯镇"},{"code":"120115103","name":"王卜庄镇"},{"code":"120115104","name":"方家庄镇"},{"code":"120115105","name":"林亭口镇"},{"code":"120115106","name":"八门城镇"},{"code":"120115107","name":"大钟庄镇"},{"code":"120115108","name":"新安镇"},{"code":"120115111","name":"霍各庄镇"},{"code":"120115113","name":"新开口镇"},{"code":"120115115","name":"大唐庄镇"},{"code":"120115119","name":"牛道口镇"},{"code":"120115120","name":"史各庄镇"},{"code":"120115121","name":"郝各庄镇"},{"code":"120115123","name":"牛家牌镇"},{"code":"120115124","name":"尔王庄镇"},{"code":"120115125","name":"黄庄镇"},{"code":"120115126","name":"口东镇"},{"code":"120115127","name":"大白庄镇"},{"code":"120115456","name":"宝坻经济开发区"},{"code":"120115457","name":"京津中关村科技城"}]},{"code":"120116","name":"滨海新区","children":[{"code":"120116001","name":"塘沽街道"},{"code":"120116005","name":"杭州道街道"},{"code":"120116006","name":"新河街道"},{"code":"120116007","name":"大沽街道"},{"code":"120116008","name":"新北街道"},{"code":"120116009","name":"北塘街道"},{"code":"120116011","name":"胡家园街道"},{"code":"120116012","name":"新港街道"},{"code":"120116013","name":"新村街道"},{"code":"120116014","name":"天津经济技术开发区东区泰达街道"},{"code":"120116031","name":"汉沽街道"},{"code":"120116032","name":"寨上街道"},{"code":"120116033","name":"茶淀街道"},{"code":"120116051","name":"大港街道"},{"code":"120116053","name":"古林街道"},{"code":"120116054","name":"海滨街道"},{"code":"120116100","name":"新城镇"},{"code":"120116135","name":"杨家泊镇"},{"code":"120116156","name":"太平镇"},{"code":"120116157","name":"小王庄镇"},{"code":"120116158","name":"中塘镇"},{"code":"120116400","name":"天津经济技术开发区(其他片区)"},{"code":"120116401","name":"天津港保税区"},{"code":"120116402","name":"天津滨海新区高新技术产业开发区"},{"code":"120116403","name":"东疆保税港区"},{"code":"120116406","name":"中新天津生态城"}]},{"code":"120117","name":"宁河区","children":[{"code":"120117001","name":"芦台街道"},{"code":"120117002","name":"桥北街道"},{"code":"120117102","name":"宁河镇"},{"code":"120117103","name":"苗庄镇"},{"code":"120117104","name":"丰台镇"},{"code":"120117105","name":"岳龙镇"},{"code":"120117106","name":"板桥镇"},{"code":"120117107","name":"潘庄镇"},{"code":"120117109","name":"造甲城镇"},{"code":"120117110","name":"七里海镇"},{"code":"120117111","name":"大北涧沽镇"},{"code":"120117112","name":"东棘坨镇"},{"code":"120117113","name":"北淮淀镇"},{"code":"120117114","name":"俵口镇"},{"code":"120117115","name":"廉庄镇"},{"code":"120117400","name":"宁河区贸易开发区"},{"code":"120117401","name":"宁河区经济开发区"},{"code":"120117402","name":"天津未来科技城天津经济技术开发区片区"},{"code":"120117403","name":"天津未来科技城滨海高新区片区"},{"code":"120117451","name":"天津未来科技城宁河片区现代产业区组团"},{"code":"120117452","name":"天津未来科技城宁河片区潘庄工业区组团"},{"code":"120117453","name":"天津未来科技城宁河片区北淮淀组团"}]},{"code":"120118","name":"静海区","children":[{"code":"120118001","name":"华康街道"},{"code":"120118002","name":"朝阳街道"},{"code":"120118100","name":"静海镇"},{"code":"120118101","name":"唐官屯镇"},{"code":"120118102","name":"独流镇"},{"code":"120118103","name":"王口镇"},{"code":"120118104","name":"台头镇"},{"code":"120118105","name":"子牙镇"},{"code":"120118106","name":"陈官屯镇"},{"code":"120118107","name":"中旺镇"},{"code":"120118108","name":"大邱庄镇"},{"code":"120118109","name":"蔡公庄镇"},{"code":"120118110","name":"梁头镇"},{"code":"120118111","name":"团泊镇"},{"code":"120118112","name":"双塘镇"},{"code":"120118113","name":"大丰堆镇"},{"code":"120118114","name":"沿庄镇"},{"code":"120118115","name":"西翟庄镇"},{"code":"120118200","name":"良王庄乡"},{"code":"120118201","name":"杨成庄乡"},{"code":"120118400","name":"天津静海经济开发区"},{"code":"120118402","name":"天津子牙循环经济产业区"},{"code":"120118403","name":"团泊新城"}]},{"code":"120119","name":"蓟州区","children":[{"code":"120119001","name":"文昌街道"},{"code":"120119100","name":"渔阳镇"},{"code":"120119101","name":"洇溜镇"},{"code":"120119102","name":"官庄镇"},{"code":"120119103","name":"马伸桥镇"},{"code":"120119104","name":"下营镇"},{"code":"120119105","name":"邦均镇"},{"code":"120119106","name":"别山镇"},{"code":"120119108","name":"尤古庄镇"},{"code":"120119109","name":"上仓镇"},{"code":"120119111","name":"下仓镇"},{"code":"120119112","name":"罗庄子镇"},{"code":"120119113","name":"白涧镇"},{"code":"120119115","name":"侯家营镇"},{"code":"120119116","name":"桑梓镇"},{"code":"120119117","name":"东施古镇"},{"code":"120119118","name":"下窝头镇"},{"code":"120119119","name":"杨津庄镇"},{"code":"120119120","name":"出头岭镇"},{"code":"120119121","name":"西龙虎峪镇"},{"code":"120119122","name":"穿芳峪镇"},{"code":"120119123","name":"东二营镇"},{"code":"120119124","name":"许家台镇"},{"code":"120119125","name":"礼明庄镇"},{"code":"120119126","name":"东赵各庄镇"},{"code":"120119127","name":"州河湾镇"},{"code":"120119203","name":"孙各庄乡"},{"code":"120119401","name":"天津市蓟州区京津州河科技产业园管理委员会"}]}]}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市","children":[{"code":"130102","name":"长安区","children":[{"code":"130102001","name":"建北街道"},{"code":"130102002","name":"青园街道"},{"code":"130102003","name":"广安街道"},{"code":"130102004","name":"育才街道"},{"code":"130102005","name":"跃进街道"},{"code":"130102007","name":"河东街道"},{"code":"130102010","name":"长丰街道"},{"code":"130102011","name":"谈固街道"},{"code":"130102012","name":"中山东路街道"},{"code":"130102013","name":"阜康街道"},{"code":"130102014","name":"建安街道"},{"code":"130102015","name":"胜利北街道"},{"code":"130102100","name":"西兆通镇"},{"code":"130102101","name":"南村镇"},{"code":"130102102","name":"高营镇"},{"code":"130102103","name":"桃园镇"}]},{"code":"130104","name":"桥西区","children":[{"code":"130104001","name":"东里街道"},{"code":"130104002","name":"中山街道"},{"code":"130104004","name":"南长街道"},{"code":"130104005","name":"维明街道"},{"code":"130104007","name":"友谊街道"},{"code":"130104008","name":"红旗街道"},{"code":"130104009","name":"新石街道"},{"code":"130104010","name":"苑东街道"},{"code":"130104011","name":"西里街道"},{"code":"130104012","name":"振头街道"},{"code":"130104013","name":"留营街道"},{"code":"130104014","name":"长兴街道"},{"code":"130104015","name":"彭后街道"},{"code":"130104016","name":"东风街道"},{"code":"130104017","name":"东华街道"},{"code":"130104018","name":"休门街道"},{"code":"130104019","name":"汇通街道"}]},{"code":"130105","name":"新华区","children":[{"code":"130105001","name":"革新街街道"},{"code":"130105003","name":"新华路街道"},{"code":"130105004","name":"宁安街道"},{"code":"130105005","name":"东焦街道"},{"code":"130105006","name":"西苑街道"},{"code":"130105007","name":"合作路街道"},{"code":"130105008","name":"联盟街道"},{"code":"130105009","name":"石岗街道"},{"code":"130105011","name":"天苑街道"},{"code":"130105012","name":"北苑街道"},{"code":"130105013","name":"赵陵铺路街道"},{"code":"130105014","name":"西三庄街道"},{"code":"130105015","name":"大郭街道"},{"code":"130105016","name":"杜北街道"},{"code":"130105017","name":"赵佗路街道"}]},{"code":"130107","name":"井陉矿区","children":[{"code":"130107001","name":"矿市街道"},{"code":"130107002","name":"四微街道"},{"code":"130107100","name":"贾庄镇"},{"code":"130107101","name":"凤山镇"},{"code":"130107200","name":"横涧乡"}]},{"code":"130108","name":"裕华区","children":[{"code":"130108001","name":"裕兴街道"},{"code":"130108002","name":"裕强街道"},{"code":"130108003","name":"东苑街道"},{"code":"130108004","name":"建通街道"},{"code":"130108005","name":"槐底街道"},{"code":"130108006","name":"裕华路街道"},{"code":"130108007","name":"裕东街道"},{"code":"130108008","name":"裕翔街道"},{"code":"130108009","name":"建华南街道"},{"code":"130108101","name":"方村镇"}]},{"code":"130109","name":"藁城区","children":[{"code":"130109100","name":"廉州镇"},{"code":"130109101","name":"兴安镇"},{"code":"130109102","name":"贾市庄镇"},{"code":"130109103","name":"南营镇"},{"code":"130109104","name":"梅花镇"},{"code":"130109105","name":"岗上镇"},{"code":"130109107","name":"南董镇"},{"code":"130109108","name":"张家庄镇"},{"code":"130109109","name":"南孟镇"},{"code":"130109110","name":"增村镇"},{"code":"130109111","name":"常安镇"},{"code":"130109112","name":"西关镇"},{"code":"130109200","name":"九门回族乡"},{"code":"130109500","name":"石家庄经济技术开发区"}]},{"code":"130110","name":"鹿泉区","children":[{"code":"130110100","name":"获鹿镇"},{"code":"130110101","name":"铜冶镇"},{"code":"130110102","name":"寺家庄镇"},{"code":"130110103","name":"上庄镇"},{"code":"130110104","name":"李村镇"},{"code":"130110105","name":"宜安镇"},{"code":"130110106","name":"黄壁庄镇"},{"code":"130110107","name":"大河镇"},{"code":"130110108","name":"山尹村镇"},{"code":"130110200","name":"石井乡"},{"code":"130110201","name":"白鹿泉乡"},{"code":"130110202","name":"上寨乡"},{"code":"130110500","name":"河北鹿泉经济开发区"}]},{"code":"130111","name":"栾城区","children":[{"code":"130111100","name":"栾城镇"},{"code":"130111103","name":"冶河镇"},{"code":"130111104","name":"窦妪镇"},{"code":"130111105","name":"楼底镇"},{"code":"130111200","name":"南高乡"},{"code":"130111201","name":"柳林屯乡"},{"code":"130111202","name":"西营乡"}]},{"code":"130121","name":"井陉县","children":[{"code":"130121100","name":"微水镇"},{"code":"130121101","name":"上安镇"},{"code":"130121102","name":"天长镇"},{"code":"130121103","name":"秀林镇"},{"code":"130121104","name":"南峪镇"},{"code":"130121105","name":"威州镇"},{"code":"130121106","name":"小作镇"},{"code":"130121107","name":"南障城镇"},{"code":"130121108","name":"苍岩山镇"},{"code":"130121109","name":"测鱼镇"},{"code":"130121200","name":"吴家窑乡"},{"code":"130121201","name":"北正乡"},{"code":"130121202","name":"于家乡"},{"code":"130121203","name":"孙庄乡"},{"code":"130121204","name":"南陉乡"},{"code":"130121205","name":"辛庄乡"},{"code":"130121206","name":"南王庄乡"}]},{"code":"130123","name":"正定县","children":[{"code":"130123001","name":"诸福屯街道"},{"code":"130123002","name":"三里屯街道"},{"code":"130123100","name":"正定镇"},{"code":"130123102","name":"新城铺镇"},{"code":"130123103","name":"新安镇"},{"code":"130123104","name":"南岗镇"},{"code":"130123105","name":"曲阳桥镇"},{"code":"130123200","name":"南牛乡"},{"code":"130123201","name":"南楼乡"},{"code":"130123202","name":"西平乐乡"}]},{"code":"130125","name":"行唐县","children":[{"code":"130125100","name":"龙州镇"},{"code":"130125101","name":"南桥镇"},{"code":"130125102","name":"上碑镇"},{"code":"130125103","name":"口头镇"},{"code":"130125200","name":"独羊岗乡"},{"code":"130125201","name":"安香乡"},{"code":"130125202","name":"只里乡"},{"code":"130125203","name":"市同乡"},{"code":"130125204","name":"翟营乡"},{"code":"130125205","name":"城寨乡"},{"code":"130125206","name":"上方乡"},{"code":"130125207","name":"玉亭乡"},{"code":"130125208","name":"北河乡"},{"code":"130125209","name":"上闫庄乡"},{"code":"130125210","name":"九口子乡"},{"code":"130125400","name":"开发区"}]},{"code":"130126","name":"灵寿县","children":[{"code":"130126100","name":"灵寿镇"},{"code":"130126101","name":"青同镇"},{"code":"130126102","name":"塔上镇"},{"code":"130126103","name":"陈庄镇"},{"code":"130126104","name":"慈峪镇"},{"code":"130126105","name":"岔头镇"},{"code":"130126200","name":"三圣院乡"},{"code":"130126201","name":"北洼乡"},{"code":"130126202","name":"牛城乡"},{"code":"130126203","name":"狗台乡"},{"code":"130126204","name":"南寨乡"},{"code":"130126205","name":"南燕川乡"},{"code":"130126206","name":"北谭庄乡"},{"code":"130126207","name":"寨头乡"},{"code":"130126208","name":"南营乡"}]},{"code":"130127","name":"高邑县","children":[{"code":"130127100","name":"高邑镇"},{"code":"130127101","name":"大营镇"},{"code":"130127102","name":"富村镇"},{"code":"130127103","name":"万城镇"},{"code":"130127104","name":"中韩镇"}]},{"code":"130128","name":"深泽县","children":[{"code":"130128100","name":"深泽镇"},{"code":"130128101","name":"铁杆镇"},{"code":"130128102","name":"赵八镇"},{"code":"130128103","name":"大桥头镇"},{"code":"130128200","name":"白庄乡"},{"code":"130128201","name":"留村乡"}]},{"code":"130129","name":"赞皇县","children":[{"code":"130129100","name":"赞皇镇"},{"code":"130129101","name":"院头镇"},{"code":"130129102","name":"南邢郭镇"},{"code":"130129103","name":"嶂石岩镇"},{"code":"130129200","name":"西龙门乡"},{"code":"130129202","name":"南清河乡"},{"code":"130129203","name":"西阳泽乡"},{"code":"130129204","name":"土门乡"},{"code":"130129205","name":"黄北坪乡"},{"code":"130129207","name":"许亭乡"},{"code":"130129208","name":"张楞乡"}]},{"code":"130130","name":"无极县","children":[{"code":"130130100","name":"无极镇"},{"code":"130130101","name":"七汲镇"},{"code":"130130102","name":"张段固镇"},{"code":"130130103","name":"北苏镇"},{"code":"130130104","name":"郭庄镇"},{"code":"130130105","name":"大陈镇"},{"code":"130130200","name":"高头回族乡"},{"code":"130130201","name":"郝庄乡"},{"code":"130130202","name":"东侯坊乡"},{"code":"130130203","name":"里城道乡"},{"code":"130130204","name":"南流乡"}]},{"code":"130131","name":"平山县","children":[{"code":"130131100","name":"平山镇"},{"code":"130131101","name":"东回舍镇"},{"code":"130131102","name":"温塘镇"},{"code":"130131103","name":"南甸镇"},{"code":"130131104","name":"岗南镇"},{"code":"130131105","name":"古月镇"},{"code":"130131106","name":"下槐镇"},{"code":"130131107","name":"孟家庄镇"},{"code":"130131108","name":"小觉镇"},{"code":"130131109","name":"蛟潭庄镇"},{"code":"130131110","name":"西柏坡镇"},{"code":"130131111","name":"下口镇"},{"code":"130131200","name":"西大吾乡"},{"code":"130131201","name":"上三汲乡"},{"code":"130131202","name":"两河乡"},{"code":"130131203","name":"东王坡乡"},{"code":"130131204","name":"苏家庄乡"},{"code":"130131205","name":"宅北乡"},{"code":"130131207","name":"北冶乡"},{"code":"130131209","name":"上观音堂乡"},{"code":"130131210","name":"杨家桥乡"},{"code":"130131211","name":"营里乡"},{"code":"130131212","name":"合河口乡"}]},{"code":"130132","name":"元氏县","children":[{"code":"130132001","name":"城区街道"},{"code":"130132100","name":"槐阳镇"},{"code":"130132101","name":"殷村镇"},{"code":"130132102","name":"南佐镇"},{"code":"130132103","name":"宋曹镇"},{"code":"130132104","name":"南因镇"},{"code":"130132105","name":"姬村镇"},{"code":"130132106","name":"北褚镇"},{"code":"130132107","name":"马村镇"},{"code":"130132201","name":"东张乡"},{"code":"130132202","name":"赵同乡"},{"code":"130132204","name":"苏村乡"},{"code":"130132205","name":"苏阳乡"},{"code":"130132206","name":"北正乡"},{"code":"130132207","name":"前仙乡"},{"code":"130132208","name":"黑水河乡"}]},{"code":"130133","name":"赵县","children":[{"code":"130133100","name":"赵州镇"},{"code":"130133101","name":"范庄镇"},{"code":"130133102","name":"北王里镇"},{"code":"130133103","name":"新寨店镇"},{"code":"130133104","name":"韩村镇"},{"code":"130133105","name":"南柏舍镇"},{"code":"130133106","name":"沙河店镇"},{"code":"130133107","name":"王西章镇"},{"code":"130133200","name":"前大章乡"},{"code":"130133201","name":"谢庄乡"},{"code":"130133202","name":"高村乡"}]},{"code":"130171","name":"石家庄高新技术产业开发区","children":[{"code":"130171010","name":"长江街道"},{"code":"130171011","name":"太行街道"},{"code":"130171100","name":"宋营镇"},{"code":"130171101","name":"郄马镇"}]},{"code":"130172","name":"石家庄循环化工园区","children":[{"code":"130172100","name":"丘头镇"}]},{"code":"130181","name":"辛集市","children":[{"code":"130181100","name":"辛集镇"},{"code":"130181101","name":"旧城镇"},{"code":"130181102","name":"张古庄镇"},{"code":"130181103","name":"位伯镇"},{"code":"130181104","name":"新垒头镇"},{"code":"130181105","name":"新城镇"},{"code":"130181106","name":"南智邱镇"},{"code":"130181107","name":"王口镇"},{"code":"130181200","name":"天宫营乡"},{"code":"130181201","name":"前营乡"},{"code":"130181202","name":"马庄乡"},{"code":"130181203","name":"和睦井乡"},{"code":"130181204","name":"田家庄乡"},{"code":"130181205","name":"中里厢乡"},{"code":"130181206","name":"小辛庄乡"},{"code":"130181500","name":"辛集经济开发区"}]},{"code":"130183","name":"晋州市","children":[{"code":"130183100","name":"晋州镇"},{"code":"130183101","name":"总十庄镇"},{"code":"130183102","name":"营里镇"},{"code":"130183103","name":"桃园镇"},{"code":"130183104","name":"东卓宿镇"},{"code":"130183105","name":"马于镇"},{"code":"130183106","name":"小樵镇"},{"code":"130183107","name":"槐树镇"},{"code":"130183108","name":"东里庄镇"},{"code":"130183201","name":"周家庄乡"}]},{"code":"130184","name":"新乐市","children":[{"code":"130184001","name":"长寿街道"},{"code":"130184101","name":"化皮镇"},{"code":"130184102","name":"承安镇"},{"code":"130184103","name":"正莫镇"},{"code":"130184104","name":"南大岳镇"},{"code":"130184105","name":"杜固镇"},{"code":"130184106","name":"邯邰镇"},{"code":"130184107","name":"东王镇"},{"code":"130184108","name":"马头铺镇"},{"code":"130184200","name":"协神乡"},{"code":"130184201","name":"木村乡"},{"code":"130184202","name":"彭家庄回族乡"}]}]},{"code":"1302","name":"唐山市","children":[{"code":"130202","name":"路南区","children":[{"code":"130202001","name":"学院南路街道"},{"code":"130202002","name":"友谊街道"},{"code":"130202003","name":"广场街道"},{"code":"130202004","name":"永红桥街道"},{"code":"130202005","name":"小山街道"},{"code":"130202006","name":"文化北后街街道"},{"code":"130202007","name":"钱家营矿区街道"},{"code":"130202008","name":"惠民道街道"},{"code":"130202009","name":"梁家屯路街道"},{"code":"130202102","name":"稻地镇"},{"code":"130202200","name":"女织寨乡"}]},{"code":"130203","name":"路北区","children":[{"code":"130203001","name":"乔屯街道"},{"code":"130203002","name":"文化路街道"},{"code":"130203003","name":"钓鱼台街道"},{"code":"130203004","name":"东新村街道"},{"code":"130203005","name":"缸窑街道"},{"code":"130203006","name":"机场路街道"},{"code":"130203007","name":"河北路街道"},{"code":"130203008","name":"龙东街道"},{"code":"130203009","name":"大里街道"},{"code":"130203010","name":"光明街道"},{"code":"130203011","name":"翔云道街道"},{"code":"130203100","name":"韩城镇"},{"code":"130203101","name":"果园镇"}]},{"code":"130204","name":"古冶区","children":[{"code":"130204001","name":"林西街道"},{"code":"130204002","name":"唐家庄街道"},{"code":"130204003","name":"古冶街道"},{"code":"130204004","name":"赵各庄街道"},{"code":"130204007","name":"京华街道"},{"code":"130204100","name":"范各庄镇"},{"code":"130204101","name":"卑家店镇"},{"code":"130204201","name":"王辇庄乡"},{"code":"130204202","name":"习家套乡"},{"code":"130204203","name":"大庄坨乡"}]},{"code":"130205","name":"开平区","children":[{"code":"130205001","name":"马家沟街道"},{"code":"130205002","name":"开平街道"},{"code":"130205003","name":"税务庄街道"},{"code":"130205005","name":"陡电街道"},{"code":"130205006","name":"荆各庄街道"},{"code":"130205100","name":"开平镇"},{"code":"130205101","name":"栗园镇"},{"code":"130205102","name":"郑庄子镇"},{"code":"130205103","name":"双桥镇"},{"code":"130205104","name":"洼里镇"},{"code":"130205105","name":"越河镇"}]},{"code":"130207","name":"丰南区","children":[{"code":"130207103","name":"小集镇"},{"code":"130207104","name":"黄各庄镇"},{"code":"130207105","name":"西葛镇"},{"code":"130207106","name":"大新庄镇"},{"code":"130207107","name":"钱营镇"},{"code":"130207108","name":"唐坊镇"},{"code":"130207109","name":"王兰庄镇"},{"code":"130207110","name":"柳树瞿阝镇"},{"code":"130207111","name":"黑沿子镇"},{"code":"130207113","name":"胥各庄镇"},{"code":"130207114","name":"大齐各庄镇"},{"code":"130207115","name":"岔河镇"},{"code":"130207201","name":"南孙庄乡"},{"code":"130207202","name":"东田庄乡"},{"code":"130207203","name":"尖字沽乡"}]},{"code":"130208","name":"丰润区","children":[{"code":"130208001","name":"太平路街道"},{"code":"130208002","name":"燕山路街道"},{"code":"130208003","name":"浭阳街道"},{"code":"130208100","name":"丰润镇"},{"code":"130208102","name":"任各庄镇"},{"code":"130208103","name":"左家坞镇"},{"code":"130208104","name":"泉河头镇"},{"code":"130208105","name":"王官营镇"},{"code":"130208106","name":"火石营镇"},{"code":"130208109","name":"新军屯镇"},{"code":"130208110","name":"小张各庄镇"},{"code":"130208111","name":"丰登坞镇"},{"code":"130208112","name":"李钊庄镇"},{"code":"130208113","name":"白官屯镇"},{"code":"130208114","name":"石各庄镇"},{"code":"130208115","name":"沙流河镇"},{"code":"130208116","name":"七树庄镇"},{"code":"130208117","name":"杨官林镇"},{"code":"130208118","name":"银城铺镇"},{"code":"130208119","name":"常庄镇"},{"code":"130208202","name":"姜家营乡"},{"code":"130208205","name":"欢喜庄乡"},{"code":"130208208","name":"刘家营乡"}]},{"code":"130209","name":"曹妃甸区","children":[{"code":"130209100","name":"唐海镇"},{"code":"130209112","name":"滨海镇"},{"code":"130209113","name":"柳赞镇"},{"code":"130209401","name":"一农场"},{"code":"130209403","name":"三农场"},{"code":"130209404","name":"四农场"},{"code":"130209405","name":"五农场"},{"code":"130209406","name":"六农场"},{"code":"130209407","name":"七农场"},{"code":"130209408","name":"八农场"},{"code":"130209409","name":"九农场"},{"code":"130209410","name":"十农场"},{"code":"130209411","name":"十一农场"},{"code":"130209412","name":"八里滩养殖场"},{"code":"130209413","name":"十里海养殖场"},{"code":"130209450","name":"南堡经济开发区"},{"code":"130209451","name":"曹妃甸工业区"},{"code":"130209452","name":"曹妃甸新城"}]},{"code":"130224","name":"滦南县","children":[{"code":"130224001","name":"友谊路街道"},{"code":"130224100","name":"倴城镇"},{"code":"130224101","name":"宋道口镇"},{"code":"130224102","name":"长凝镇"},{"code":"130224103","name":"胡各庄镇"},{"code":"130224104","name":"坨里镇"},{"code":"130224105","name":"姚王庄镇"},{"code":"130224106","name":"司各庄镇"},{"code":"130224107","name":"安各庄镇"},{"code":"130224108","name":"扒齿港镇"},{"code":"130224109","name":"程庄镇"},{"code":"130224110","name":"青坨营镇"},{"code":"130224111","name":"柏各庄镇"},{"code":"130224114","name":"南堡镇"},{"code":"130224115","name":"方各庄镇"},{"code":"130224116","name":"东黄坨镇"},{"code":"130224117","name":"马城镇"}]},{"code":"130225","name":"乐亭县","children":[{"code":"130225001","name":"乐安街道"},{"code":"130225100","name":"乐亭镇"},{"code":"130225101","name":"汤家河镇"},{"code":"130225102","name":"胡家坨镇"},{"code":"130225104","name":"闫各庄镇"},{"code":"130225105","name":"马头营镇"},{"code":"130225106","name":"新寨镇"},{"code":"130225107","name":"汀流河镇"},{"code":"130225108","name":"姜各庄镇"},{"code":"130225109","name":"毛庄镇"},{"code":"130225110","name":"中堡镇"},{"code":"130225111","name":"大相各庄镇"},{"code":"130225201","name":"庞各庄乡"},{"code":"130225203","name":"古河乡"},{"code":"130225453","name":"河北乐亭经济开发区"},{"code":"130225454","name":"乐亭县城区工业聚集区"}]},{"code":"130227","name":"迁西县","children":[{"code":"130227001","name":"栗乡街道"},{"code":"130227100","name":"兴城镇"},{"code":"130227101","name":"金厂峪镇"},{"code":"130227102","name":"洒河桥镇"},{"code":"130227103","name":"太平寨镇"},{"code":"130227104","name":"罗家屯镇"},{"code":"130227105","name":"东荒峪镇"},{"code":"130227106","name":"新集镇"},{"code":"130227107","name":"三屯营镇"},{"code":"130227108","name":"滦阳镇"},{"code":"130227109","name":"汉儿庄镇"},{"code":"130227110","name":"新庄子镇"},{"code":"130227111","name":"东莲花院镇"},{"code":"130227200","name":"白庙子乡"},{"code":"130227201","name":"上营乡"},{"code":"130227203","name":"渔户寨乡"},{"code":"130227204","name":"旧城乡"},{"code":"130227205","name":"尹庄乡"},{"code":"130227450","name":"栗乡工业产业聚集区"}]},{"code":"130229","name":"玉田县","children":[{"code":"130229001","name":"无终街道"},{"code":"130229100","name":"玉田镇"},{"code":"130229101","name":"亮甲店镇"},{"code":"130229102","name":"鸦鸿桥镇"},{"code":"130229103","name":"窝洛沽镇"},{"code":"130229104","name":"石臼窝镇"},{"code":"130229105","name":"虹桥镇"},{"code":"130229106","name":"散水头镇"},{"code":"130229107","name":"林南仓镇"},{"code":"130229108","name":"林西镇"},{"code":"130229109","name":"杨家板桥镇"},{"code":"130229110","name":"彩亭桥镇"},{"code":"130229111","name":"孤树镇"},{"code":"130229112","name":"大安镇镇"},{"code":"130229113","name":"唐自头镇"},{"code":"130229114","name":"郭家屯镇"},{"code":"130229115","name":"杨家套镇"},{"code":"130229116","name":"陈家铺镇"},{"code":"130229201","name":"林头屯乡"},{"code":"130229203","name":"潮洛窝乡"},{"code":"130229205","name":"郭家桥乡"},{"code":"130229400","name":"河北玉田经济开发区"},{"code":"130229401","name":"河北唐山国家农业科技园区"}]},{"code":"130271","name":"河北唐山芦台经济开发区","children":[{"code":"130271100","name":"海北镇"},{"code":"130271450","name":"新华路街道"}]},{"code":"130272","name":"唐山市汉沽管理区","children":[{"code":"130272101","name":"汉丰镇"},{"code":"130272451","name":"兴农街道"},{"code":"130272452","name":"振兴街道"}]},{"code":"130273","name":"唐山高新技术产业开发区","children":[{"code":"130273001","name":"街道"},{"code":"130273101","name":"老庄子镇"},{"code":"130273401","name":"庆北"},{"code":"130273402","name":"三女河"}]},{"code":"130274","name":"河北唐山海港经济开发区","children":[{"code":"130274103","name":"王滩镇"},{"code":"130274451","name":"社区管理服务中心"},{"code":"130274452","name":"唐山湾国际旅游岛"},{"code":"130274455","name":"大清河"}]},{"code":"130281","name":"遵化市","children":[{"code":"130281001","name":"华明路街道"},{"code":"130281002","name":"文化路街道"},{"code":"130281100","name":"遵化镇"},{"code":"130281101","name":"堡子店镇"},{"code":"130281102","name":"马兰峪镇"},{"code":"130281103","name":"平安城镇"},{"code":"130281104","name":"东新庄镇"},{"code":"130281105","name":"新店子镇"},{"code":"130281106","name":"党峪镇"},{"code":"130281107","name":"地北头镇"},{"code":"130281108","name":"东旧寨镇"},{"code":"130281109","name":"铁厂镇"},{"code":"130281110","name":"苏家洼镇"},{"code":"130281111","name":"建明镇"},{"code":"130281112","name":"石门镇"},{"code":"130281113","name":"崔家庄镇"},{"code":"130281200","name":"西留村乡"},{"code":"130281202","name":"兴旺寨乡"},{"code":"130281203","name":"西下营满族乡"},{"code":"130281204","name":"汤泉满族乡"},{"code":"130281205","name":"东陵满族乡"},{"code":"130281206","name":"刘备寨乡"},{"code":"130281207","name":"团瓢庄乡"},{"code":"130281208","name":"娘娘庄乡"},{"code":"130281209","name":"西三里乡"},{"code":"130281210","name":"侯家寨乡"},{"code":"130281211","name":"小厂乡"}]},{"code":"130283","name":"迁安市","children":[{"code":"130283001","name":"永顺街道"},{"code":"130283002","name":"兴安街道"},{"code":"130283003","name":"滨河街道"},{"code":"130283004","name":"杨店子街道"},{"code":"130283101","name":"夏官营镇"},{"code":"130283102","name":"杨各庄镇"},{"code":"130283103","name":"建昌营镇"},{"code":"130283104","name":"赵店子镇"},{"code":"130283105","name":"野鸡坨镇"},{"code":"130283106","name":"大崔庄镇"},{"code":"130283108","name":"蔡园镇"},{"code":"130283109","name":"马兰庄镇"},{"code":"130283110","name":"沙河驿镇"},{"code":"130283111","name":"木厂口镇"},{"code":"130283112","name":"上射雁庄镇"},{"code":"130283113","name":"太平庄镇"},{"code":"130283114","name":"扣庄镇"},{"code":"130283115","name":"大五里镇"},{"code":"130283116","name":"五重安镇"},{"code":"130283117","name":"彭店子镇"},{"code":"130283118","name":"阎家店镇"}]},{"code":"130284","name":"滦州市","children":[{"code":"130284001","name":"滦河街道"},{"code":"130284002","name":"古城街道"},{"code":"130284003","name":"滦城路街道"},{"code":"130284004","name":"响嘡街道"},{"code":"130284102","name":"东安各庄镇"},{"code":"130284103","name":"雷庄镇"},{"code":"130284104","name":"茨榆坨镇"},{"code":"130284105","name":"榛子镇"},{"code":"130284106","name":"杨柳庄镇"},{"code":"130284107","name":"油榨镇"},{"code":"130284108","name":"古马镇"},{"code":"130284109","name":"小马庄镇"},{"code":"130284110","name":"九百户镇"},{"code":"130284111","name":"王店子镇"}]}]},{"code":"1303","name":"秦皇岛市","children":[{"code":"130302","name":"海港区","children":[{"code":"130302001","name":"文化路街道"},{"code":"130302002","name":"海滨路街道"},{"code":"130302003","name":"北环路街道"},{"code":"130302004","name":"建设大街街道"},{"code":"130302005","name":"河东街道"},{"code":"130302006","name":"西港路街道"},{"code":"130302007","name":"燕山大街街道"},{"code":"130302008","name":"港城大街街道"},{"code":"130302009","name":"东环路街道"},{"code":"130302010","name":"白塔岭街道"},{"code":"130302100","name":"东港镇"},{"code":"130302101","name":"海港镇"},{"code":"130302102","name":"西港镇"},{"code":"130302103","name":"海阳镇"},{"code":"130302104","name":"北港镇"},{"code":"130302105","name":"杜庄镇"},{"code":"130302106","name":"石门寨镇"},{"code":"130302107","name":"驻操营镇"},{"code":"130302403","name":"临港物流园区"},{"code":"130302404","name":"海港经济开发区"}]},{"code":"130303","name":"山海关区","children":[{"code":"130303001","name":"南关街道"},{"code":"130303002","name":"古城街道"},{"code":"130303003","name":"西关街道"},{"code":"130303004","name":"路南街道"},{"code":"130303100","name":"第一关镇"},{"code":"130303101","name":"石河镇"},{"code":"130303102","name":"孟姜镇"}]},{"code":"130304","name":"北戴河区","children":[{"code":"130304001","name":"西山街道"},{"code":"130304002","name":"东山街道"},{"code":"130304100","name":"海滨镇"},{"code":"130304101","name":"戴河镇"},{"code":"130304103","name":"牛头崖镇"}]},{"code":"130306","name":"抚宁区","children":[{"code":"130306001","name":"骊城街道"},{"code":"130306100","name":"抚宁镇"},{"code":"130306101","name":"留守营镇"},{"code":"130306102","name":"榆关镇"},{"code":"130306105","name":"台营镇"},{"code":"130306106","name":"大新寨镇"},{"code":"130306109","name":"坟坨镇"},{"code":"130306200","name":"茶棚乡"}]},{"code":"130321","name":"青龙满族自治县","children":[{"code":"130321001","name":"都阳路街道"},{"code":"130321100","name":"青龙镇"},{"code":"130321101","name":"祖山镇"},{"code":"130321102","name":"木头凳镇"},{"code":"130321103","name":"双山子镇"},{"code":"130321104","name":"马圈子镇"},{"code":"130321105","name":"肖营子镇"},{"code":"130321106","name":"大巫岚镇"},{"code":"130321107","name":"土门子镇"},{"code":"130321108","name":"八道河镇"},{"code":"130321109","name":"隔河头镇"},{"code":"130321110","name":"娄杖子镇"},{"code":"130321200","name":"凤凰山乡"},{"code":"130321201","name":"龙王庙乡"},{"code":"130321202","name":"三星口乡"},{"code":"130321203","name":"干沟乡"},{"code":"130321206","name":"大石岭乡"},{"code":"130321208","name":"官场乡"},{"code":"130321209","name":"茨榆山乡"},{"code":"130321210","name":"平方子乡"},{"code":"130321211","name":"安子岭乡"},{"code":"130321212","name":"朱杖子乡"},{"code":"130321213","name":"草碾乡"},{"code":"130321217","name":"三拨子乡"},{"code":"130321218","name":"凉水河乡"}]},{"code":"130322","name":"昌黎县","children":[{"code":"130322100","name":"昌黎镇"},{"code":"130322101","name":"靖安镇"},{"code":"130322102","name":"安山镇"},{"code":"130322103","name":"龙家店镇"},{"code":"130322104","name":"泥井镇"},{"code":"130322105","name":"大蒲河镇"},{"code":"130322106","name":"新集镇"},{"code":"130322107","name":"刘台庄镇"},{"code":"130322108","name":"茹荷镇"},{"code":"130322109","name":"朱各庄镇"},{"code":"130322110","name":"荒佃庄镇"},{"code":"130322201","name":"团林乡"},{"code":"130322202","name":"葛条港乡"},{"code":"130322203","name":"马坨店乡"},{"code":"130322206","name":"两山乡"},{"code":"130322207","name":"十里铺乡"}]},{"code":"130324","name":"卢龙县","children":[{"code":"130324100","name":"卢龙镇"},{"code":"130324101","name":"潘庄镇"},{"code":"130324102","name":"燕河营镇"},{"code":"130324103","name":"双望镇"},{"code":"130324104","name":"刘田各庄镇"},{"code":"130324105","name":"石门镇"},{"code":"130324106","name":"木井镇"},{"code":"130324107","name":"陈官屯镇"},{"code":"130324108","name":"蛤泊镇"},{"code":"130324200","name":"下寨乡"},{"code":"130324201","name":"刘家营乡"},{"code":"130324203","name":"印庄乡"}]},{"code":"130371","name":"秦皇岛市经济技术开发区","children":[{"code":"130371005","name":"船厂路街道"},{"code":"130371011","name":"珠江道街道"},{"code":"130371012","name":"黄河道街道"},{"code":"130371013","name":"腾飞路街道"},{"code":"130371200","name":"渤海乡"}]},{"code":"130372","name":"北戴河新区","children":[{"code":"130372001","name":"南戴河街道"},{"code":"130372400","name":"大蒲河管理处"},{"code":"130372401","name":"团林管理处"},{"code":"130372402","name":"留守营管理处"}]}]},{"code":"1304","name":"邯郸市","children":[{"code":"130402","name":"邯山区","children":[{"code":"130402001","name":"火磨街道"},{"code":"130402002","name":"陵园路街道"},{"code":"130402003","name":"光明路街道"},{"code":"130402004","name":"滏东街道"},{"code":"130402005","name":"罗城头街道"},{"code":"130402006","name":"渚河路街道"},{"code":"130402007","name":"浴新南街道"},{"code":"130402008","name":"农林路街道"},{"code":"130402009","name":"贸东街道"},{"code":"130402010","name":"贸西街道"},{"code":"130402011","name":"盛和路街道"},{"code":"130402101","name":"北张庄镇"},{"code":"130402102","name":"河沙镇镇"},{"code":"130402200","name":"马庄乡"},{"code":"130402201","name":"南堡乡"},{"code":"130402202","name":"代召乡"}]},{"code":"130403","name":"丛台区","children":[{"code":"130403001","name":"丛台西街道"},{"code":"130403002","name":"联纺西街道"},{"code":"130403003","name":"联纺东街道"},{"code":"130403004","name":"光明桥街道"},{"code":"130403005","name":"丛台东街道"},{"code":"130403006","name":"四季青街道"},{"code":"130403007","name":"和平街道"},{"code":"130403008","name":"中华街道"},{"code":"130403009","name":"人民路街道"},{"code":"130403010","name":"柳林桥街道"},{"code":"130403101","name":"黄粱梦镇"},{"code":"130403200","name":"苏曹乡"},{"code":"130403205","name":"三陵乡"},{"code":"130403206","name":"南吕固乡"},{"code":"130403207","name":"兼庄乡"}]},{"code":"130404","name":"复兴区","children":[{"code":"130404001","name":"胜利桥街道"},{"code":"130404002","name":"百家村街道"},{"code":"130404003","name":"铁路大院街道"},{"code":"130404004","name":"化林路街道"},{"code":"130404005","name":"庞村街道"},{"code":"130404006","name":"二六七二街道"},{"code":"130404007","name":"石化街道"},{"code":"130404100","name":"户村镇"},{"code":"130404200","name":"彭家寨乡"},{"code":"130404201","name":"康庄乡"}]},{"code":"130406","name":"峰峰矿区","children":[{"code":"130406001","name":"滏阳东路街道"},{"code":"130406100","name":"临水镇"},{"code":"130406101","name":"峰峰镇"},{"code":"130406102","name":"新坡镇"},{"code":"130406103","name":"大社镇"},{"code":"130406104","name":"和村镇"},{"code":"130406105","name":"义井镇"},{"code":"130406106","name":"彭城镇"},{"code":"130406107","name":"界城镇"},{"code":"130406108","name":"大峪镇"},{"code":"130406200","name":"西固义乡"}]},{"code":"130407","name":"肥乡区","children":[{"code":"130407100","name":"肥乡镇"},{"code":"130407101","name":"天台山镇"},{"code":"130407102","name":"辛安镇镇"},{"code":"130407103","name":"大寺上镇"},{"code":"130407104","name":"东漳堡镇"},{"code":"130407105","name":"毛演堡镇"},{"code":"130407106","name":"西吕营镇"},{"code":"130407203","name":"元固乡"},{"code":"130407206","name":"旧店乡"}]},{"code":"130408","name":"永年区","children":[{"code":"130408100","name":"临洺关镇"},{"code":"130408101","name":"大北汪镇"},{"code":"130408102","name":"张西堡镇"},{"code":"130408103","name":"广府镇"},{"code":"130408105","name":"永合会镇"},{"code":"130408106","name":"刘营镇"},{"code":"130408107","name":"西苏镇"},{"code":"130408108","name":"讲武镇"},{"code":"130408109","name":"东杨庄镇"},{"code":"130408201","name":"界河店乡"},{"code":"130408203","name":"刘汉乡"},{"code":"130408204","name":"正西乡"},{"code":"130408206","name":"曲陌乡"},{"code":"130408207","name":"辛庄堡乡"},{"code":"130408208","name":"小龙马乡"},{"code":"130408211","name":"西河庄乡"},{"code":"130408213","name":"西阳城乡"}]},{"code":"130423","name":"临漳县","children":[{"code":"130423100","name":"临漳镇"},{"code":"130423101","name":"南东坊镇"},{"code":"130423102","name":"孙陶集镇"},{"code":"130423103","name":"柳园镇"},{"code":"130423104","name":"称勾集镇"},{"code":"130423105","name":"邺城镇"},{"code":"130423106","name":"章里集镇"},{"code":"130423200","name":"狄邱乡"},{"code":"130423201","name":"张村集乡"},{"code":"130423202","name":"西羊羔乡"},{"code":"130423204","name":"杜村集乡"},{"code":"130423206","name":"习文乡"},{"code":"130423207","name":"砖寨营乡"},{"code":"130423208","name":"柏鹤集乡"}]},{"code":"130424","name":"成安县","children":[{"code":"130424100","name":"成安镇"},{"code":"130424101","name":"商城镇"},{"code":"130424102","name":"漳河店镇"},{"code":"130424103","name":"李家疃镇"},{"code":"130424104","name":"北乡义镇"},{"code":"130424105","name":"道东堡镇"},{"code":"130424200","name":"辛义乡"},{"code":"130424201","name":"柏寺营乡"},{"code":"130424204","name":"长巷乡"}]},{"code":"130425","name":"大名县","children":[{"code":"130425100","name":"大名镇"},{"code":"130425101","name":"杨桥镇"},{"code":"130425102","name":"万堤镇"},{"code":"130425103","name":"龙王庙镇"},{"code":"130425104","name":"束馆镇"},{"code":"130425105","name":"金滩镇"},{"code":"130425106","name":"沙圪塔镇"},{"code":"130425107","name":"大街镇"},{"code":"130425108","name":"铺上镇"},{"code":"130425109","name":"孙甘店镇"},{"code":"130425201","name":"王村乡"},{"code":"130425203","name":"黄金堤乡"},{"code":"130425205","name":"旧治乡"},{"code":"130425206","name":"西未庄乡"},{"code":"130425208","name":"西付集乡"},{"code":"130425209","name":"埝头乡"},{"code":"130425210","name":"北峰乡"},{"code":"130425211","name":"张铁集乡"},{"code":"130425212","name":"红庙乡"},{"code":"130425213","name":"营镇回族乡"}]},{"code":"130426","name":"涉县","children":[{"code":"130426001","name":"平安街道"},{"code":"130426101","name":"河南店镇"},{"code":"130426102","name":"索堡镇"},{"code":"130426103","name":"西戌镇"},{"code":"130426104","name":"井店镇"},{"code":"130426105","name":"更乐镇"},{"code":"130426106","name":"固新镇"},{"code":"130426107","name":"西达镇"},{"code":"130426108","name":"偏城镇"},{"code":"130426200","name":"神头乡"},{"code":"130426201","name":"辽城乡"},{"code":"130426202","name":"偏店乡"},{"code":"130426203","name":"龙虎乡"},{"code":"130426204","name":"木井乡"},{"code":"130426205","name":"关防乡"},{"code":"130426206","name":"合漳乡"},{"code":"130426207","name":"鹿头乡"},{"code":"130426400","name":"涉城镇"}]},{"code":"130427","name":"磁县","children":[{"code":"130427100","name":"磁州镇"},{"code":"130427103","name":"讲武城镇"},{"code":"130427104","name":"岳城镇"},{"code":"130427105","name":"观台镇"},{"code":"130427107","name":"白土镇"},{"code":"130427108","name":"黄沙镇"},{"code":"130427200","name":"路村营乡"},{"code":"130427204","name":"时村营乡"},{"code":"130427207","name":"陶泉乡"},{"code":"130427208","name":"都党乡"},{"code":"130427209","name":"北贾壁乡"}]},{"code":"130430","name":"邱县","children":[{"code":"130430100","name":"新马头镇"},{"code":"130430101","name":"邱城镇"},{"code":"130430102","name":"梁二庄镇"},{"code":"130430103","name":"香城固镇"},{"code":"130430104","name":"古城营镇"},{"code":"130430201","name":"南辛店乡"},{"code":"130430204","name":"陈村回族乡"}]},{"code":"130431","name":"鸡泽县","children":[{"code":"130431100","name":"鸡泽镇"},{"code":"130431101","name":"小寨镇"},{"code":"130431102","name":"双塔镇"},{"code":"130431103","name":"曹庄镇"},{"code":"130431104","name":"浮图店镇"},{"code":"130431105","name":"吴官营镇"},{"code":"130431202","name":"风正乡"}]},{"code":"130432","name":"广平县","children":[{"code":"130432100","name":"广平镇"},{"code":"130432101","name":"平固店镇"},{"code":"130432102","name":"胜营镇"},{"code":"130432103","name":"南阳堡镇"},{"code":"130432104","name":"十里铺镇"},{"code":"130432105","name":"南韩镇"},{"code":"130432106","name":"东张孟镇"}]},{"code":"130433","name":"馆陶县","children":[{"code":"130433100","name":"馆陶镇"},{"code":"130433101","name":"房寨镇"},{"code":"130433102","name":"柴堡镇"},{"code":"130433103","name":"魏僧寨镇"},{"code":"130433200","name":"寿山寺乡"},{"code":"130433201","name":"王桥乡"},{"code":"130433202","name":"南徐村乡"},{"code":"130433203","name":"路桥乡"}]},{"code":"130434","name":"魏县","children":[{"code":"130434100","name":"魏城镇"},{"code":"130434101","name":"德政镇"},{"code":"130434102","name":"北皋镇"},{"code":"130434103","name":"双井镇"},{"code":"130434104","name":"牙里镇"},{"code":"130434105","name":"车往镇"},{"code":"130434106","name":"回隆镇"},{"code":"130434107","name":"张二庄镇"},{"code":"130434108","name":"东代固镇"},{"code":"130434109","name":"院堡镇"},{"code":"130434110","name":"棘针寨镇"},{"code":"130434111","name":"南双庙镇"},{"code":"130434112","name":"边马镇"},{"code":"130434113","name":"泊口镇"},{"code":"130434114","name":"仕望集镇"},{"code":"130434202","name":"沙口集乡"},{"code":"130434203","name":"野胡拐乡"},{"code":"130434205","name":"前大磨乡"},{"code":"130434208","name":"大辛庄乡"},{"code":"130434209","name":"大马村乡"},{"code":"130434212","name":"北台头乡"}]},{"code":"130435","name":"曲周县","children":[{"code":"130435100","name":"曲周镇"},{"code":"130435101","name":"安寨镇"},{"code":"130435102","name":"侯村镇"},{"code":"130435103","name":"河南疃镇"},{"code":"130435104","name":"第四疃镇"},{"code":"130435105","name":"白寨镇"},{"code":"130435200","name":"槐桥乡"},{"code":"130435201","name":"南里岳乡"},{"code":"130435203","name":"大河道乡"},{"code":"130435204","name":"依庄乡"}]},{"code":"130471","name":"邯郸经济技术开发区","children":[{"code":"130471001","name":"开发区街道"},{"code":"130471100","name":"尚璧镇"},{"code":"130471101","name":"南沿村镇"},{"code":"130471200","name":"小西堡乡"},{"code":"130471201","name":"姚寨乡"}]},{"code":"130473","name":"邯郸冀南新区","children":[{"code":"130473001","name":"城南街道"},{"code":"130473100","name":"高臾镇"},{"code":"130473101","name":"西光禄镇"},{"code":"130473102","name":"林坛镇"},{"code":"130473103","name":"马头镇"},{"code":"130473200","name":"辛庄营乡"},{"code":"130473201","name":"花官营乡"},{"code":"130473202","name":"台城乡"},{"code":"130473203","name":"南城乡"}]},{"code":"130481","name":"武安市","children":[{"code":"130481100","name":"武安镇"},{"code":"130481101","name":"康二城镇"},{"code":"130481102","name":"午汲镇"},{"code":"130481103","name":"磁山镇"},{"code":"130481104","name":"伯延镇"},{"code":"130481105","name":"淑村镇"},{"code":"130481106","name":"大同镇"},{"code":"130481107","name":"邑城镇"},{"code":"130481108","name":"矿山镇"},{"code":"130481109","name":"贺进镇"},{"code":"130481110","name":"阳邑镇"},{"code":"130481111","name":"徘徊镇"},{"code":"130481112","name":"冶陶镇"},{"code":"130481200","name":"上团城乡"},{"code":"130481201","name":"北安庄乡"},{"code":"130481202","name":"北安乐乡"},{"code":"130481203","name":"西土山乡"},{"code":"130481204","name":"西寺庄乡"},{"code":"130481205","name":"活水乡"},{"code":"130481206","name":"石洞乡"},{"code":"130481207","name":"管陶乡"},{"code":"130481208","name":"马家庄乡"},{"code":"130481400","name":"河北武安工业园区"}]}]},{"code":"1305","name":"邢台市","children":[{"code":"130502","name":"襄都区","children":[{"code":"130502001","name":"南长街街道"},{"code":"130502002","name":"北大街街道"},{"code":"130502003","name":"西大街街道"},{"code":"130502004","name":"西门里街道"},{"code":"130502005","name":"泉东街道"},{"code":"130502006","name":"豫让桥街道"},{"code":"130502100","name":"东郭村镇"},{"code":"130502101","name":"祝村镇"},{"code":"130502103","name":"晏家屯镇"},{"code":"130502200","name":"大梁庄乡"}]},{"code":"130503","name":"信都区","children":[{"code":"130503001","name":"钢铁路街道"},{"code":"130503002","name":"中兴路街道"},{"code":"130503003","name":"达活泉街道"},{"code":"130503004","name":"张宽街道"},{"code":"130503005","name":"章村街道"},{"code":"130503006","name":"中华大街街道"},{"code":"130503007","name":"团结路街道"},{"code":"130503008","name":"泉西街道"},{"code":"130503100","name":"南大郭镇"},{"code":"130503101","name":"李村镇"},{"code":"130503102","name":"南石门镇"},{"code":"130503103","name":"羊范镇"},{"code":"130503104","name":"皇寺镇"},{"code":"130503105","name":"会宁镇"},{"code":"130503106","name":"西黄村镇"},{"code":"130503107","name":"路罗镇"},{"code":"130503108","name":"将军墓镇"},{"code":"130503109","name":"浆水镇"},{"code":"130503110","name":"宋家庄镇"},{"code":"130503202","name":"太子井乡"},{"code":"130503203","name":"龙泉寺乡"},{"code":"130503204","name":"北小庄乡"},{"code":"130503205","name":"城计头乡"},{"code":"130503206","name":"白岸乡"},{"code":"130503207","name":"冀家村乡"}]},{"code":"130505","name":"任泽区","children":[{"code":"130505100","name":"任城镇"},{"code":"130505101","name":"邢家湾镇"},{"code":"130505102","name":"辛店镇"},{"code":"130505103","name":"天口镇"},{"code":"130505200","name":"西固城乡"},{"code":"130505201","name":"永福庄乡"},{"code":"130505202","name":"大屯乡"},{"code":"130505203","name":"骆庄乡"}]},{"code":"130506","name":"南和区","children":[{"code":"130506100","name":"和阳镇"},{"code":"130506101","name":"贾宋镇"},{"code":"130506102","name":"郝桥镇"},{"code":"130506103","name":"三思镇"},{"code":"130506104","name":"河郭镇"},{"code":"130506200","name":"东三召乡"},{"code":"130506201","name":"阎里乡"},{"code":"130506203","name":"史召乡"}]},{"code":"130522","name":"临城县","children":[{"code":"130522100","name":"临城镇"},{"code":"130522101","name":"东镇镇"},{"code":"130522102","name":"西竖镇"},{"code":"130522103","name":"郝庄镇"},{"code":"130522104","name":"黑城镇"},{"code":"130522201","name":"鸭鸽营乡"},{"code":"130522203","name":"石城乡"},{"code":"130522205","name":"赵庄乡"}]},{"code":"130523","name":"内丘县","children":[{"code":"130523100","name":"内丘镇"},{"code":"130523101","name":"大孟村镇"},{"code":"130523102","name":"金店镇"},{"code":"130523103","name":"官庄镇"},{"code":"130523104","name":"柳林镇"},{"code":"130523200","name":"五郭店乡"},{"code":"130523203","name":"南赛乡"},{"code":"130523204","name":"獐獏乡"},{"code":"130523205","name":"侯家庄乡"}]},{"code":"130524","name":"柏乡县","children":[{"code":"130524100","name":"柏乡镇"},{"code":"130524101","name":"固城店镇"},{"code":"130524102","name":"西汪镇"},{"code":"130524103","name":"龙华镇"},{"code":"130524200","name":"王家庄乡"},{"code":"130524203","name":"内步乡"}]},{"code":"130525","name":"隆尧县","children":[{"code":"130525100","name":"隆尧镇"},{"code":"130525101","name":"魏家庄镇"},{"code":"130525102","name":"尹村镇"},{"code":"130525103","name":"山口镇"},{"code":"130525104","name":"莲子镇镇"},{"code":"130525105","name":"固城镇"},{"code":"130525106","name":"东良镇"},{"code":"130525200","name":"北楼乡"},{"code":"130525202","name":"双碑乡"},{"code":"130525203","name":"牛家桥乡"},{"code":"130525204","name":"千户营乡"},{"code":"130525205","name":"大张家庄乡"},{"code":"130525400","name":"柳行农场"}]},{"code":"130528","name":"宁晋县","children":[{"code":"130528001","name":"宁北街道"},{"code":"130528100","name":"凤凰镇"},{"code":"130528101","name":"河渠镇"},{"code":"130528102","name":"北河庄镇"},{"code":"130528103","name":"耿庄桥镇"},{"code":"130528104","name":"东汪镇"},{"code":"130528105","name":"贾家口镇"},{"code":"130528106","name":"四芝兰镇"},{"code":"130528107","name":"大陆村镇"},{"code":"130528108","name":"苏家庄镇"},{"code":"130528109","name":"换马店镇"},{"code":"130528110","name":"唐邱镇"},{"code":"130528111","name":"大曹庄镇"},{"code":"130528112","name":"侯口镇"},{"code":"130528202","name":"纪昌庄乡"},{"code":"130528205","name":"北鱼乡"},{"code":"130528208","name":"徐家河乡"},{"code":"130528401","name":"大曹庄管理区"}]},{"code":"130529","name":"巨鹿县","children":[{"code":"130529100","name":"巨鹿镇"},{"code":"130529101","name":"王虎寨镇"},{"code":"130529102","name":"西郭城镇"},{"code":"130529103","name":"官亭镇"},{"code":"130529104","name":"阎疃镇"},{"code":"130529105","name":"小吕寨镇"},{"code":"130529106","name":"苏家营镇"},{"code":"130529107","name":"观寨镇"},{"code":"130529200","name":"堤村乡"},{"code":"130529201","name":"张王疃乡"}]},{"code":"130530","name":"新河县","children":[{"code":"130530100","name":"新河镇"},{"code":"130530101","name":"寻寨镇"},{"code":"130530200","name":"白神首乡"},{"code":"130530201","name":"荆家庄乡"},{"code":"130530202","name":"西流乡"},{"code":"130530203","name":"仁让里乡"}]},{"code":"130531","name":"广宗县","children":[{"code":"130531100","name":"广宗镇"},{"code":"130531101","name":"冯家寨镇"},{"code":"130531102","name":"北塘疃镇"},{"code":"130531103","name":"核桃园镇"},{"code":"130531200","name":"葫芦乡"},{"code":"130531201","name":"大平台乡"},{"code":"130531202","name":"件只乡"},{"code":"130531204","name":"东召乡"}]},{"code":"130532","name":"平乡县","children":[{"code":"130532001","name":"中华路街道"},{"code":"130532101","name":"平乡镇"},{"code":"130532102","name":"河古庙镇"},{"code":"130532200","name":"节固乡"},{"code":"130532201","name":"油召乡"},{"code":"130532202","name":"田付村乡"},{"code":"130532203","name":"寻召乡"}]},{"code":"130533","name":"威县","children":[{"code":"130533100","name":"洺州镇"},{"code":"130533101","name":"梨园屯镇"},{"code":"130533102","name":"章台镇"},{"code":"130533103","name":"侯贯镇"},{"code":"130533104","name":"七级镇"},{"code":"130533105","name":"贺营镇"},{"code":"130533106","name":"方家营镇"},{"code":"130533107","name":"常庄镇"},{"code":"130533108","name":"第什营镇"},{"code":"130533109","name":"贺钊镇"},{"code":"130533110","name":"赵村镇"},{"code":"130533111","name":"固献镇"},{"code":"130533202","name":"枣园乡"},{"code":"130533206","name":"张家营乡"},{"code":"130533207","name":"常屯乡"},{"code":"130533209","name":"高公庄乡"}]},{"code":"130534","name":"清河县","children":[{"code":"130534100","name":"葛仙庄镇"},{"code":"130534101","name":"连庄镇"},{"code":"130534102","name":"油坊镇"},{"code":"130534103","name":"谢炉镇"},{"code":"130534104","name":"王官庄镇"},{"code":"130534105","name":"坝营镇"}]},{"code":"130535","name":"临西县","children":[{"code":"130535100","name":"临西镇"},{"code":"130535101","name":"河西镇"},{"code":"130535102","name":"下堡寺镇"},{"code":"130535103","name":"尖塚镇"},{"code":"130535104","name":"老官寨镇"},{"code":"130535105","name":"吕寨镇"},{"code":"130535106","name":"大刘庄镇"},{"code":"130535200","name":"东枣园乡"},{"code":"130535203","name":"摇鞍镇乡"},{"code":"130535400","name":"轴承工业园区"}]},{"code":"130571","name":"河北邢台经济开发区","children":[{"code":"130571100","name":"东汪镇"},{"code":"130571101","name":"王快镇"},{"code":"130571103","name":"沙河城镇"},{"code":"130571104","name":"留村镇"},{"code":"130571400","name":"市高新技术开发区"}]},{"code":"130581","name":"南宫市","children":[{"code":"130581001","name":"凤岗街道"},{"code":"130581002","name":"南杜街道"},{"code":"130581003","name":"北胡街道"},{"code":"130581004","name":"西丁街道"},{"code":"130581100","name":"苏村镇"},{"code":"130581101","name":"大高村镇"},{"code":"130581102","name":"垂杨镇"},{"code":"130581103","name":"明化镇"},{"code":"130581104","name":"段芦头镇"},{"code":"130581105","name":"紫冢镇"},{"code":"130581200","name":"大村乡"},{"code":"130581201","name":"南便村乡"},{"code":"130581202","name":"大屯乡"},{"code":"130581203","name":"王道寨乡"},{"code":"130581204","name":"薛吴村乡"}]},{"code":"130582","name":"沙河市","children":[{"code":"130582001","name":"褡裢街道"},{"code":"130582002","name":"桥东街道"},{"code":"130582003","name":"桥西街道"},{"code":"130582004","name":"赞善街道"},{"code":"130582005","name":"周庄街道"},{"code":"130582101","name":"新城镇"},{"code":"130582102","name":"白塔镇"},{"code":"130582103","name":"十里亭镇"},{"code":"130582104","name":"綦村镇"},{"code":"130582201","name":"册井乡"},{"code":"130582202","name":"刘石岗乡"},{"code":"130582203","name":"柴关乡"},{"code":"130582204","name":"蝉房乡"}]}]},{"code":"1306","name":"保定市","children":[{"code":"130602","name":"竞秀区","children":[{"code":"130602001","name":"先锋街道"},{"code":"130602002","name":"新市场街道"},{"code":"130602003","name":"东风路街道"},{"code":"130602004","name":"建南街道"},{"code":"130602005","name":"韩村北路街道"},{"code":"130602100","name":"大激店镇"},{"code":"130602200","name":"颉庄乡"},{"code":"130602201","name":"富昌乡"},{"code":"130602202","name":"韩村乡"},{"code":"130602203","name":"南奇乡"}]},{"code":"130606","name":"莲池区","children":[{"code":"130606001","name":"和平里街道"},{"code":"130606002","name":"五四路街道"},{"code":"130606003","name":"西关街道"},{"code":"130606004","name":"中华路街道"},{"code":"130606005","name":"东关街道"},{"code":"130606006","name":"联盟街道"},{"code":"130606007","name":"红星街道"},{"code":"130606008","name":"裕华街道"},{"code":"130606009","name":"永华街道"},{"code":"130606010","name":"南关街道"},{"code":"130606100","name":"百楼镇"},{"code":"130606200","name":"韩庄乡"},{"code":"130606201","name":"东金庄乡"},{"code":"130606203","name":"杨庄乡"},{"code":"130606204","name":"南大园乡"},{"code":"130606205","name":"焦庄乡"},{"code":"130606206","name":"五尧乡"}]},{"code":"130607","name":"满城区","children":[{"code":"130607001","name":"惠阳街道"},{"code":"130607100","name":"满城镇"},{"code":"130607101","name":"大册营镇"},{"code":"130607102","name":"神星镇"},{"code":"130607103","name":"南韩村镇"},{"code":"130607104","name":"方顺桥镇"},{"code":"130607105","name":"于家庄镇"},{"code":"130607203","name":"要庄乡"},{"code":"130607204","name":"白龙乡"},{"code":"130607205","name":"石井乡"},{"code":"130607206","name":"坨南乡"},{"code":"130607207","name":"刘家台乡"},{"code":"130607400","name":"河北满城经济开发区"}]},{"code":"130608","name":"清苑区","children":[{"code":"130608100","name":"清苑镇"},{"code":"130608101","name":"冉庄镇"},{"code":"130608102","name":"阳城镇"},{"code":"130608103","name":"魏村镇"},{"code":"130608104","name":"温仁镇"},{"code":"130608105","name":"张登镇"},{"code":"130608106","name":"大庄镇"},{"code":"130608107","name":"臧村镇"},{"code":"130608108","name":"望亭镇"},{"code":"130608109","name":"东闾镇"},{"code":"130608200","name":"白团乡"},{"code":"130608201","name":"北店乡"},{"code":"130608202","name":"石桥乡"},{"code":"130608203","name":"李庄乡"},{"code":"130608204","name":"北王力乡"},{"code":"130608206","name":"何桥乡"},{"code":"130608207","name":"孙村乡"},{"code":"130608208","name":"阎庄乡"},{"code":"130608400","name":"河北清苑经济开发区"}]},{"code":"130609","name":"徐水区","children":[{"code":"130609100","name":"安肃镇"},{"code":"130609101","name":"崔庄镇"},{"code":"130609102","name":"大因镇"},{"code":"130609103","name":"遂城镇"},{"code":"130609104","name":"高林村镇"},{"code":"130609105","name":"大王店镇"},{"code":"130609106","name":"漕河镇"},{"code":"130609107","name":"东史端镇"},{"code":"130609108","name":"留村镇"},{"code":"130609109","name":"正村镇"},{"code":"130609203","name":"户木乡"},{"code":"130609204","name":"瀑河乡"},{"code":"130609205","name":"东釜山乡"},{"code":"130609206","name":"义联庄乡"}]},{"code":"130623","name":"涞水县","children":[{"code":"130623100","name":"涞水镇"},{"code":"130623101","name":"永阳镇"},{"code":"130623102","name":"义安镇"},{"code":"130623103","name":"石亭镇"},{"code":"130623104","name":"赵各庄镇"},{"code":"130623105","name":"九龙镇"},{"code":"130623106","name":"三坡镇"},{"code":"130623107","name":"一渡镇"},{"code":"130623108","name":"明义镇"},{"code":"130623109","name":"王村镇"},{"code":"130623110","name":"娄村镇"},{"code":"130623111","name":"东文山镇"},{"code":"130623205","name":"其中口乡"},{"code":"130623206","name":"龙门乡"},{"code":"130623207","name":"胡家庄乡"},{"code":"130623401","name":"涞水县城区社区管理办公室"}]},{"code":"130624","name":"阜平县","children":[{"code":"130624100","name":"阜平镇"},{"code":"130624101","name":"龙泉关镇"},{"code":"130624102","name":"平阳镇"},{"code":"130624103","name":"城南庄镇"},{"code":"130624104","name":"天生桥镇"},{"code":"130624105","name":"王林口镇"},{"code":"130624106","name":"砂窝镇"},{"code":"130624107","name":"北果园镇"},{"code":"130624202","name":"台峪乡"},{"code":"130624203","name":"大台乡"},{"code":"130624204","name":"史家寨乡"},{"code":"130624206","name":"吴王口乡"},{"code":"130624207","name":"夏庄乡"},{"code":"130624400","name":"河北阜平经济开发区"}]},{"code":"130626","name":"定兴县","children":[{"code":"130626100","name":"定兴镇"},{"code":"130626101","name":"固城镇"},{"code":"130626102","name":"贤寓镇"},{"code":"130626103","name":"北河镇"},{"code":"130626104","name":"天宫寺镇"},{"code":"130626105","name":"小朱庄镇"},{"code":"130626106","name":"姚村镇"},{"code":"130626107","name":"杨村镇"},{"code":"130626200","name":"东落堡乡"},{"code":"130626201","name":"高里乡"},{"code":"130626202","name":"张家庄乡"},{"code":"130626204","name":"肖村乡"},{"code":"130626205","name":"柳卓乡"},{"code":"130626207","name":"北田乡"},{"code":"130626208","name":"北南蔡乡"},{"code":"130626209","name":"李郁庄乡"}]},{"code":"130627","name":"唐县","children":[{"code":"130627100","name":"仁厚镇"},{"code":"130627101","name":"王京镇"},{"code":"130627102","name":"高昌镇"},{"code":"130627103","name":"北罗镇"},{"code":"130627104","name":"白合镇"},{"code":"130627105","name":"军城镇"},{"code":"130627106","name":"川里镇"},{"code":"130627107","name":"长古城镇"},{"code":"130627108","name":"罗庄镇"},{"code":"130627109","name":"北店头镇"},{"code":"130627201","name":"都亭乡"},{"code":"130627202","name":"南店头乡"},{"code":"130627205","name":"雹水乡"},{"code":"130627206","name":"大洋乡"},{"code":"130627207","name":"迷城乡"},{"code":"130627208","name":"齐家佐乡"},{"code":"130627209","name":"羊角乡"},{"code":"130627210","name":"石门乡"},{"code":"130627211","name":"黄石口乡"},{"code":"130627212","name":"倒马关乡"}]},{"code":"130628","name":"高阳县","children":[{"code":"130628001","name":"高阳县锦华街道"},{"code":"130628101","name":"庞口镇"},{"code":"130628102","name":"西演镇"},{"code":"130628103","name":"邢家南镇"},{"code":"130628104","name":"晋庄镇"},{"code":"130628105","name":"小王果庄镇"},{"code":"130628106","name":"蒲口镇"},{"code":"130628107","name":"庞家佐镇"},{"code":"130628400","name":"高阳县经济开发区"}]},{"code":"130629","name":"容城县","children":[{"code":"130629100","name":"容城镇"},{"code":"130629101","name":"小里镇"},{"code":"130629102","name":"南张镇"},{"code":"130629103","name":"大河镇"},{"code":"130629104","name":"晾马台镇"},{"code":"130629200","name":"八于乡"},{"code":"130629201","name":"贾光乡"},{"code":"130629203","name":"平王乡"}]},{"code":"130630","name":"涞源县","children":[{"code":"130630100","name":"涞源镇"},{"code":"130630101","name":"银坊镇"},{"code":"130630102","name":"走马驿镇"},{"code":"130630103","name":"水堡镇"},{"code":"130630104","name":"王安镇"},{"code":"130630105","name":"杨家庄镇"},{"code":"130630106","name":"白石山镇"},{"code":"130630107","name":"南屯镇"},{"code":"130630108","name":"泉坊镇"},{"code":"130630109","name":"北石佛镇"},{"code":"130630201","name":"南马庄乡"},{"code":"130630203","name":"金家井乡"},{"code":"130630204","name":"留家庄乡"},{"code":"130630205","name":"上庄乡"},{"code":"130630206","name":"东团堡乡"},{"code":"130630207","name":"塔崖驿乡"},{"code":"130630208","name":"乌龙沟乡"}]},{"code":"130631","name":"望都县","children":[{"code":"130631100","name":"望都镇"},{"code":"130631101","name":"固店镇"},{"code":"130631102","name":"贾村镇"},{"code":"130631103","name":"中韩庄镇"},{"code":"130631104","name":"寺庄镇"},{"code":"130631105","name":"赵庄镇"},{"code":"130631106","name":"高岭镇"},{"code":"130631202","name":"黑堡乡"},{"code":"130631400","name":"望都经济开发区"}]},{"code":"130632","name":"安新县","children":[{"code":"130632100","name":"安新镇"},{"code":"130632101","name":"大王镇"},{"code":"130632102","name":"三台镇"},{"code":"130632103","name":"端村镇"},{"code":"130632104","name":"赵北口镇"},{"code":"130632105","name":"同口镇"},{"code":"130632106","name":"刘李庄镇"},{"code":"130632107","name":"安州镇"},{"code":"130632108","name":"老河头镇"},{"code":"130632200","name":"圈头乡"},{"code":"130632201","name":"寨里乡"},{"code":"130632202","name":"芦庄乡"},{"code":"130632203","name":"龙化乡"}]},{"code":"130633","name":"易县","children":[{"code":"130633100","name":"易州镇"},{"code":"130633101","name":"梁格庄镇"},{"code":"130633102","name":"西陵镇"},{"code":"130633103","name":"裴山镇"},{"code":"130633104","name":"塘湖镇"},{"code":"130633105","name":"狼牙山镇"},{"code":"130633106","name":"良岗镇"},{"code":"130633107","name":"紫荆关镇"},{"code":"130633108","name":"高村镇"},{"code":"130633200","name":"桥头乡"},{"code":"130633201","name":"白马乡"},{"code":"130633202","name":"流井乡"},{"code":"130633204","name":"高陌乡"},{"code":"130633205","name":"大龙华乡"},{"code":"130633206","name":"安格庄乡"},{"code":"130633207","name":"凌云册乡"},{"code":"130633208","name":"西山北乡"},{"code":"130633209","name":"尉都乡"},{"code":"130633210","name":"独乐乡"},{"code":"130633211","name":"七峪乡"},{"code":"130633212","name":"富岗乡"},{"code":"130633213","name":"坡仓乡"},{"code":"130633214","name":"牛岗乡"},{"code":"130633215","name":"桥家河乡"},{"code":"130633216","name":"甘河净乡"},{"code":"130633217","name":"蔡家峪乡"},{"code":"130633218","name":"南城司乡"},{"code":"130633400","name":"恋乡太行水镇"}]},{"code":"130634","name":"曲阳县","children":[{"code":"130634100","name":"恒州镇"},{"code":"130634101","name":"灵山镇"},{"code":"130634102","name":"燕赵镇"},{"code":"130634103","name":"羊平镇"},{"code":"130634104","name":"文德镇"},{"code":"130634105","name":"晓林镇"},{"code":"130634106","name":"邸村镇"},{"code":"130634107","name":"齐村镇"},{"code":"130634108","name":"孝墓镇"},{"code":"130634109","name":"产德镇"},{"code":"130634200","name":"路庄子乡"},{"code":"130634201","name":"下河乡"},{"code":"130634202","name":"庄窠乡"},{"code":"130634205","name":"东旺乡"},{"code":"130634210","name":"党城乡"},{"code":"130634211","name":"郎家庄乡"},{"code":"130634212","name":"范家庄乡"},{"code":"130634213","name":"北台乡"}]},{"code":"130635","name":"蠡县","children":[{"code":"130635100","name":"蠡吾镇"},{"code":"130635101","name":"留史镇"},{"code":"130635102","name":"大百尺镇"},{"code":"130635103","name":"辛兴镇"},{"code":"130635104","name":"北郭丹镇"},{"code":"130635105","name":"万安镇"},{"code":"130635106","name":"桑园镇"},{"code":"130635107","name":"南庄镇"},{"code":"130635108","name":"大曲堤镇"},{"code":"130635109","name":"鲍墟镇"},{"code":"130635110","name":"小陈镇"},{"code":"130635201","name":"林堡乡"},{"code":"130635202","name":"北埝头乡"}]},{"code":"130636","name":"顺平县","children":[{"code":"130636100","name":"蒲阳镇"},{"code":"130636101","name":"高于铺镇"},{"code":"130636102","name":"腰山镇"},{"code":"130636103","name":"蒲上镇"},{"code":"130636104","name":"神南镇"},{"code":"130636105","name":"安阳镇"},{"code":"130636201","name":"白云乡"},{"code":"130636202","name":"河口乡"},{"code":"130636204","name":"台鱼乡"},{"code":"130636205","name":"大悲乡"}]},{"code":"130637","name":"博野县","children":[{"code":"130637100","name":"博野镇"},{"code":"130637101","name":"小店镇"},{"code":"130637102","name":"程委镇"},{"code":"130637103","name":"东墟镇"},{"code":"130637104","name":"北杨镇"},{"code":"130637105","name":"城东镇"},{"code":"130637106","name":"南小王镇"}]},{"code":"130638","name":"雄县","children":[{"code":"130638100","name":"雄州镇"},{"code":"130638101","name":"昝岗镇"},{"code":"130638102","name":"大营镇"},{"code":"130638103","name":"龙湾镇"},{"code":"130638104","name":"朱各庄镇"},{"code":"130638105","name":"米家务镇"},{"code":"130638106","name":"鄚州镇"},{"code":"130638107","name":"苟各庄镇"},{"code":"130638200","name":"北沙口乡"},{"code":"130638203","name":"双堂乡"},{"code":"130638204","name":"张岗乡"},{"code":"130638205","name":"七间房乡"}]},{"code":"130671","name":"保定高新技术产业开发区","children":[{"code":"130671202","name":"贤台乡"},{"code":"130671205","name":"大马坊乡"},{"code":"130671400","name":"保定国家高新区"}]},{"code":"130672","name":"保定白沟新城","children":[{"code":"130672103","name":"白沟镇"}]},{"code":"130681","name":"涿州市","children":[{"code":"130681001","name":"双塔街道"},{"code":"130681002","name":"桃园街道"},{"code":"130681003","name":"清凉寺街道"},{"code":"130681100","name":"松林店镇"},{"code":"130681101","name":"码头镇"},{"code":"130681102","name":"东城坊镇"},{"code":"130681103","name":"高官庄镇"},{"code":"130681104","name":"东仙坡镇"},{"code":"130681105","name":"百尺竿镇"},{"code":"130681106","name":"义和庄镇"},{"code":"130681107","name":"刁窝镇"},{"code":"130681108","name":"林家屯镇"},{"code":"130681109","name":"豆庄镇"},{"code":"130681204","name":"孙家庄乡"},{"code":"130681400","name":"高新技术产业开发区"},{"code":"130681401","name":"京南经济开发区"},{"code":"130681402","name":"松林店经济开发区"}]},{"code":"130682","name":"定州市","children":[{"code":"130682001","name":"南城区街道"},{"code":"130682002","name":"北城区街道"},{"code":"130682003","name":"西城区街道"},{"code":"130682004","name":"长安路街道"},{"code":"130682100","name":"留早镇"},{"code":"130682101","name":"清风店镇"},{"code":"130682102","name":"庞村镇"},{"code":"130682103","name":"砖路镇"},{"code":"130682104","name":"明月店镇"},{"code":"130682105","name":"叮咛店镇"},{"code":"130682106","name":"东亭镇"},{"code":"130682107","name":"大辛庄镇"},{"code":"130682108","name":"东旺镇"},{"code":"130682109","name":"高蓬镇"},{"code":"130682110","name":"邢邑镇"},{"code":"130682111","name":"李亲顾镇"},{"code":"130682112","name":"子位镇"},{"code":"130682113","name":"开元镇"},{"code":"130682115","name":"周村镇"},{"code":"130682116","name":"息冢镇"},{"code":"130682203","name":"东留春乡"},{"code":"130682204","name":"号头庄回族乡"},{"code":"130682205","name":"杨家庄乡"},{"code":"130682206","name":"大鹿庄乡"},{"code":"130682208","name":"西城乡"}]},{"code":"130683","name":"安国市","children":[{"code":"130683001","name":"药都街道"},{"code":"130683002","name":"祁州路街道"},{"code":"130683101","name":"伍仁桥镇"},{"code":"130683102","name":"石佛镇"},{"code":"130683103","name":"郑章镇"},{"code":"130683104","name":"大五女镇"},{"code":"130683105","name":"西佛落镇"},{"code":"130683106","name":"西城镇"},{"code":"130683200","name":"明官店乡"},{"code":"130683201","name":"南娄底乡"},{"code":"130683204","name":"北段村乡"},{"code":"130683400","name":"现代中药工业园区"}]},{"code":"130684","name":"高碑店市","children":[{"code":"130684001","name":"和平街道"},{"code":"130684002","name":"军城街道"},{"code":"130684003","name":"东盛街道"},{"code":"130684004","name":"北城街道"},{"code":"130684005","name":"兴华路街道"},{"code":"130684100","name":"方官镇"},{"code":"130684101","name":"新城镇"},{"code":"130684102","name":"泗庄镇"},{"code":"130684104","name":"辛立庄镇"},{"code":"130684105","name":"东马营镇"},{"code":"130684106","name":"辛桥镇"},{"code":"130684107","name":"肖官营镇"},{"code":"130684108","name":"张六庄镇"},{"code":"130684109","name":"梁家营镇"}]}]},{"code":"1307","name":"张家口市","children":[{"code":"130702","name":"桥东区","children":[{"code":"130702001","name":"红旗楼街道"},{"code":"130702002","name":"胜利北路街道"},{"code":"130702003","name":"五一路街道"},{"code":"130702004","name":"花园街街道"},{"code":"130702005","name":"工业路街道"},{"code":"130702101","name":"姚家庄镇"},{"code":"130702102","name":"大仓盖镇"},{"code":"130702202","name":"东望山乡"}]},{"code":"130703","name":"桥西区","children":[{"code":"130703001","name":"新华街街道"},{"code":"130703002","name":"大境门街道"},{"code":"130703003","name":"明德北街街道"},{"code":"130703004","name":"明德南街街道"},{"code":"130703005","name":"堡子里街道"},{"code":"130703006","name":"南营坊街道"},{"code":"130703007","name":"工人新村街道"},{"code":"130703100","name":"东窑子镇"}]},{"code":"130705","name":"宣化区","children":[{"code":"130705001","name":"天泰寺街道"},{"code":"130705002","name":"皇城街道"},{"code":"130705003","name":"南关街道"},{"code":"130705004","name":"南大街街道"},{"code":"130705005","name":"大北街街道"},{"code":"130705006","name":"工业街街道"},{"code":"130705007","name":"建国街街道"},{"code":"130705100","name":"庞家堡镇"},{"code":"130705101","name":"深井镇"},{"code":"130705102","name":"崞村镇"},{"code":"130705104","name":"洋河南镇"},{"code":"130705106","name":"贾家营镇"},{"code":"130705107","name":"顾家营镇"},{"code":"130705108","name":"赵川镇"},{"code":"130705109","name":"江家屯镇"},{"code":"130705200","name":"河子西乡"},{"code":"130705201","name":"春光乡"},{"code":"130705202","name":"侯家庙乡"},{"code":"130705204","name":"李家堡乡"},{"code":"130705205","name":"王家湾乡"},{"code":"130705206","name":"塔儿村乡"}]},{"code":"130706","name":"下花园区","children":[{"code":"130706001","name":"城镇街道"},{"code":"130706002","name":"煤矿街道"},{"code":"130706200","name":"花园乡"},{"code":"130706201","name":"辛庄子乡"},{"code":"130706202","name":"定方水乡"},{"code":"130706203","name":"段家堡乡"}]},{"code":"130708","name":"万全区","children":[{"code":"130708100","name":"孔家庄镇"},{"code":"130708101","name":"万全镇"},{"code":"130708102","name":"洗马林镇"},{"code":"130708103","name":"郭磊庄镇"},{"code":"130708200","name":"膳房堡乡"},{"code":"130708201","name":"北新屯乡"},{"code":"130708202","name":"宣平堡乡"},{"code":"130708203","name":"高庙堡乡"},{"code":"130708204","name":"旧堡乡"},{"code":"130708205","name":"安家堡乡"},{"code":"130708206","name":"北沙城乡"},{"code":"130708400","name":"孔家庄街道"},{"code":"130708401","name":"宣平街道"}]},{"code":"130709","name":"崇礼区","children":[{"code":"130709001","name":"西湾子街道"},{"code":"130709100","name":"西湾子镇"},{"code":"130709101","name":"高家营镇"},{"code":"130709200","name":"四台嘴乡"},{"code":"130709201","name":"红旗营乡"},{"code":"130709202","name":"石窑子乡"},{"code":"130709203","name":"驿马图乡"},{"code":"130709204","name":"石嘴子乡"},{"code":"130709205","name":"狮子沟乡"},{"code":"130709206","name":"清三营乡"},{"code":"130709207","name":"白旗乡"}]},{"code":"130722","name":"张北县","children":[{"code":"130722100","name":"张北镇"},{"code":"130722101","name":"公会镇"},{"code":"130722102","name":"二台镇"},{"code":"130722103","name":"大囫囵镇"},{"code":"130722104","name":"小二台镇"},{"code":"130722106","name":"油篓沟镇"},{"code":"130722107","name":"大河镇"},{"code":"130722200","name":"台路沟乡"},{"code":"130722202","name":"馒头营乡"},{"code":"130722203","name":"二泉井乡"},{"code":"130722204","name":"单晶河乡"},{"code":"130722206","name":"海流图乡"},{"code":"130722207","name":"两面井乡"},{"code":"130722208","name":"大西湾乡"},{"code":"130722209","name":"郝家营乡"},{"code":"130722210","name":"白庙滩乡"},{"code":"130722212","name":"战海乡"},{"code":"130722213","name":"三号乡"}]},{"code":"130723","name":"康保县","children":[{"code":"130723100","name":"康保镇"},{"code":"130723101","name":"张纪镇"},{"code":"130723102","name":"土城子镇"},{"code":"130723103","name":"邓油坊镇"},{"code":"130723104","name":"李家地镇"},{"code":"130723105","name":"照阳河镇"},{"code":"130723106","name":"屯垦镇"},{"code":"130723200","name":"闫油坊乡"},{"code":"130723201","name":"丹清河乡"},{"code":"130723202","name":"哈咇嘎乡"},{"code":"130723203","name":"二号卜乡"},{"code":"130723204","name":"芦家营乡"},{"code":"130723205","name":"忠义乡"},{"code":"130723206","name":"处长地乡"},{"code":"130723207","name":"满德堂乡"},{"code":"130723500","name":"康保牧场"},{"code":"130723501","name":"屯垦林场"}]},{"code":"130724","name":"沽源县","children":[{"code":"130724100","name":"平定堡镇"},{"code":"130724101","name":"小厂镇"},{"code":"130724102","name":"黄盖淖镇"},{"code":"130724103","name":"九连城镇"},{"code":"130724200","name":"高山堡乡"},{"code":"130724201","name":"小河子乡"},{"code":"130724202","name":"二道渠乡"},{"code":"130724203","name":"大二号回族乡"},{"code":"130724204","name":"闪电河乡"},{"code":"130724205","name":"长梁乡"},{"code":"130724206","name":"丰源店乡"},{"code":"130724207","name":"西辛营乡"},{"code":"130724208","name":"莲花滩乡"},{"code":"130724209","name":"白土窑乡"}]},{"code":"130725","name":"尚义县","children":[{"code":"130725100","name":"南壕堑镇"},{"code":"130725101","name":"大青沟镇"},{"code":"130725102","name":"八道沟镇"},{"code":"130725103","name":"红土梁镇"},{"code":"130725104","name":"小蒜沟镇"},{"code":"130725105","name":"三工地镇"},{"code":"130725106","name":"满井镇"},{"code":"130725200","name":"大营盘乡"},{"code":"130725201","name":"大苏计乡"},{"code":"130725202","name":"石井乡"},{"code":"130725205","name":"七甲乡"},{"code":"130725206","name":"套里庄乡"},{"code":"130725207","name":"甲石河乡"},{"code":"130725208","name":"下马圈乡"}]},{"code":"130726","name":"蔚县","children":[{"code":"130726100","name":"蔚州镇"},{"code":"130726101","name":"代王城镇"},{"code":"130726102","name":"西合营镇"},{"code":"130726103","name":"吉家庄镇"},{"code":"130726104","name":"白乐镇"},{"code":"130726105","name":"暖泉镇"},{"code":"130726106","name":"南留庄镇"},{"code":"130726107","name":"北水泉镇"},{"code":"130726108","name":"桃花镇"},{"code":"130726109","name":"阳眷镇"},{"code":"130726110","name":"宋家庄镇"},{"code":"130726200","name":"下宫村乡"},{"code":"130726202","name":"南杨庄乡"},{"code":"130726203","name":"柏树乡"},{"code":"130726204","name":"常宁乡"},{"code":"130726205","name":"涌泉庄乡"},{"code":"130726206","name":"杨庄窠乡"},{"code":"130726207","name":"南岭庄乡"},{"code":"130726208","name":"陈家洼乡"},{"code":"130726209","name":"黄梅乡"},{"code":"130726210","name":"白草村乡"},{"code":"130726211","name":"草沟堡乡"}]},{"code":"130727","name":"阳原县","children":[{"code":"130727100","name":"西城镇"},{"code":"130727101","name":"东城镇"},{"code":"130727102","name":"化稍营镇"},{"code":"130727103","name":"揣骨疃镇"},{"code":"130727104","name":"东井集镇"},{"code":"130727200","name":"要家庄乡"},{"code":"130727201","name":"东坊城堡乡"},{"code":"130727202","name":"井儿沟乡"},{"code":"130727203","name":"三马坊乡"},{"code":"130727204","name":"高墙乡"},{"code":"130727205","name":"大田洼乡"},{"code":"130727206","name":"辛堡乡"},{"code":"130727207","name":"马圈堡乡"},{"code":"130727208","name":"浮图讲乡"}]},{"code":"130728","name":"怀安县","children":[{"code":"130728100","name":"柴沟堡镇"},{"code":"130728101","name":"左卫镇"},{"code":"130728102","name":"头百户镇"},{"code":"130728103","name":"怀安城镇"},{"code":"130728200","name":"渡口堡乡"},{"code":"130728201","name":"第六屯乡"},{"code":"130728202","name":"西湾堡乡"},{"code":"130728203","name":"西沙城乡"},{"code":"130728204","name":"太平庄乡"},{"code":"130728205","name":"王虎屯乡"},{"code":"130728206","name":"第三堡乡"}]},{"code":"130730","name":"怀来县","children":[{"code":"130730100","name":"沙城镇"},{"code":"130730101","name":"北辛堡镇"},{"code":"130730102","name":"新保安镇"},{"code":"130730103","name":"东花园镇"},{"code":"130730104","name":"官厅镇"},{"code":"130730105","name":"桑园镇"},{"code":"130730106","name":"存瑞镇"},{"code":"130730107","name":"土木镇"},{"code":"130730108","name":"大黄庄镇"},{"code":"130730109","name":"西八里镇"},{"code":"130730110","name":"小南辛堡镇"},{"code":"130730200","name":"狼山乡"},{"code":"130730203","name":"鸡鸣驿乡"},{"code":"130730205","name":"东八里乡"},{"code":"130730207","name":"瑞云观乡"},{"code":"130730208","name":"孙庄子乡"},{"code":"130730210","name":"王家楼回族乡"}]},{"code":"130731","name":"涿鹿县","children":[{"code":"130731100","name":"涿鹿镇"},{"code":"130731101","name":"张家堡镇"},{"code":"130731102","name":"武家沟镇"},{"code":"130731103","name":"五堡镇"},{"code":"130731104","name":"保岱镇"},{"code":"130731105","name":"矾山镇"},{"code":"130731106","name":"大堡镇"},{"code":"130731107","name":"河东镇"},{"code":"130731108","name":"东小庄镇"},{"code":"130731109","name":"辉耀镇"},{"code":"130731110","name":"大河南镇"},{"code":"130731111","name":"温泉屯镇"},{"code":"130731112","name":"蟒石口镇"},{"code":"130731201","name":"栾庄乡"},{"code":"130731204","name":"黑山寺乡"},{"code":"130731205","name":"卧佛寺乡"},{"code":"130731206","name":"谢家堡乡"}]},{"code":"130732","name":"赤城县","children":[{"code":"130732100","name":"赤城镇"},{"code":"130732101","name":"田家窑镇"},{"code":"130732102","name":"龙关镇"},{"code":"130732103","name":"雕鹗镇"},{"code":"130732104","name":"独石口镇"},{"code":"130732105","name":"白草镇"},{"code":"130732106","name":"龙门所镇"},{"code":"130732107","name":"后城镇"},{"code":"130732108","name":"东卯镇"},{"code":"130732200","name":"炮梁乡"},{"code":"130732201","name":"大海陀乡"},{"code":"130732202","name":"镇宁堡乡"},{"code":"130732203","name":"马营乡"},{"code":"130732204","name":"云州乡"},{"code":"130732205","name":"三道川乡"},{"code":"130732206","name":"东万口乡"},{"code":"130732207","name":"茨营子乡"},{"code":"130732208","name":"样田乡"}]},{"code":"130771","name":"张家口经济开发区","children":[{"code":"130771001","name":"南站街道"},{"code":"130771002","name":"马路东街道"},{"code":"130771100","name":"老鸦庄镇"},{"code":"130771101","name":"沈家屯镇"},{"code":"130771102","name":"姚家房镇"},{"code":"130771103","name":"沙岭子镇"}]},{"code":"130772","name":"张家口市察北管理区","children":[{"code":"130772105","name":"沙沟镇"},{"code":"130772215","name":"宇宙营乡"},{"code":"130772401","name":"黄山管理处"},{"code":"130772402","name":"石门管理处"},{"code":"130772403","name":"乌兰管理处"},{"code":"130772404","name":"金沙管理处"},{"code":"130772405","name":"白塔管理处"}]},{"code":"130773","name":"张家口市塞北管理区","children":[{"code":"130773501","name":"榆树沟管理处"},{"code":"130773502","name":"沙梁子管理处"},{"code":"130773503","name":"小城子管理处"},{"code":"130773504","name":"东大门管理处"}]}]},{"code":"1308","name":"承德市","children":[{"code":"130802","name":"双桥区","children":[{"code":"130802001","name":"西大街街道"},{"code":"130802002","name":"头道牌楼街道"},{"code":"130802003","name":"潘家沟街道"},{"code":"130802004","name":"中华路街道"},{"code":"130802005","name":"新华路街道"},{"code":"130802006","name":"石洞子沟街道"},{"code":"130802007","name":"桥东街道"},{"code":"130802100","name":"水泉沟镇"},{"code":"130802101","name":"狮子沟镇"},{"code":"130802102","name":"牛圈子沟镇"},{"code":"130802103","name":"大石庙镇"},{"code":"130802105","name":"双峰寺镇"}]},{"code":"130803","name":"双滦区","children":[{"code":"130803001","name":"元宝山街道"},{"code":"130803002","name":"钢城街道"},{"code":"130803003","name":"秀水街道"},{"code":"130803100","name":"双塔山镇"},{"code":"130803101","name":"滦河镇"},{"code":"130803102","name":"大庙镇"},{"code":"130803103","name":"偏桥子镇"},{"code":"130803104","name":"西地镇"},{"code":"130803105","name":"陈栅子镇"}]},{"code":"130804","name":"鹰手营子矿区","children":[{"code":"130804001","name":"铁北路街道"},{"code":"130804100","name":"鹰手营子镇"},{"code":"130804101","name":"北马圈子镇"},{"code":"130804102","name":"寿王坟镇"},{"code":"130804103","name":"汪家庄镇"}]},{"code":"130821","name":"承德县","children":[{"code":"130821100","name":"下板城镇"},{"code":"130821102","name":"甲山镇"},{"code":"130821103","name":"六沟镇"},{"code":"130821104","name":"三沟镇"},{"code":"130821105","name":"头沟镇"},{"code":"130821106","name":"高寺台镇"},{"code":"130821107","name":"鞍匠镇"},{"code":"130821108","name":"三家镇"},{"code":"130821109","name":"磴上镇"},{"code":"130821110","name":"上谷镇"},{"code":"130821111","name":"新杖子镇"},{"code":"130821112","name":"石灰窑镇"},{"code":"130821200","name":"东小白旗乡"},{"code":"130821202","name":"刘杖子乡"},{"code":"130821204","name":"孟家院乡"},{"code":"130821205","name":"大营子乡"},{"code":"130821206","name":"八家乡"},{"code":"130821208","name":"满杖子乡"},{"code":"130821210","name":"五道河乡"},{"code":"130821211","name":"岔沟乡"},{"code":"130821212","name":"岗子满族乡"},{"code":"130821214","name":"两家满族乡"},{"code":"130821216","name":"仓子乡"}]},{"code":"130822","name":"兴隆县","children":[{"code":"130822100","name":"兴隆镇"},{"code":"130822101","name":"半壁山镇"},{"code":"130822102","name":"挂兰峪镇"},{"code":"130822103","name":"青松岭镇"},{"code":"130822104","name":"六道河镇"},{"code":"130822105","name":"平安堡镇"},{"code":"130822106","name":"北营房镇"},{"code":"130822107","name":"孤山子镇"},{"code":"130822108","name":"蓝旗营镇"},{"code":"130822109","name":"雾灵山镇"},{"code":"130822110","name":"李家营镇"},{"code":"130822111","name":"大杖子镇"},{"code":"130822112","name":"三道河镇"},{"code":"130822113","name":"蘑菇峪镇"},{"code":"130822114","name":"大水泉镇"},{"code":"130822200","name":"南天门满族乡"},{"code":"130822202","name":"八卦岭满族乡"},{"code":"130822203","name":"陡子峪乡"},{"code":"130822204","name":"上石洞乡"},{"code":"130822211","name":"安子岭乡"}]},{"code":"130824","name":"滦平县","children":[{"code":"130824001","name":"中兴路街道"},{"code":"130824100","name":"滦平镇"},{"code":"130824101","name":"长山峪镇"},{"code":"130824102","name":"红旗镇"},{"code":"130824103","name":"金沟屯镇"},{"code":"130824104","name":"虎什哈镇"},{"code":"130824105","name":"巴克什营镇"},{"code":"130824106","name":"张百湾镇"},{"code":"130824107","name":"付营子镇"},{"code":"130824108","name":"大屯镇"},{"code":"130824109","name":"火斗山镇"},{"code":"130824110","name":"两间房镇"},{"code":"130824111","name":"小营镇"},{"code":"130824200","name":"平坊满族乡"},{"code":"130824201","name":"安纯沟门满族乡"},{"code":"130824206","name":"西沟满族乡"},{"code":"130824207","name":"邓厂满族乡"},{"code":"130824208","name":"五道营子满族乡"},{"code":"130824209","name":"马营子满族乡"},{"code":"130824210","name":"付家店满族乡"}]},{"code":"130825","name":"隆化县","children":[{"code":"130825001","name":"安州街道"},{"code":"130825100","name":"苔山镇"},{"code":"130825101","name":"韩麻营镇"},{"code":"130825102","name":"中关镇"},{"code":"130825103","name":"七家镇"},{"code":"130825104","name":"汤头沟镇"},{"code":"130825105","name":"张三营镇"},{"code":"130825106","name":"唐三营镇"},{"code":"130825107","name":"蓝旗镇"},{"code":"130825108","name":"步古沟镇"},{"code":"130825109","name":"郭家屯镇"},{"code":"130825110","name":"茅荆坝镇"},{"code":"130825200","name":"荒地乡"},{"code":"130825201","name":"章吉营乡"},{"code":"130825203","name":"尹家营满族乡"},{"code":"130825204","name":"庙子沟蒙古族满族乡"},{"code":"130825205","name":"偏坡营满族乡"},{"code":"130825206","name":"山湾乡"},{"code":"130825207","name":"八达营蒙古族乡"},{"code":"130825208","name":"太平庄满族乡"},{"code":"130825209","name":"旧屯满族乡"},{"code":"130825210","name":"西阿超满族蒙古族乡"},{"code":"130825212","name":"碱房乡"},{"code":"130825213","name":"韩家店乡"},{"code":"130825214","name":"湾沟门乡"}]},{"code":"130826","name":"丰宁满族自治县","children":[{"code":"130826001","name":"新丰路街道"},{"code":"130826100","name":"大阁镇"},{"code":"130826101","name":"大滩镇"},{"code":"130826102","name":"鱼儿山镇"},{"code":"130826103","name":"土城镇"},{"code":"130826104","name":"黄旗镇"},{"code":"130826105","name":"凤山镇"},{"code":"130826106","name":"波罗诺镇"},{"code":"130826107","name":"黑山咀镇"},{"code":"130826108","name":"天桥镇"},{"code":"130826109","name":"胡麻营镇"},{"code":"130826110","name":"将军营镇"},{"code":"130826200","name":"万胜永乡"},{"code":"130826201","name":"四岔口乡"},{"code":"130826202","name":"苏家店乡"},{"code":"130826203","name":"外沟门乡"},{"code":"130826204","name":"草原乡"},{"code":"130826205","name":"窟窿山乡"},{"code":"130826206","name":"小坝子乡"},{"code":"130826207","name":"五道营乡"},{"code":"130826209","name":"选将营乡"},{"code":"130826210","name":"西官营乡"},{"code":"130826211","name":"王营乡"},{"code":"130826212","name":"北头营乡"},{"code":"130826214","name":"石人沟乡"},{"code":"130826215","name":"汤河乡"},{"code":"130826216","name":"杨木栅子乡"}]},{"code":"130827","name":"宽城满族自治县","children":[{"code":"130827100","name":"宽城镇"},{"code":"130827101","name":"龙须门镇"},{"code":"130827102","name":"峪耳崖镇"},{"code":"130827103","name":"板城镇"},{"code":"130827104","name":"汤道河镇"},{"code":"130827105","name":"桲罗台镇"},{"code":"130827106","name":"碾子峪镇"},{"code":"130827107","name":"亮甲台镇"},{"code":"130827108","name":"化皮溜子镇"},{"code":"130827109","name":"松岭镇"},{"code":"130827201","name":"塌山乡"},{"code":"130827203","name":"孟子岭乡"},{"code":"130827204","name":"独石沟乡"},{"code":"130827207","name":"铧尖乡"},{"code":"130827208","name":"东黄花川乡"},{"code":"130827210","name":"苇子沟乡"},{"code":"130827211","name":"大字沟乡"},{"code":"130827212","name":"大石柱子乡"}]},{"code":"130828","name":"围场满族蒙古族自治县","children":[{"code":"130828100","name":"围场镇"},{"code":"130828101","name":"四合永镇"},{"code":"130828102","name":"克勒沟镇"},{"code":"130828103","name":"棋盘山镇"},{"code":"130828104","name":"半截塔镇"},{"code":"130828105","name":"朝阳地镇"},{"code":"130828106","name":"朝阳湾镇"},{"code":"130828107","name":"腰站镇"},{"code":"130828108","name":"龙头山镇"},{"code":"130828109","name":"新拨镇"},{"code":"130828110","name":"御道口镇"},{"code":"130828111","name":"城子镇"},{"code":"130828200","name":"道坝子乡"},{"code":"130828203","name":"黄土坎乡"},{"code":"130828204","name":"四道沟乡"},{"code":"130828205","name":"兰旗卡伦乡"},{"code":"130828206","name":"银窝沟乡"},{"code":"130828207","name":"新地乡"},{"code":"130828208","name":"广发永乡"},{"code":"130828209","name":"育太和乡"},{"code":"130828210","name":"郭家湾乡"},{"code":"130828211","name":"杨家湾乡"},{"code":"130828212","name":"大唤起乡"},{"code":"130828213","name":"哈里哈乡"},{"code":"130828215","name":"张家湾乡"},{"code":"130828216","name":"宝元栈乡"},{"code":"130828217","name":"山湾子乡"},{"code":"130828218","name":"三义永乡"},{"code":"130828219","name":"姜家店乡"},{"code":"130828220","name":"下伙房乡"},{"code":"130828221","name":"燕格柏乡"},{"code":"130828222","name":"牌楼乡"},{"code":"130828224","name":"老窝铺乡"},{"code":"130828226","name":"石桌子乡"},{"code":"130828227","name":"大头山乡"},{"code":"130828228","name":"南山嘴乡"},{"code":"130828229","name":"西龙头乡"},{"code":"130828450","name":"塞罕坝机械林场"},{"code":"130828500","name":"国营御道口牧场"}]},{"code":"130871","name":"承德高新技术产业开发区","children":[{"code":"130871104","name":"冯营子镇"},{"code":"130871106","name":"上板城镇"}]},{"code":"130881","name":"平泉市","children":[{"code":"130881100","name":"平泉镇"},{"code":"130881101","name":"黄土梁子镇"},{"code":"130881102","name":"榆树林子镇"},{"code":"130881103","name":"杨树岭镇"},{"code":"130881104","name":"七沟镇"},{"code":"130881105","name":"小寺沟镇"},{"code":"130881106","name":"党坝镇"},{"code":"130881107","name":"卧龙镇"},{"code":"130881108","name":"南五十家子镇"},{"code":"130881109","name":"北五十家子镇"},{"code":"130881110","name":"桲椤树镇"},{"code":"130881111","name":"柳溪镇"},{"code":"130881112","name":"平北镇"},{"code":"130881113","name":"青河镇"},{"code":"130881114","name":"台头山镇"},{"code":"130881200","name":"王土房乡"},{"code":"130881203","name":"七家岱满族乡"},{"code":"130881206","name":"茅兰沟满族蒙古族乡"},{"code":"130881210","name":"道虎沟乡"}]}]},{"code":"1309","name":"沧州市","children":[{"code":"130902","name":"新华区","children":[{"code":"130902001","name":"建设北街街道"},{"code":"130902002","name":"车站街道"},{"code":"130902003","name":"南大街街道"},{"code":"130902004","name":"东环街道"},{"code":"130902005","name":"道东街道"},{"code":"130902200","name":"小赵庄乡"}]},{"code":"130903","name":"运河区","children":[{"code":"130903001","name":"水月寺街道"},{"code":"130903002","name":"南环中路街道"},{"code":"130903003","name":"南湖街道"},{"code":"130903004","name":"市场街道"},{"code":"130903005","name":"西环中街街道"},{"code":"130903006","name":"公园街道"},{"code":"130903100","name":"小王庄镇"},{"code":"130903101","name":"南陈屯镇"}]},{"code":"130921","name":"沧县","children":[{"code":"130921100","name":"旧州镇"},{"code":"130921101","name":"兴济镇"},{"code":"130921102","name":"杜生镇"},{"code":"130921103","name":"崔尔庄镇"},{"code":"130921104","name":"李天木镇"},{"code":"130921105","name":"纸房头镇"},{"code":"130921106","name":"姚官屯镇"},{"code":"130921200","name":"薛官屯乡"},{"code":"130921201","name":"捷地回族乡"},{"code":"130921202","name":"张官屯乡"},{"code":"130921204","name":"风化店乡"},{"code":"130921206","name":"杜林回族乡"},{"code":"130921207","name":"汪家铺乡"},{"code":"130921208","name":"刘家庙乡"},{"code":"130921209","name":"仵龙堂乡"},{"code":"130921210","name":"大官厅乡"},{"code":"130921211","name":"高川乡"},{"code":"130921212","name":"黄递铺乡"},{"code":"130921213","name":"大褚村回族乡"}]},{"code":"130922","name":"青县","children":[{"code":"130922100","name":"清州镇"},{"code":"130922101","name":"金牛镇"},{"code":"130922102","name":"新兴镇"},{"code":"130922103","name":"流河镇"},{"code":"130922104","name":"木门店镇"},{"code":"130922105","name":"马厂镇"},{"code":"130922106","name":"盘古镇"},{"code":"130922107","name":"曹寺镇"},{"code":"130922200","name":"上伍乡"},{"code":"130922203","name":"陈嘴乡"},{"code":"130922400","name":"青县农场"}]},{"code":"130923","name":"东光县","children":[{"code":"130923100","name":"东光镇"},{"code":"130923101","name":"连镇镇"},{"code":"130923102","name":"找王镇"},{"code":"130923103","name":"秦村镇"},{"code":"130923104","name":"灯明寺镇"},{"code":"130923105","name":"南霞口镇"},{"code":"130923106","name":"大单镇"},{"code":"130923107","name":"龙王李镇"},{"code":"130923201","name":"于桥乡"}]},{"code":"130924","name":"海兴县","children":[{"code":"130924100","name":"苏基镇"},{"code":"130924101","name":"辛集镇"},{"code":"130924102","name":"高湾镇"},{"code":"130924103","name":"赵毛陶镇"},{"code":"130924201","name":"香坊乡"},{"code":"130924202","name":"小山乡"},{"code":"130924203","name":"张会亭乡"},{"code":"130924400","name":"海兴县农场"},{"code":"130924401","name":"青先农场"},{"code":"130924402","name":"青锋农场"}]},{"code":"130925","name":"盐山县","children":[{"code":"130925100","name":"盐山镇"},{"code":"130925101","name":"望树镇"},{"code":"130925102","name":"庆云镇"},{"code":"130925103","name":"韩集镇"},{"code":"130925104","name":"千童镇"},{"code":"130925105","name":"圣佛镇"},{"code":"130925106","name":"边务镇"},{"code":"130925107","name":"小庄镇"},{"code":"130925108","name":"杨集镇"},{"code":"130925201","name":"小营乡"},{"code":"130925203","name":"孟店乡"},{"code":"130925204","name":"常庄乡"}]},{"code":"130926","name":"肃宁县","children":[{"code":"130926100","name":"肃宁镇"},{"code":"130926101","name":"梁家村镇"},{"code":"130926102","name":"窝北镇"},{"code":"130926103","name":"尚村镇"},{"code":"130926104","name":"万里镇"},{"code":"130926105","name":"师素镇"},{"code":"130926106","name":"河北留善寺镇"},{"code":"130926107","name":"付家佐镇"},{"code":"130926205","name":"邵庄乡"}]},{"code":"130927","name":"南皮县","children":[{"code":"130927100","name":"南皮镇"},{"code":"130927101","name":"冯家口镇"},{"code":"130927102","name":"寨子镇"},{"code":"130927103","name":"鲍官屯镇"},{"code":"130927104","name":"王寺镇"},{"code":"130927105","name":"乌马营镇"},{"code":"130927106","name":"潞灌镇"},{"code":"130927200","name":"大浪淀乡"},{"code":"130927201","name":"刘八里乡"}]},{"code":"130928","name":"吴桥县","children":[{"code":"130928100","name":"桑园镇"},{"code":"130928101","name":"铁城镇"},{"code":"130928102","name":"于集镇"},{"code":"130928103","name":"梁集镇"},{"code":"130928104","name":"安陵镇"},{"code":"130928200","name":"曹家洼乡"},{"code":"130928201","name":"东宋门乡"},{"code":"130928202","name":"杨家寺乡"},{"code":"130928203","name":"沟店铺乡"},{"code":"130928204","name":"何庄乡"},{"code":"130928400","name":"吴桥经济技术开发区"}]},{"code":"130929","name":"献县","children":[{"code":"130929100","name":"乐寿镇"},{"code":"130929101","name":"淮镇镇"},{"code":"130929102","name":"郭庄镇"},{"code":"130929103","name":"河城街镇"},{"code":"130929104","name":"韩村镇"},{"code":"130929105","name":"陌南镇"},{"code":"130929106","name":"陈庄镇"},{"code":"130929107","name":"段村镇"},{"code":"130929108","name":"高官镇"},{"code":"130929109","name":"十五级镇"},{"code":"130929206","name":"商林乡"},{"code":"130929209","name":"张村乡"},{"code":"130929210","name":"临河乡"},{"code":"130929211","name":"小平王乡"},{"code":"130929213","name":"垒头乡"},{"code":"130929214","name":"南河头乡"},{"code":"130929215","name":"西城乡"},{"code":"130929216","name":"本斋回族乡"},{"code":"130929400","name":"梅庄洼农场"},{"code":"130929401","name":"献县经济开发区"}]},{"code":"130930","name":"孟村回族自治县","children":[{"code":"130930100","name":"孟村镇"},{"code":"130930101","name":"新县镇"},{"code":"130930102","name":"辛店镇"},{"code":"130930103","name":"高寨镇"},{"code":"130930200","name":"宋庄子乡"},{"code":"130930201","name":"牛进庄乡"}]},{"code":"130971","name":"河北沧州经济开发区","children":[{"code":"130971400","name":"开发区乡"}]},{"code":"130972","name":"沧州高新技术产业开发区","children":[{"code":"130972400","name":"高新乡"}]},{"code":"130973","name":"沧州渤海新区","children":[{"code":"130973206","name":"新村回族乡"},{"code":"130973400","name":"南大港管理区"},{"code":"130973401","name":"国营中捷农场"},{"code":"130973402","name":"港城街道"},{"code":"130973403","name":"临港化工园区"}]},{"code":"130981","name":"泊头市","children":[{"code":"130981001","name":"解放街道"},{"code":"130981002","name":"河东街道"},{"code":"130981003","name":"鼓楼街道"},{"code":"130981100","name":"泊镇"},{"code":"130981101","name":"交河镇"},{"code":"130981102","name":"齐桥镇"},{"code":"130981103","name":"寺门村镇"},{"code":"130981104","name":"郝村镇"},{"code":"130981105","name":"富镇镇"},{"code":"130981106","name":"文庙镇"},{"code":"130981107","name":"洼里王镇"},{"code":"130981108","name":"四营镇"},{"code":"130981201","name":"王武庄乡"},{"code":"130981202","name":"营子乡"},{"code":"130981204","name":"西辛店乡"},{"code":"130981400","name":"河北泊头经济开发区"}]},{"code":"130982","name":"任丘市","children":[{"code":"130982001","name":"新华路街道"},{"code":"130982002","name":"西环路街道"},{"code":"130982003","name":"永丰路街道"},{"code":"130982004","name":"中华路街道"},{"code":"130982005","name":"渤海路街道"},{"code":"130982006","name":"油建路街道"},{"code":"130982007","name":"会战道街道"},{"code":"130982100","name":"出岸镇"},{"code":"130982101","name":"石门桥镇"},{"code":"130982102","name":"吕公堡镇"},{"code":"130982103","name":"长丰镇"},{"code":"130982106","name":"梁召镇"},{"code":"130982107","name":"辛中驿镇"},{"code":"130982108","name":"麻家坞镇"},{"code":"130982109","name":"北辛庄镇"},{"code":"130982110","name":"议论堡镇"},{"code":"130982204","name":"青塔乡"},{"code":"130982207","name":"北汉乡"},{"code":"130982208","name":"于村乡"},{"code":"130982400","name":"华北石油管理局"},{"code":"130982500","name":"河北任丘经济开发区"}]},{"code":"130983","name":"黄骅市","children":[{"code":"130983001","name":"骅东街道"},{"code":"130983002","name":"骅中街道"},{"code":"130983003","name":"骅西街道"},{"code":"130983100","name":"黄骅镇"},{"code":"130983101","name":"南排河镇"},{"code":"130983102","name":"吕桥镇"},{"code":"130983103","name":"旧城镇"},{"code":"130983104","name":"齐家务镇"},{"code":"130983105","name":"滕庄子镇"},{"code":"130983106","name":"常郭镇"},{"code":"130983107","name":"羊二庄镇"},{"code":"130983204","name":"官庄乡"},{"code":"130983207","name":"羊三木回族乡"}]},{"code":"130984","name":"河间市","children":[{"code":"130984001","name":"瀛州路街道"},{"code":"130984002","name":"城垣西路街道"},{"code":"130984101","name":"米各庄镇"},{"code":"130984102","name":"景和镇"},{"code":"130984103","name":"卧佛堂镇"},{"code":"130984104","name":"束城镇"},{"code":"130984105","name":"留古寺镇"},{"code":"130984106","name":"沙河桥镇"},{"code":"130984107","name":"诗经村镇"},{"code":"130984108","name":"尊祖庄镇"},{"code":"130984109","name":"兴村镇"},{"code":"130984110","name":"行别营镇"},{"code":"130984111","name":"故仙镇"},{"code":"130984201","name":"黎民居乡"},{"code":"130984203","name":"沙洼乡"},{"code":"130984204","name":"西九吉乡"},{"code":"130984205","name":"北石槽乡"},{"code":"130984209","name":"时村乡"},{"code":"130984212","name":"龙华店乡"},{"code":"130984213","name":"果子洼回族乡"},{"code":"130984403","name":"河北河间经济开发区"}]}]},{"code":"1310","name":"廊坊市","children":[{"code":"131002","name":"安次区","children":[{"code":"131002001","name":"银河南路街道"},{"code":"131002002","name":"光明西道街道"},{"code":"131002003","name":"永华道街道"},{"code":"131002100","name":"落垡镇"},{"code":"131002101","name":"码头镇"},{"code":"131002102","name":"葛渔城镇"},{"code":"131002103","name":"东沽港镇"},{"code":"131002104","name":"调河头镇"},{"code":"131002105","name":"北史家务镇"},{"code":"131002106","name":"杨税务镇"},{"code":"131002201","name":"仇庄乡"},{"code":"131002400","name":"廊坊龙河高新技术产业开发区"},{"code":"131002401","name":"河北廊坊高新技术产业开发区"},{"code":"131002402","name":"河北廊坊龙港经济开发区"},{"code":"131002403","name":"河北安次经济开发区"}]},{"code":"131003","name":"广阳区","children":[{"code":"131003001","name":"银河北路街道"},{"code":"131003002","name":"爱民东道街道"},{"code":"131003003","name":"解放道街道"},{"code":"131003004","name":"新开路街道"},{"code":"131003005","name":"新源道街道"},{"code":"131003100","name":"南尖塔镇"},{"code":"131003101","name":"万庄镇"},{"code":"131003102","name":"九州镇"},{"code":"131003103","name":"北旺镇"},{"code":"131003500","name":"新世纪步行街服务中心"}]},{"code":"131022","name":"固安县","children":[{"code":"131022100","name":"固安镇"},{"code":"131022101","name":"宫村镇"},{"code":"131022102","name":"柳泉镇"},{"code":"131022103","name":"牛驼镇"},{"code":"131022104","name":"马庄镇"},{"code":"131022200","name":"东湾乡"},{"code":"131022201","name":"彭村乡"},{"code":"131022202","name":"渠沟乡"},{"code":"131022203","name":"礼让店乡"},{"code":"131022400","name":"固安温泉休闲商务产业园区"}]},{"code":"131023","name":"永清县","children":[{"code":"131023001","name":"城区街道"},{"code":"131023100","name":"永清镇"},{"code":"131023101","name":"韩村镇"},{"code":"131023102","name":"后奕镇"},{"code":"131023103","name":"别古庄镇"},{"code":"131023104","name":"里澜城镇"},{"code":"131023200","name":"管家务回族乡"},{"code":"131023201","name":"曹家务乡"},{"code":"131023202","name":"龙虎庄乡"},{"code":"131023203","name":"刘街乡"},{"code":"131023204","name":"三圣口乡"},{"code":"131023400","name":"河北永清经济开发区"},{"code":"131023401","name":"北京亦庄永清高新技术产业开发区"}]},{"code":"131024","name":"香河县","children":[{"code":"131024100","name":"淑阳镇"},{"code":"131024101","name":"蒋辛屯镇"},{"code":"131024102","name":"渠口镇"},{"code":"131024103","name":"安头屯镇"},{"code":"131024104","name":"安平镇"},{"code":"131024105","name":"刘宋镇"},{"code":"131024106","name":"五百户镇"},{"code":"131024107","name":"钱旺镇"},{"code":"131024108","name":"钳屯镇"},{"code":"131024500","name":"河北香河经济开发区"},{"code":"131024501","name":"香河新兴产业示范区"}]},{"code":"131025","name":"大城县","children":[{"code":"131025100","name":"平舒镇"},{"code":"131025101","name":"旺村镇"},{"code":"131025102","name":"大尚屯镇"},{"code":"131025103","name":"南赵扶镇"},{"code":"131025104","name":"留各庄镇"},{"code":"131025105","name":"权村镇"},{"code":"131025106","name":"里坦镇"},{"code":"131025107","name":"广安镇"},{"code":"131025108","name":"北魏镇"},{"code":"131025109","name":"臧屯镇"},{"code":"131025400","name":"河北大城经济开发区"}]},{"code":"131026","name":"文安县","children":[{"code":"131026100","name":"文安镇"},{"code":"131026101","name":"新镇镇"},{"code":"131026102","name":"苏桥镇"},{"code":"131026103","name":"大柳河镇"},{"code":"131026104","name":"左各庄镇"},{"code":"131026105","name":"滩里镇"},{"code":"131026106","name":"史各庄镇"},{"code":"131026107","name":"赵各庄镇"},{"code":"131026108","name":"兴隆宫镇"},{"code":"131026109","name":"大留镇镇"},{"code":"131026110","name":"孙氏镇"},{"code":"131026111","name":"德归镇"},{"code":"131026200","name":"大围河回族满族乡"}]},{"code":"131028","name":"大厂回族自治县","children":[{"code":"131028001","name":"北辰街道"},{"code":"131028100","name":"大厂镇"},{"code":"131028101","name":"夏垫镇"},{"code":"131028102","name":"祁各庄镇"},{"code":"131028103","name":"邵府镇"},{"code":"131028104","name":"陈府镇"},{"code":"131028400","name":"河北大厂高新技术产业开发区"}]},{"code":"131071","name":"廊坊经济技术开发区","children":[{"code":"131071450","name":"耀华道街道"},{"code":"131071451","name":"云鹏道街道"}]},{"code":"131081","name":"霸州市","children":[{"code":"131081001","name":"裕华街道"},{"code":"131081100","name":"霸州镇"},{"code":"131081101","name":"南孟镇"},{"code":"131081102","name":"信安镇"},{"code":"131081103","name":"堂二里镇"},{"code":"131081104","name":"煎茶铺镇"},{"code":"131081105","name":"胜芳镇"},{"code":"131081106","name":"杨芬港镇"},{"code":"131081107","name":"康仙庄镇"},{"code":"131081108","name":"王庄子镇"},{"code":"131081200","name":"岔河集乡"},{"code":"131081202","name":"东杨庄乡"},{"code":"131081204","name":"东段乡"}]},{"code":"131082","name":"三河市","children":[{"code":"131082001","name":"鼎盛东街道"},{"code":"131082002","name":"泃阳西街道"},{"code":"131082003","name":"行宫东街道"},{"code":"131082004","name":"迎宾北路街道"},{"code":"131082005","name":"燕顺路街道"},{"code":"131082006","name":"康城街道"},{"code":"131082100","name":"泃阳镇"},{"code":"131082101","name":"李旗庄镇"},{"code":"131082102","name":"杨庄镇"},{"code":"131082103","name":"皇庄镇"},{"code":"131082104","name":"新集镇"},{"code":"131082105","name":"段甲岭镇"},{"code":"131082106","name":"黄土庄镇"},{"code":"131082107","name":"高楼镇"},{"code":"131082108","name":"齐心庄镇"},{"code":"131082109","name":"燕郊镇"},{"code":"131082450","name":"燕郊高新技术产业开发区"},{"code":"131082451","name":"河北三河国家农业科技园区"}]}]},{"code":"1311","name":"衡水市","children":[{"code":"131102","name":"桃城区","children":[{"code":"131102001","name":"河西街道"},{"code":"131102002","name":"河东街道"},{"code":"131102003","name":"路北街道"},{"code":"131102004","name":"中华大街街道"},{"code":"131102100","name":"郑家河沿镇"},{"code":"131102101","name":"赵家圈镇"},{"code":"131102102","name":"邓庄镇"},{"code":"131102200","name":"何家庄乡"}]},{"code":"131103","name":"冀州区","children":[{"code":"131103100","name":"冀州镇"},{"code":"131103102","name":"官道李镇"},{"code":"131103103","name":"南午村镇"},{"code":"131103104","name":"周村镇"},{"code":"131103105","name":"码头李镇"},{"code":"131103106","name":"西王镇"},{"code":"131103200","name":"门家庄乡"},{"code":"131103201","name":"徐家庄乡"},{"code":"131103202","name":"北漳淮乡"},{"code":"131103203","name":"小寨乡"},{"code":"131103400","name":"社区建设办公室"}]},{"code":"131121","name":"枣强县","children":[{"code":"131121100","name":"枣强镇"},{"code":"131121101","name":"恩察镇"},{"code":"131121102","name":"大营镇"},{"code":"131121103","name":"嘉会镇"},{"code":"131121104","name":"马屯镇"},{"code":"131121105","name":"肖张镇"},{"code":"131121106","name":"张秀屯镇"},{"code":"131121107","name":"新屯镇"},{"code":"131121108","name":"唐林镇"},{"code":"131121202","name":"王均乡"},{"code":"131121204","name":"王常乡"}]},{"code":"131122","name":"武邑县","children":[{"code":"131122100","name":"武邑镇"},{"code":"131122101","name":"清凉店镇"},{"code":"131122102","name":"审坡镇"},{"code":"131122103","name":"赵桥镇"},{"code":"131122104","name":"韩庄镇"},{"code":"131122105","name":"肖桥头镇"},{"code":"131122106","name":"龙店镇"},{"code":"131122201","name":"圈头乡"},{"code":"131122203","name":"大紫塔乡"}]},{"code":"131123","name":"武强县","children":[{"code":"131123100","name":"武强镇"},{"code":"131123101","name":"街关镇"},{"code":"131123102","name":"周窝镇"},{"code":"131123103","name":"东孙庄镇"},{"code":"131123104","name":"豆村镇"},{"code":"131123201","name":"北代乡"}]},{"code":"131124","name":"饶阳县","children":[{"code":"131124100","name":"饶阳镇"},{"code":"131124101","name":"大尹村镇"},{"code":"131124102","name":"五公镇"},{"code":"131124103","name":"大官亭镇"},{"code":"131124104","name":"王同岳镇"},{"code":"131124105","name":"东里满镇"},{"code":"131124106","name":"留楚镇"}]},{"code":"131125","name":"安平县","children":[{"code":"131125100","name":"安平镇"},{"code":"131125101","name":"马店镇"},{"code":"131125102","name":"南王庄镇"},{"code":"131125103","name":"大子文镇"},{"code":"131125104","name":"东黄城镇"},{"code":"131125200","name":"大何庄乡"},{"code":"131125201","name":"程油子乡"},{"code":"131125202","name":"西两洼乡"},{"code":"131125400","name":"高新技术产业开发区"},{"code":"131125401","name":"社区建设办公室"}]},{"code":"131126","name":"故城县","children":[{"code":"131126100","name":"郑口镇"},{"code":"131126101","name":"夏庄镇"},{"code":"131126102","name":"青罕镇"},{"code":"131126103","name":"故城镇"},{"code":"131126104","name":"武官寨镇"},{"code":"131126105","name":"饶阳店镇"},{"code":"131126106","name":"军屯镇"},{"code":"131126107","name":"建国镇"},{"code":"131126108","name":"西半屯镇"},{"code":"131126109","name":"房庄镇"},{"code":"131126110","name":"三朗镇"},{"code":"131126200","name":"辛庄乡"},{"code":"131126201","name":"里老乡"}]},{"code":"131127","name":"景县","children":[{"code":"131127100","name":"景州镇"},{"code":"131127101","name":"龙华镇"},{"code":"131127102","name":"广川镇"},{"code":"131127103","name":"王瞳镇"},{"code":"131127104","name":"洚河流镇"},{"code":"131127105","name":"安陵镇"},{"code":"131127106","name":"杜桥镇"},{"code":"131127107","name":"王谦寺镇"},{"code":"131127108","name":"北留智镇"},{"code":"131127109","name":"留智庙镇"},{"code":"131127110","name":"梁集镇"},{"code":"131127200","name":"刘集乡"},{"code":"131127201","name":"连镇乡"},{"code":"131127203","name":"温城乡"},{"code":"131127204","name":"后留名府乡"},{"code":"131127205","name":"青兰乡"}]},{"code":"131128","name":"阜城县","children":[{"code":"131128100","name":"阜城镇"},{"code":"131128101","name":"古城镇"},{"code":"131128102","name":"码头镇"},{"code":"131128103","name":"霞口镇"},{"code":"131128104","name":"崔家庙镇"},{"code":"131128105","name":"漫河镇"},{"code":"131128201","name":"建桥乡"},{"code":"131128202","name":"蒋坊乡"},{"code":"131128203","name":"大白乡"},{"code":"131128204","name":"王集乡"}]},{"code":"131171","name":"河北衡水高新技术产业开发区","children":[{"code":"131171201","name":"大麻森乡"},{"code":"131171400","name":"高新技术产业开发区"},{"code":"131171401","name":"新型功能材料产业园"},{"code":"131171402","name":"苏正"}]},{"code":"131172","name":"衡水滨湖新区","children":[{"code":"131172101","name":"魏家屯镇"},{"code":"131172203","name":"彭杜村乡"},{"code":"131172401","name":"滨湖新区教育园区"}]},{"code":"131182","name":"深州市","children":[{"code":"131182100","name":"唐奉镇"},{"code":"131182101","name":"深州镇"},{"code":"131182102","name":"辰时镇"},{"code":"131182103","name":"榆科镇"},{"code":"131182104","name":"魏家桥镇"},{"code":"131182105","name":"大堤镇"},{"code":"131182106","name":"前磨头镇"},{"code":"131182107","name":"王家井镇"},{"code":"131182108","name":"护驾迟镇"},{"code":"131182109","name":"大屯镇"},{"code":"131182110","name":"高古庄镇"},{"code":"131182111","name":"北溪村镇"},{"code":"131182112","name":"大冯营镇"},{"code":"131182200","name":"兵曹乡"},{"code":"131182201","name":"穆村乡"},{"code":"131182202","name":"东安庄乡"},{"code":"131182206","name":"乔屯乡"},{"code":"131182400","name":"深州监狱"},{"code":"131182401","name":"城市新区"},{"code":"131182403","name":"经济开发区"}]}]}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市","children":[{"code":"140105","name":"小店区","children":[{"code":"140105001","name":"坞城街道"},{"code":"140105002","name":"营盘街道"},{"code":"140105003","name":"北营街道"},{"code":"140105004","name":"平阳路街道"},{"code":"140105005","name":"黄陵街道"},{"code":"140105006","name":"小店街道"},{"code":"140105007","name":"龙城街道"},{"code":"140105100","name":"北格镇"},{"code":"140105200","name":"西温庄乡"},{"code":"140105201","name":"刘家堡乡"}]},{"code":"140106","name":"迎泽区","children":[{"code":"140106001","name":"柳巷街道"},{"code":"140106002","name":"文庙街道"},{"code":"140106003","name":"庙前街道"},{"code":"140106004","name":"迎泽街道"},{"code":"140106005","name":"桥东街道"},{"code":"140106006","name":"老军营街道"},{"code":"140106100","name":"郝庄镇"}]},{"code":"140107","name":"杏花岭区","children":[{"code":"140107001","name":"巨轮街道"},{"code":"140107002","name":"三桥街道"},{"code":"140107003","name":"鼓楼街道"},{"code":"140107004","name":"杏花岭街道"},{"code":"140107005","name":"坝陵桥街道"},{"code":"140107006","name":"大东关街道"},{"code":"140107007","name":"职工新街街道"},{"code":"140107008","name":"敦化坊街道"},{"code":"140107009","name":"涧河街道"},{"code":"140107010","name":"杨家峪街道"},{"code":"140107011","name":"享堂街道"},{"code":"140107100","name":"中涧河镇"}]},{"code":"140108","name":"尖草坪区","children":[{"code":"140108001","name":"尖草坪街道"},{"code":"140108002","name":"光社街道"},{"code":"140108003","name":"上兰街道"},{"code":"140108004","name":"南寨街道"},{"code":"140108005","name":"迎新街街道"},{"code":"140108006","name":"古城街道"},{"code":"140108007","name":"汇丰街道"},{"code":"140108008","name":"柴村街道"},{"code":"140108009","name":"新城街道"},{"code":"140108100","name":"向阳镇"},{"code":"140108101","name":"阳曲镇"},{"code":"140108201","name":"柏板乡"},{"code":"140108202","name":"西墕乡"},{"code":"140108400","name":"太原中北高新技术产业开发区"}]},{"code":"140109","name":"万柏林区","children":[{"code":"140109001","name":"千峰街道"},{"code":"140109002","name":"下元街道"},{"code":"140109003","name":"和平街道"},{"code":"140109004","name":"兴华街道"},{"code":"140109005","name":"万柏林街道"},{"code":"140109006","name":"杜儿坪街道"},{"code":"140109007","name":"白家庄街道"},{"code":"140109008","name":"南寒街道"},{"code":"140109009","name":"东社街道"},{"code":"140109011","name":"小井峪街道"},{"code":"140109012","name":"西铭街道"},{"code":"140109013","name":"长风西街街道"},{"code":"140109014","name":"神堂沟街道"},{"code":"140109015","name":"王化街道"}]},{"code":"140110","name":"晋源区","children":[{"code":"140110001","name":"义井街道"},{"code":"140110002","name":"罗城街道"},{"code":"140110003","name":"晋源街道"},{"code":"140110100","name":"金胜镇"},{"code":"140110101","name":"晋祠镇"},{"code":"140110102","name":"姚村镇"}]},{"code":"140121","name":"清徐县","children":[{"code":"140121100","name":"清源镇"},{"code":"140121101","name":"徐沟镇"},{"code":"140121102","name":"东于镇"},{"code":"140121103","name":"孟封镇"},{"code":"140121200","name":"马峪乡"},{"code":"140121201","name":"柳杜乡"},{"code":"140121202","name":"西谷乡"},{"code":"140121203","name":"王答乡"},{"code":"140121204","name":"集义乡"}]},{"code":"140122","name":"阳曲县","children":[{"code":"140122100","name":"黄寨镇"},{"code":"140122101","name":"大盂镇"},{"code":"140122102","name":"东黄水镇"},{"code":"140122103","name":"泥屯镇"},{"code":"140122200","name":"高村乡"},{"code":"140122201","name":"侯村乡"},{"code":"140122202","name":"凌井店乡"},{"code":"140122203","name":"西凌井乡"},{"code":"140122205","name":"杨兴乡"},{"code":"140122400","name":"中心镇"}]},{"code":"140123","name":"娄烦县","children":[{"code":"140123100","name":"娄烦镇"},{"code":"140123101","name":"静游镇"},{"code":"140123102","name":"杜交曲镇"},{"code":"140123201","name":"马家庄乡"},{"code":"140123202","name":"盖家庄乡"},{"code":"140123203","name":"米峪镇乡"},{"code":"140123204","name":"天池店乡"}]},{"code":"140171","name":"山西转型综合改革示范区","children":[{"code":"140171401","name":"唐槐园区街道"},{"code":"140171402","name":"学府园区街道"},{"code":"140171403","name":"阳曲产业园区街道"},{"code":"140171404","name":"潇河园区街道"},{"code":"140171405","name":"科创城街道"}]},{"code":"140181","name":"古交市","children":[{"code":"140181001","name":"东曲街道"},{"code":"140181002","name":"西曲街道"},{"code":"140181003","name":"桃园街道"},{"code":"140181004","name":"屯兰街道"},{"code":"140181100","name":"河口镇"},{"code":"140181101","name":"镇城底镇"},{"code":"140181102","name":"马兰镇"},{"code":"140181201","name":"嘉乐泉乡"},{"code":"140181202","name":"梭峪乡"},{"code":"140181203","name":"岔口乡"},{"code":"140181204","name":"常安乡"},{"code":"140181205","name":"原相乡"},{"code":"140181206","name":"邢家社乡"}]}]},{"code":"1402","name":"大同市","children":[{"code":"140212","name":"新荣区","children":[{"code":"140212100","name":"新荣镇"},{"code":"140212101","name":"古店镇"},{"code":"140212102","name":"花园屯镇"},{"code":"140212200","name":"破鲁堡乡"},{"code":"140212202","name":"郭家窑乡"},{"code":"140212206","name":"西村乡"},{"code":"140212209","name":"堡子湾乡"}]},{"code":"140213","name":"平城区","children":[{"code":"140213050","name":"永泰街道"},{"code":"140213051","name":"古城街道"},{"code":"140213052","name":"新旺街道"},{"code":"140213053","name":"迎宾街道"},{"code":"140213054","name":"振华街道"},{"code":"140213055","name":"清远街道"},{"code":"140213056","name":"武定街道"},{"code":"140213057","name":"御河街道"},{"code":"140213058","name":"开源街道"},{"code":"140213059","name":"大庆路街道"},{"code":"140213060","name":"马军营街道"},{"code":"140213061","name":"卧虎湾街道"},{"code":"140213062","name":"新华街道"},{"code":"140213063","name":"鹿苑街道"},{"code":"140213064","name":"白登山街道"},{"code":"140213065","name":"文瀛湖街道"},{"code":"140213066","name":"水泊寺街道"},{"code":"140213067","name":"小南头街道"}]},{"code":"140214","name":"云冈区","children":[{"code":"140214001","name":"新胜街道"},{"code":"140214002","name":"新平旺街道"},{"code":"140214016","name":"新泉路街道"},{"code":"140214017","name":"民胜街道"},{"code":"140214018","name":"口泉街道"},{"code":"140214023","name":"平泉路街道"},{"code":"140214025","name":"和顺街道"},{"code":"140214026","name":"和瑞街道"},{"code":"140214027","name":"平盛路街道"},{"code":"140214028","name":"清泉街街道"},{"code":"140214029","name":"西花园街道"},{"code":"140214030","name":"老平旺街道"},{"code":"140214031","name":"新文街道"},{"code":"140214032","name":"和旺街道"},{"code":"140214033","name":"玉龙街道"},{"code":"140214034","name":"云武街道"},{"code":"140214035","name":"云燕街道"},{"code":"140214036","name":"玉泉街道"},{"code":"140214037","name":"平德街道"},{"code":"140214038","name":"平喜街道"},{"code":"140214039","name":"平源街道"},{"code":"140214101","name":"高山镇"},{"code":"140214102","name":"云冈镇"},{"code":"140214200","name":"口泉乡"},{"code":"140214206","name":"西韩岭乡"},{"code":"140214207","name":"平旺乡"},{"code":"140214210","name":"鸦儿崖乡"}]},{"code":"140215","name":"云州区","children":[{"code":"140215100","name":"西坪镇"},{"code":"140215101","name":"倍加造镇"},{"code":"140215102","name":"周士庄镇"},{"code":"140215201","name":"吉家庄乡"},{"code":"140215202","name":"峰峪乡"},{"code":"140215204","name":"杜庄乡"},{"code":"140215205","name":"党留庄乡"},{"code":"140215209","name":"聚乐乡"},{"code":"140215211","name":"许堡乡"}]},{"code":"140221","name":"阳高县","children":[{"code":"140221100","name":"龙泉镇"},{"code":"140221101","name":"罗文皂镇"},{"code":"140221102","name":"大白登镇"},{"code":"140221103","name":"王官屯镇"},{"code":"140221104","name":"古城镇"},{"code":"140221105","name":"东小村镇"},{"code":"140221106","name":"友宰镇"},{"code":"140221201","name":"长城乡"},{"code":"140221204","name":"狮子屯乡"},{"code":"140221209","name":"下深井乡"},{"code":"140221212","name":"鳌石乡"}]},{"code":"140222","name":"天镇县","children":[{"code":"140222100","name":"玉泉镇"},{"code":"140222101","name":"谷前堡镇"},{"code":"140222102","name":"米薪关镇"},{"code":"140222103","name":"逯家湾镇"},{"code":"140222104","name":"新平堡镇"},{"code":"140222200","name":"卅里铺乡"},{"code":"140222204","name":"贾家屯乡"},{"code":"140222206","name":"赵家沟乡"},{"code":"140222208","name":"南高崖乡"},{"code":"140222209","name":"张西河乡"},{"code":"140222210","name":"马家皂乡"}]},{"code":"140223","name":"广灵县","children":[{"code":"140223100","name":"壶泉镇"},{"code":"140223101","name":"南村镇"},{"code":"140223102","name":"加斗镇"},{"code":"140223103","name":"作疃镇"},{"code":"140223104","name":"梁庄镇"},{"code":"140223200","name":"一斗泉乡"},{"code":"140223202","name":"蕉山乡"},{"code":"140223206","name":"宜兴乡"}]},{"code":"140224","name":"灵丘县","children":[{"code":"140224100","name":"武灵镇"},{"code":"140224101","name":"东河南镇"},{"code":"140224102","name":"上寨镇"},{"code":"140224200","name":"落水河乡"},{"code":"140224205","name":"赵北乡"},{"code":"140224206","name":"石家田乡"},{"code":"140224207","name":"柳科乡"},{"code":"140224208","name":"白崖台乡"},{"code":"140224210","name":"红石塄乡"},{"code":"140224212","name":"下关乡"},{"code":"140224213","name":"独峪乡"}]},{"code":"140225","name":"浑源县","children":[{"code":"140225100","name":"永安镇"},{"code":"140225101","name":"西坊城镇"},{"code":"140225102","name":"蔡村镇"},{"code":"140225103","name":"沙圪坨镇"},{"code":"140225104","name":"王庄堡镇"},{"code":"140225106","name":"青磁窑镇"},{"code":"140225201","name":"东坊城乡"},{"code":"140225203","name":"裴村乡"},{"code":"140225204","name":"驼峰乡"},{"code":"140225205","name":"西留村乡"},{"code":"140225206","name":"下韩村乡"},{"code":"140225208","name":"南榆林乡"},{"code":"140225210","name":"吴城乡"},{"code":"140225213","name":"大仁庄乡"},{"code":"140225215","name":"千佛岭乡"},{"code":"140225218","name":"官儿乡"}]},{"code":"140226","name":"左云县","children":[{"code":"140226100","name":"云兴镇"},{"code":"140226101","name":"鹊儿山镇"},{"code":"140226102","name":"店湾镇"},{"code":"140226200","name":"管家堡乡"},{"code":"140226201","name":"张家场乡"},{"code":"140226205","name":"三屯乡"},{"code":"140226206","name":"马道头乡"},{"code":"140226207","name":"小京庄乡"}]},{"code":"140271","name":"山西大同经济开发区","children":[{"code":"140271400","name":"经济技术开发区乡级单位"}]}]},{"code":"1403","name":"阳泉市","children":[{"code":"140302","name":"城区","children":[{"code":"140302001","name":"上站街道"},{"code":"140302002","name":"下站街道"},{"code":"140302003","name":"北大街街道"},{"code":"140302004","name":"南山路街道"},{"code":"140302005","name":"义井街道"},{"code":"140302100","name":"义井镇"}]},{"code":"140303","name":"矿区","children":[{"code":"140303001","name":"平潭街街道"},{"code":"140303003","name":"蔡洼街道"},{"code":"140303004","name":"赛鱼街道"},{"code":"140303005","name":"沙坪街道"},{"code":"140303006","name":"贵石沟街道"},{"code":"140303007","name":"桥头街道"}]},{"code":"140311","name":"郊区","children":[{"code":"140311100","name":"荫营镇"},{"code":"140311101","name":"河底镇"},{"code":"140311103","name":"平坦镇"},{"code":"140311200","name":"西南舁乡"},{"code":"140311201","name":"杨家庄乡"},{"code":"140311202","name":"李家庄乡"},{"code":"140311203","name":"旧街乡"},{"code":"140311400","name":"开发区"}]},{"code":"140321","name":"平定县","children":[{"code":"140321100","name":"冠山镇"},{"code":"140321101","name":"冶西镇"},{"code":"140321102","name":"锁簧镇"},{"code":"140321103","name":"张庄镇"},{"code":"140321104","name":"东回镇"},{"code":"140321105","name":"柏井镇"},{"code":"140321106","name":"娘子关镇"},{"code":"140321107","name":"巨城镇"},{"code":"140321200","name":"石门口乡"},{"code":"140321201","name":"岔口乡"}]},{"code":"140322","name":"盂县","children":[{"code":"140322100","name":"秀水镇"},{"code":"140322101","name":"孙家庄镇"},{"code":"140322102","name":"路家村镇"},{"code":"140322103","name":"南娄镇"},{"code":"140322104","name":"牛村镇"},{"code":"140322105","name":"苌池镇"},{"code":"140322106","name":"上社镇"},{"code":"140322107","name":"西烟镇"},{"code":"140322200","name":"仙人乡"},{"code":"140322201","name":"北下庄乡"},{"code":"140322203","name":"梁家寨乡"},{"code":"140322204","name":"西潘乡"},{"code":"140322205","name":"东梁乡"}]}]},{"code":"1404","name":"长治市","children":[{"code":"140403","name":"潞州区","children":[{"code":"140403001","name":"东街街道"},{"code":"140403002","name":"西街街道"},{"code":"140403003","name":"英雄南路街道"},{"code":"140403004","name":"英雄中路街道"},{"code":"140403005","name":"紫金街街道"},{"code":"140403006","name":"太行东街街道"},{"code":"140403007","name":"太行西街街道"},{"code":"140403008","name":"延安南路街道"},{"code":"140403009","name":"常青街道"},{"code":"140403010","name":"五马街道"},{"code":"140403013","name":"堠北庄街道"},{"code":"140403014","name":"老顶山街道"},{"code":"140403015","name":"大辛庄街道"},{"code":"140403103","name":"马厂镇"},{"code":"140403104","name":"黄碾镇"},{"code":"140403105","name":"西白兔镇"},{"code":"140403400","name":"长治市漳泽工业转型试验区管理委员会社区"},{"code":"140403401","name":"长治市老顶山旅游开发管理中心"},{"code":"140403403","name":"长治经济技术开发区潞州区部分"}]},{"code":"140404","name":"上党区","children":[{"code":"140404001","name":"韩店街道"},{"code":"140404101","name":"苏店镇"},{"code":"140404102","name":"荫城镇"},{"code":"140404103","name":"西火镇"},{"code":"140404104","name":"八义镇"},{"code":"140404106","name":"郝家庄镇"},{"code":"140404107","name":"南宋镇"},{"code":"140404201","name":"西池乡"},{"code":"140404202","name":"北呈乡"},{"code":"140404203","name":"东和乡"},{"code":"140404400","name":"振兴乡村生态文化旅游区"},{"code":"140404401","name":"上党经济技术开发区"},{"code":"140404406","name":"长治市经济技术开发区上党区部分"}]},{"code":"140405","name":"屯留区","children":[{"code":"140405001","name":"麟绛街道"},{"code":"140405101","name":"上村镇"},{"code":"140405102","name":"渔泽镇"},{"code":"140405103","name":"余吾镇"},{"code":"140405104","name":"吾元镇"},{"code":"140405105","name":"张店镇"},{"code":"140405106","name":"丰宜镇"},{"code":"140405200","name":"李高乡"},{"code":"140405201","name":"路村乡"},{"code":"140405202","name":"河神庙乡"},{"code":"140405400","name":"西流寨开发区"},{"code":"140405401","name":"康庄工业园区"},{"code":"140405402","name":"上莲开发区"},{"code":"140405403","name":"屯留经济技术开发区"}]},{"code":"140406","name":"潞城区","children":[{"code":"140406001","name":"潞华街道"},{"code":"140406002","name":"成家川街道"},{"code":"140406003","name":"翟店街道"},{"code":"140406100","name":"店上镇"},{"code":"140406101","name":"微子镇"},{"code":"140406102","name":"辛安泉镇"},{"code":"140406104","name":"史回镇"},{"code":"140406201","name":"黄牛蹄乡"},{"code":"140406400","name":"潞城经济技术开发区"}]},{"code":"140423","name":"襄垣县","children":[{"code":"140423100","name":"古韩镇"},{"code":"140423101","name":"王桥镇"},{"code":"140423102","name":"侯堡镇"},{"code":"140423103","name":"夏店镇"},{"code":"140423104","name":"虒亭镇"},{"code":"140423105","name":"西营镇"},{"code":"140423106","name":"王村镇"},{"code":"140423107","name":"下良镇"},{"code":"140423108","name":"善福镇"},{"code":"140423402","name":"襄垣经济技术开发区"}]},{"code":"140425","name":"平顺县","children":[{"code":"140425100","name":"青羊镇"},{"code":"140425101","name":"龙溪镇"},{"code":"140425102","name":"石城镇"},{"code":"140425103","name":"苗庄镇"},{"code":"140425104","name":"玉峡关镇"},{"code":"140425200","name":"西沟乡"},{"code":"140425201","name":"东寺头乡"},{"code":"140425202","name":"虹梯关乡"},{"code":"140425203","name":"阳高乡"},{"code":"140425204","name":"北耽车乡"},{"code":"140425206","name":"北社乡"},{"code":"140425400","name":"平顺经济技术开发区"}]},{"code":"140426","name":"黎城县","children":[{"code":"140426101","name":"东阳关镇"},{"code":"140426102","name":"上遥镇"},{"code":"140426103","name":"西井镇"},{"code":"140426104","name":"黄崖洞镇"},{"code":"140426105","name":"黎侯镇"},{"code":"140426106","name":"洪井镇"},{"code":"140426107","name":"西仵镇"},{"code":"140426108","name":"程家山镇"},{"code":"140426400","name":"黎城县经济技术开发区"}]},{"code":"140427","name":"壶关县","children":[{"code":"140427100","name":"龙泉镇"},{"code":"140427101","name":"百尺镇"},{"code":"140427102","name":"店上镇"},{"code":"140427103","name":"晋庄镇"},{"code":"140427104","name":"树掌镇"},{"code":"140427105","name":"大峡谷镇"},{"code":"140427106","name":"集店镇"},{"code":"140427201","name":"黄山乡"},{"code":"140427202","name":"东井岭乡"},{"code":"140427203","name":"石坡乡"},{"code":"140427401","name":"壶关县经济技术开发区"}]},{"code":"140428","name":"长子县","children":[{"code":"140428100","name":"丹朱镇"},{"code":"140428101","name":"鲍店镇"},{"code":"140428102","name":"石哲镇"},{"code":"140428103","name":"大堡头镇"},{"code":"140428104","name":"慈林镇"},{"code":"140428105","name":"色头镇"},{"code":"140428106","name":"南漳镇"},{"code":"140428107","name":"宋村镇"},{"code":"140428108","name":"南陈镇"},{"code":"140428201","name":"碾张乡"},{"code":"140428202","name":"常张乡"},{"code":"140428400","name":"长子经济技术开发区"}]},{"code":"140429","name":"武乡县","children":[{"code":"140429100","name":"丰州镇"},{"code":"140429101","name":"洪水镇"},{"code":"140429102","name":"蟠龙镇"},{"code":"140429103","name":"监漳镇"},{"code":"140429104","name":"故城镇"},{"code":"140429105","name":"韩北镇"},{"code":"140429202","name":"大有乡"},{"code":"140429203","name":"贾豁乡"},{"code":"140429205","name":"上司乡"},{"code":"140429206","name":"石北乡"},{"code":"140429207","name":"涌泉乡"},{"code":"140429208","name":"分水岭乡"},{"code":"140429400","name":"武乡经济技术开发区"},{"code":"140429401","name":"武乡县现代农业产业示范区"}]},{"code":"140430","name":"沁县","children":[{"code":"140430100","name":"定昌镇"},{"code":"140430101","name":"郭村镇"},{"code":"140430102","name":"故县镇"},{"code":"140430103","name":"新店镇"},{"code":"140430104","name":"漳源镇"},{"code":"140430105","name":"册村镇"},{"code":"140430106","name":"沁州黄镇"},{"code":"140430107","name":"南里镇"},{"code":"140430108","name":"松村镇"},{"code":"140430203","name":"牛寺乡"},{"code":"140430206","name":"杨安乡"},{"code":"140430400","name":"沁县现代农业产业示范区"}]},{"code":"140431","name":"沁源县","children":[{"code":"140431100","name":"沁河镇"},{"code":"140431101","name":"郭道镇"},{"code":"140431102","name":"灵空山镇"},{"code":"140431103","name":"王和镇"},{"code":"140431105","name":"王陶镇"},{"code":"140431107","name":"景凤镇"},{"code":"140431200","name":"中峪乡"},{"code":"140431201","name":"法中乡"},{"code":"140431202","name":"交口乡"},{"code":"140431203","name":"聪子峪乡"},{"code":"140431204","name":"韩洪乡"},{"code":"140431207","name":"赤石桥乡"},{"code":"140431400","name":"沁源经济技术开发区"}]},{"code":"140471","name":"山西长治高新技术产业园区","children":[{"code":"140471400","name":"长治高新技术开发区城北街街道"}]}]},{"code":"1405","name":"晋城市","children":[{"code":"140502","name":"城区","children":[{"code":"140502001","name":"东街街道"},{"code":"140502002","name":"西街街道"},{"code":"140502003","name":"南街街道"},{"code":"140502004","name":"北街街道"},{"code":"140502006","name":"钟家庄街道"},{"code":"140502007","name":"西上庄街道"},{"code":"140502009","name":"开发区街道"},{"code":"140502100","name":"北石店镇"}]},{"code":"140521","name":"沁水县","children":[{"code":"140521100","name":"龙港镇"},{"code":"140521101","name":"中村镇"},{"code":"140521102","name":"郑庄镇"},{"code":"140521103","name":"端氏镇"},{"code":"140521104","name":"嘉峰镇"},{"code":"140521105","name":"郑村镇"},{"code":"140521106","name":"柿庄镇"},{"code":"140521201","name":"土沃乡"},{"code":"140521202","name":"张村乡"},{"code":"140521204","name":"胡底乡"},{"code":"140521205","name":"固县乡"},{"code":"140521206","name":"十里乡"}]},{"code":"140522","name":"阳城县","children":[{"code":"140522100","name":"凤城镇"},{"code":"140522101","name":"北留镇"},{"code":"140522102","name":"润城镇"},{"code":"140522103","name":"町店镇"},{"code":"140522104","name":"芹池镇"},{"code":"140522105","name":"次营镇"},{"code":"140522106","name":"横河镇"},{"code":"140522107","name":"河北镇"},{"code":"140522108","name":"蟒河镇"},{"code":"140522109","name":"东冶镇"},{"code":"140522110","name":"演礼镇"},{"code":"140522111","name":"白桑镇"},{"code":"140522201","name":"寺头乡"},{"code":"140522202","name":"西河乡"},{"code":"140522205","name":"董封乡"}]},{"code":"140524","name":"陵川县","children":[{"code":"140524100","name":"崇文镇"},{"code":"140524101","name":"礼义镇"},{"code":"140524102","name":"附城镇"},{"code":"140524103","name":"西河底镇"},{"code":"140524104","name":"平城镇"},{"code":"140524105","name":"杨村镇"},{"code":"140524106","name":"潞城镇"},{"code":"140524204","name":"夺火乡"},{"code":"140524206","name":"马圪当乡"},{"code":"140524207","name":"古郊乡"},{"code":"140524209","name":"六泉乡"}]},{"code":"140525","name":"泽州县","children":[{"code":"140525100","name":"南村镇"},{"code":"140525101","name":"下村镇"},{"code":"140525102","name":"大东沟镇"},{"code":"140525103","name":"周村镇"},{"code":"140525104","name":"犁川镇"},{"code":"140525105","name":"晋庙铺镇"},{"code":"140525106","name":"金村镇"},{"code":"140525107","name":"高都镇"},{"code":"140525108","name":"巴公镇"},{"code":"140525109","name":"大阳镇"},{"code":"140525110","name":"山河镇"},{"code":"140525111","name":"大箕镇"},{"code":"140525112","name":"柳树口镇"},{"code":"140525113","name":"北义城镇"},{"code":"140525114","name":"川底镇"},{"code":"140525115","name":"南岭镇"}]},{"code":"140581","name":"高平市","children":[{"code":"140581001","name":"北城街道"},{"code":"140581002","name":"东城街道"},{"code":"140581003","name":"南城街道"},{"code":"140581101","name":"米山镇"},{"code":"140581102","name":"三甲镇"},{"code":"140581103","name":"神农镇"},{"code":"140581104","name":"陈区镇"},{"code":"140581105","name":"北诗镇"},{"code":"140581106","name":"河西镇"},{"code":"140581107","name":"马村镇"},{"code":"140581108","name":"野川镇"},{"code":"140581109","name":"寺庄镇"},{"code":"140581201","name":"建宁乡"},{"code":"140581202","name":"石末乡"},{"code":"140581203","name":"原村乡"}]}]},{"code":"1406","name":"朔州市","children":[{"code":"140602","name":"朔城区","children":[{"code":"140602001","name":"北城街道"},{"code":"140602002","name":"南城街道"},{"code":"140602003","name":"神头街道"},{"code":"140602004","name":"北旺庄街道"},{"code":"140602100","name":"神头镇"},{"code":"140602101","name":"利民镇"},{"code":"140602200","name":"下团堡乡"},{"code":"140602201","name":"小平易乡"},{"code":"140602202","name":"滋润乡"},{"code":"140602204","name":"南榆林乡"},{"code":"140602205","name":"贾庄乡"},{"code":"140602206","name":"沙塄河乡"},{"code":"140602207","name":"窑子头乡"},{"code":"140602208","name":"张蔡庄乡"}]},{"code":"140603","name":"平鲁区","children":[{"code":"140603100","name":"井坪镇"},{"code":"140603101","name":"凤凰城镇"},{"code":"140603200","name":"白堂乡"},{"code":"140603201","name":"陶村乡"},{"code":"140603202","name":"下水头乡"},{"code":"140603203","name":"双碾乡"},{"code":"140603204","name":"阻虎乡"},{"code":"140603205","name":"高石庄乡"},{"code":"140603206","name":"西水界乡"},{"code":"140603207","name":"下面高乡"},{"code":"140603209","name":"向阳堡乡"},{"code":"140603210","name":"榆岭乡"}]},{"code":"140621","name":"山阴县","children":[{"code":"140621100","name":"玉井镇"},{"code":"140621101","name":"北周庄镇"},{"code":"140621102","name":"古城镇"},{"code":"140621103","name":"岱岳镇"},{"code":"140621104","name":"广武镇"},{"code":"140621200","name":"吴马营乡"},{"code":"140621201","name":"马营乡"},{"code":"140621202","name":"下喇叭乡"},{"code":"140621203","name":"合盛堡乡"},{"code":"140621205","name":"安荣乡"},{"code":"140621206","name":"薛圐圙乡"},{"code":"140621209","name":"马营庄乡"}]},{"code":"140622","name":"应县","children":[{"code":"140622100","name":"金城镇"},{"code":"140622101","name":"南河种镇"},{"code":"140622102","name":"下社镇"},{"code":"140622200","name":"镇子梁乡"},{"code":"140622201","name":"义井乡"},{"code":"140622202","name":"臧寨乡"},{"code":"140622203","name":"大黄巍乡"},{"code":"140622204","name":"杏寨乡"},{"code":"140622205","name":"下马峪乡"},{"code":"140622206","name":"南泉乡"},{"code":"140622207","name":"大临河乡"},{"code":"140622208","name":"白马石乡"}]},{"code":"140623","name":"右玉县","children":[{"code":"140623100","name":"新城镇"},{"code":"140623101","name":"右卫镇"},{"code":"140623102","name":"威远镇"},{"code":"140623103","name":"元堡子镇"},{"code":"140623200","name":"牛心堡乡"},{"code":"140623202","name":"高家堡乡"},{"code":"140623204","name":"杨千河乡"},{"code":"140623205","name":"李达窑乡"}]},{"code":"140671","name":"山西朔州经济开发区","children":[{"code":"140671400","name":"山西朔州经济开发区街道"}]},{"code":"140681","name":"怀仁市","children":[{"code":"140681001","name":"云东街道"},{"code":"140681002","name":"云中街道"},{"code":"140681003","name":"云西街道"},{"code":"140681101","name":"吴家窑镇"},{"code":"140681102","name":"金沙滩镇"},{"code":"140681103","name":"毛家皂镇"},{"code":"140681200","name":"何家堡乡"},{"code":"140681201","name":"新家园乡"},{"code":"140681202","name":"亲和乡"},{"code":"140681203","name":"海北头乡"},{"code":"140681205","name":"河头乡"},{"code":"140681500","name":"金沙滩农牧场"},{"code":"140681501","name":"金沙滩林场"}]}]},{"code":"1407","name":"晋中市","children":[{"code":"140702","name":"榆次区","children":[{"code":"140702001","name":"北关街道"},{"code":"140702002","name":"锦纶街道"},{"code":"140702003","name":"新华街道"},{"code":"140702004","name":"西南街道"},{"code":"140702005","name":"路西街道"},{"code":"140702006","name":"经纬街道"},{"code":"140702007","name":"安宁街道"},{"code":"140702008","name":"新建街道"},{"code":"140702009","name":"晋华街道"},{"code":"140702100","name":"乌金山镇"},{"code":"140702101","name":"东阳镇"},{"code":"140702103","name":"长凝镇"},{"code":"140702104","name":"北田镇"},{"code":"140702105","name":"修文镇"},{"code":"140702200","name":"郭家堡乡"},{"code":"140702201","name":"张庆乡"},{"code":"140702202","name":"庄子乡"},{"code":"140702203","name":"东赵乡"},{"code":"140702401","name":"山西转型综合改革示范区晋中开发区"},{"code":"140702402","name":"榆次区使赵乡社会事务管理中心"}]},{"code":"140703","name":"太谷区","children":[{"code":"140703101","name":"胡村镇"},{"code":"140703102","name":"范村镇"},{"code":"140703103","name":"水秀镇"},{"code":"140703200","name":"侯城乡"},{"code":"140703201","name":"北汪乡"},{"code":"140703203","name":"阳邑乡"},{"code":"140703204","name":"小白乡"},{"code":"140703205","name":"任村乡"},{"code":"140703401","name":"白塔区"},{"code":"140703402","name":"北城区"},{"code":"140703403","name":"南城区"}]},{"code":"140721","name":"榆社县","children":[{"code":"140721100","name":"箕城镇"},{"code":"140721101","name":"云簇镇"},{"code":"140721102","name":"郝北镇"},{"code":"140721103","name":"社城镇"},{"code":"140721200","name":"河峪乡"},{"code":"140721201","name":"北寨乡"},{"code":"140721202","name":"西马乡"},{"code":"140721400","name":"城区"}]},{"code":"140722","name":"左权县","children":[{"code":"140722100","name":"辽阳镇"},{"code":"140722101","name":"桐峪镇"},{"code":"140722102","name":"麻田镇"},{"code":"140722103","name":"芹泉镇"},{"code":"140722104","name":"拐儿镇"},{"code":"140722200","name":"寒王乡"},{"code":"140722201","name":"石匣乡"},{"code":"140722204","name":"羊角乡"},{"code":"140722400","name":"城区"}]},{"code":"140723","name":"和顺县","children":[{"code":"140723100","name":"义兴镇"},{"code":"140723101","name":"李阳镇"},{"code":"140723102","name":"松烟镇"},{"code":"140723103","name":"青城镇"},{"code":"140723104","name":"横岭镇"},{"code":"140723200","name":"喂马乡"},{"code":"140723201","name":"平松乡"},{"code":"140723203","name":"马坊乡"},{"code":"140723400","name":"城区"}]},{"code":"140724","name":"昔阳县","children":[{"code":"140724100","name":"乐平镇"},{"code":"140724101","name":"皋落镇"},{"code":"140724102","name":"冶头镇"},{"code":"140724103","name":"沾尚镇"},{"code":"140724104","name":"大寨镇"},{"code":"140724200","name":"李家庄乡"},{"code":"140724201","name":"界都乡"},{"code":"140724202","name":"三都乡"},{"code":"140724203","name":"赵壁乡"},{"code":"140724204","name":"孔氏乡"},{"code":"140724400","name":"城区"}]},{"code":"140725","name":"寿阳县","children":[{"code":"140725100","name":"朝阳镇"},{"code":"140725101","name":"南燕竹镇"},{"code":"140725102","name":"宗艾镇"},{"code":"140725103","name":"平头镇"},{"code":"140725104","name":"松塔镇"},{"code":"140725105","name":"西洛镇"},{"code":"140725106","name":"尹灵芝镇"},{"code":"140725200","name":"平舒乡"},{"code":"140725201","name":"解愁乡"},{"code":"140725202","name":"温家庄乡"},{"code":"140725203","name":"景尚乡"},{"code":"140725205","name":"羊头崖乡"}]},{"code":"140727","name":"祁县","children":[{"code":"140727100","name":"昭馀镇"},{"code":"140727101","name":"东观镇"},{"code":"140727102","name":"古县镇"},{"code":"140727103","name":"贾令镇"},{"code":"140727104","name":"城赵镇"},{"code":"140727105","name":"来远镇"},{"code":"140727201","name":"峪口乡"},{"code":"140727400","name":"祁县经济开发区"},{"code":"140727404","name":"城区"}]},{"code":"140728","name":"平遥县","children":[{"code":"140728001","name":"古城街道"},{"code":"140728002","name":"城东街道"},{"code":"140728003","name":"城西街道"},{"code":"140728100","name":"古陶镇"},{"code":"140728101","name":"段村镇"},{"code":"140728102","name":"东泉镇"},{"code":"140728103","name":"洪善镇"},{"code":"140728104","name":"宁固镇"},{"code":"140728200","name":"南政乡"},{"code":"140728201","name":"中都乡"},{"code":"140728202","name":"岳壁乡"},{"code":"140728203","name":"卜宜乡"},{"code":"140728205","name":"朱坑乡"},{"code":"140728206","name":"襄垣乡"},{"code":"140728207","name":"杜家庄乡"},{"code":"140728208","name":"香乐乡"}]},{"code":"140729","name":"灵石县","children":[{"code":"140729100","name":"翠峰镇"},{"code":"140729101","name":"静升镇"},{"code":"140729102","name":"两渡镇"},{"code":"140729103","name":"夏门镇"},{"code":"140729104","name":"南关镇"},{"code":"140729105","name":"段纯镇"},{"code":"140729202","name":"王禹乡"},{"code":"140729203","name":"坛镇乡"},{"code":"140729204","name":"梁家焉乡"},{"code":"140729205","name":"交口乡"},{"code":"140729403","name":"灵石县城区社会事务服务中心"}]},{"code":"140781","name":"介休市","children":[{"code":"140781001","name":"北关街道"},{"code":"140781002","name":"西关街道"},{"code":"140781003","name":"东南街道"},{"code":"140781004","name":"西南街道"},{"code":"140781005","name":"北坛街道"},{"code":"140781100","name":"义安镇"},{"code":"140781101","name":"张兰镇"},{"code":"140781102","name":"连福镇"},{"code":"140781103","name":"洪山镇"},{"code":"140781104","name":"龙凤镇"},{"code":"140781105","name":"绵山镇"},{"code":"140781106","name":"义棠镇"},{"code":"140781200","name":"城关乡"},{"code":"140781201","name":"宋古乡"}]}]},{"code":"1408","name":"运城市","children":[{"code":"140802","name":"盐湖区","children":[{"code":"140802001","name":"中城街道"},{"code":"140802002","name":"东城街道"},{"code":"140802003","name":"西城街道"},{"code":"140802004","name":"南城街道"},{"code":"140802005","name":"北城街道"},{"code":"140802006","name":"安邑街道"},{"code":"140802007","name":"大渠街道"},{"code":"140802008","name":"姚孟街道"},{"code":"140802100","name":"解州镇"},{"code":"140802101","name":"龙居镇"},{"code":"140802102","name":"北相镇"},{"code":"140802103","name":"泓芝驿镇"},{"code":"140802104","name":"三路里镇"},{"code":"140802105","name":"陶村镇"},{"code":"140802106","name":"东郭镇"},{"code":"140802200","name":"席张乡"},{"code":"140802201","name":"金井乡"},{"code":"140802202","name":"王范乡"},{"code":"140802203","name":"冯村乡"},{"code":"140802204","name":"上郭乡"},{"code":"140802205","name":"上王乡"},{"code":"140802404","name":"运城经济技术开发区"}]},{"code":"140821","name":"临猗县","children":[{"code":"140821100","name":"猗氏镇"},{"code":"140821101","name":"嵋阳镇"},{"code":"140821102","name":"临晋镇"},{"code":"140821103","name":"七级镇"},{"code":"140821104","name":"东张镇"},{"code":"140821105","name":"孙吉镇"},{"code":"140821106","name":"三管镇"},{"code":"140821107","name":"牛杜镇"},{"code":"140821108","name":"耽子镇"},{"code":"140821109","name":"角杯镇"},{"code":"140821200","name":"楚侯乡"},{"code":"140821201","name":"庙上乡"},{"code":"140821203","name":"北辛乡"},{"code":"140821204","name":"北景乡"},{"code":"140821402","name":"临猗县城市社区"}]},{"code":"140822","name":"万荣县","children":[{"code":"140822100","name":"解店镇"},{"code":"140822101","name":"通化镇"},{"code":"140822102","name":"汉薛镇"},{"code":"140822103","name":"荣河镇"},{"code":"140822104","name":"裴庄镇"},{"code":"140822105","name":"高村镇"},{"code":"140822200","name":"万泉乡"},{"code":"140822201","name":"里望乡"},{"code":"140822202","name":"西村乡"},{"code":"140822203","name":"南张乡"},{"code":"140822205","name":"皇甫乡"},{"code":"140822206","name":"贾村乡"},{"code":"140822207","name":"王显乡"},{"code":"140822208","name":"光华乡"}]},{"code":"140823","name":"闻喜县","children":[{"code":"140823100","name":"桐城镇"},{"code":"140823101","name":"郭家庄镇"},{"code":"140823102","name":"畖底镇"},{"code":"140823103","name":"薛店镇"},{"code":"140823104","name":"东镇镇"},{"code":"140823105","name":"礼元镇"},{"code":"140823106","name":"河底镇"},{"code":"140823107","name":"阳隅镇"},{"code":"140823108","name":"侯村镇"},{"code":"140823109","name":"裴社镇"},{"code":"140823204","name":"后宫乡"},{"code":"140823205","name":"石门乡"},{"code":"140823400","name":"闻喜县社区"}]},{"code":"140824","name":"稷山县","children":[{"code":"140824100","name":"稷峰镇"},{"code":"140824101","name":"西社镇"},{"code":"140824102","name":"化峪镇"},{"code":"140824103","name":"翟店镇"},{"code":"140824104","name":"清河镇"},{"code":"140824200","name":"蔡村乡"},{"code":"140824201","name":"太阳乡"},{"code":"140824400","name":"稷山县社区"},{"code":"140824401","name":"稷山县经济技术开发区"}]},{"code":"140825","name":"新绛县","children":[{"code":"140825100","name":"龙兴镇"},{"code":"140825101","name":"三泉镇"},{"code":"140825102","name":"泽掌镇"},{"code":"140825103","name":"北张镇"},{"code":"140825104","name":"古交镇"},{"code":"140825105","name":"万安镇"},{"code":"140825106","name":"阳王镇"},{"code":"140825107","name":"泉掌镇"},{"code":"140825108","name":"横桥镇"},{"code":"140825400","name":"新绛县社区"},{"code":"140825498","name":"新绛县经济技术开发区"}]},{"code":"140826","name":"绛县","children":[{"code":"140826100","name":"古绛镇"},{"code":"140826101","name":"横水镇"},{"code":"140826102","name":"陈村镇"},{"code":"140826103","name":"卫庄镇"},{"code":"140826104","name":"磨里镇"},{"code":"140826105","name":"南樊镇"},{"code":"140826106","name":"安峪镇"},{"code":"140826107","name":"大交镇"},{"code":"140826200","name":"郝庄乡"},{"code":"140826201","name":"冷口乡"},{"code":"140826400","name":"绛县社区"},{"code":"140826402","name":"山西绛县经济开发区"}]},{"code":"140827","name":"垣曲县","children":[{"code":"140827100","name":"新城镇"},{"code":"140827101","name":"历山镇"},{"code":"140827102","name":"古城镇"},{"code":"140827103","name":"王茅镇"},{"code":"140827104","name":"毛家湾镇"},{"code":"140827105","name":"英言镇"},{"code":"140827200","name":"蒲掌乡"},{"code":"140827202","name":"解峪乡"},{"code":"140827203","name":"华峰乡"},{"code":"140827204","name":"长直乡"},{"code":"140827205","name":"皋落乡"},{"code":"140827400","name":"垣曲县城市社区"}]},{"code":"140828","name":"夏县","children":[{"code":"140828100","name":"瑶峰镇"},{"code":"140828101","name":"庙前镇"},{"code":"140828102","name":"裴介镇"},{"code":"140828103","name":"水头镇"},{"code":"140828104","name":"埝掌镇"},{"code":"140828105","name":"泗交镇"},{"code":"140828106","name":"禹王镇"},{"code":"140828200","name":"尉郭乡"},{"code":"140828202","name":"胡张乡"},{"code":"140828203","name":"南大里乡"},{"code":"140828204","name":"祁家河乡"}]},{"code":"140829","name":"平陆县","children":[{"code":"140829100","name":"圣人涧镇"},{"code":"140829101","name":"常乐镇"},{"code":"140829102","name":"张店镇"},{"code":"140829103","name":"张村镇"},{"code":"140829104","name":"曹川镇"},{"code":"140829105","name":"三门镇"},{"code":"140829106","name":"部官镇"},{"code":"140829107","name":"洪池镇"},{"code":"140829201","name":"杜马乡"},{"code":"140829400","name":"平陆县社区"}]},{"code":"140830","name":"芮城县","children":[{"code":"140830100","name":"古魏镇"},{"code":"140830101","name":"风陵渡镇"},{"code":"140830102","name":"陌南镇"},{"code":"140830103","name":"西陌镇"},{"code":"140830104","name":"永乐镇"},{"code":"140830105","name":"大王镇"},{"code":"140830106","name":"阳城镇"},{"code":"140830107","name":"南磑镇"},{"code":"140830200","name":"东垆乡"},{"code":"140830202","name":"学张乡"},{"code":"140830401","name":"芮城县社区"},{"code":"140830402","name":"山西风陵渡经济开发区"}]},{"code":"140881","name":"永济市","children":[{"code":"140881001","name":"城西街道"},{"code":"140881002","name":"城北街道"},{"code":"140881003","name":"城东街道"},{"code":"140881100","name":"虞乡镇"},{"code":"140881101","name":"卿头镇"},{"code":"140881102","name":"开张镇"},{"code":"140881103","name":"栲栳镇"},{"code":"140881104","name":"蒲州镇"},{"code":"140881105","name":"韩阳镇"},{"code":"140881106","name":"张营镇"},{"code":"140881400","name":"永济监狱"},{"code":"140881401","name":"山西省永济虞乡强制隔离戒毒所"},{"code":"140881402","name":"山西省永济董村强制隔离戒毒所"}]},{"code":"140882","name":"河津市","children":[{"code":"140882001","name":"城区街道"},{"code":"140882002","name":"清涧街道"},{"code":"140882003","name":"赵家庄街道"},{"code":"140882004","name":"阳村街道"},{"code":"140882100","name":"樊村镇"},{"code":"140882101","name":"僧楼镇"},{"code":"140882102","name":"柴家镇"},{"code":"140882200","name":"小梁乡"},{"code":"140882203","name":"下化乡"},{"code":"140882450","name":"山西铝厂"}]}]},{"code":"1409","name":"忻州市","children":[{"code":"140902","name":"忻府区","children":[{"code":"140902001","name":"秀容街道"},{"code":"140902002","name":"长征街街道"},{"code":"140902003","name":"新建路街道"},{"code":"140902004","name":"云中路街道"},{"code":"140902005","name":"九原街街道"},{"code":"140902006","name":"旭来街街道"},{"code":"140902007","name":"桥西街街道"},{"code":"140902101","name":"奇村镇"},{"code":"140902102","name":"三交镇"},{"code":"140902103","name":"庄磨镇"},{"code":"140902104","name":"豆罗镇"},{"code":"140902105","name":"董村镇"},{"code":"140902106","name":"西张镇"},{"code":"140902107","name":"忻口镇"},{"code":"140902108","name":"合索镇"},{"code":"140902206","name":"兰村乡"},{"code":"140902209","name":"东楼乡"},{"code":"140902210","name":"北义井乡"}]},{"code":"140921","name":"定襄县","children":[{"code":"140921100","name":"晋昌镇"},{"code":"140921101","name":"河边镇"},{"code":"140921102","name":"宏道镇"},{"code":"140921103","name":"季庄镇"},{"code":"140921104","name":"蒋村镇"},{"code":"140921201","name":"南王乡"},{"code":"140921203","name":"神山乡"},{"code":"140921205","name":"受禄乡"},{"code":"140921400","name":"定襄县居民"}]},{"code":"140922","name":"五台县","children":[{"code":"140922100","name":"台城镇"},{"code":"140922102","name":"耿镇镇"},{"code":"140922103","name":"豆村镇"},{"code":"140922104","name":"白家庄镇"},{"code":"140922105","name":"东冶镇"},{"code":"140922107","name":"建安镇"},{"code":"140922200","name":"沟南乡"},{"code":"140922201","name":"东雷乡"},{"code":"140922202","name":"高洪口乡"},{"code":"140922203","name":"门限石乡"},{"code":"140922204","name":"陈家庄乡"},{"code":"140922207","name":"蒋坊乡"},{"code":"140922209","name":"阳白乡"},{"code":"140922210","name":"茹村乡"}]},{"code":"140923","name":"代县","children":[{"code":"140923100","name":"上馆镇"},{"code":"140923101","name":"阳明堡镇"},{"code":"140923102","name":"峨口镇"},{"code":"140923103","name":"聂营镇"},{"code":"140923104","name":"枣林镇"},{"code":"140923106","name":"雁门关镇"},{"code":"140923107","name":"峪口镇"},{"code":"140923200","name":"新高乡"},{"code":"140923202","name":"上磨坊乡"},{"code":"140923400","name":"代县居民事务中心"}]},{"code":"140924","name":"繁峙县","children":[{"code":"140924100","name":"繁城镇"},{"code":"140924101","name":"砂河镇"},{"code":"140924102","name":"大营镇"},{"code":"140924103","name":"平型关镇"},{"code":"140924200","name":"下茹越乡"},{"code":"140924202","name":"光裕堡乡"},{"code":"140924203","name":"集义庄乡"},{"code":"140924204","name":"东山乡"},{"code":"140924205","name":"金山铺乡"},{"code":"140924208","name":"神堂堡乡"},{"code":"140924209","name":"岩头乡"}]},{"code":"140925","name":"宁武县","children":[{"code":"140925100","name":"凤凰镇"},{"code":"140925101","name":"阳方口镇"},{"code":"140925102","name":"东寨镇"},{"code":"140925103","name":"石家庄镇"},{"code":"140925104","name":"宁化镇"},{"code":"140925200","name":"薛家洼乡"},{"code":"140925201","name":"余庄乡"},{"code":"140925202","name":"涔山乡"},{"code":"140925204","name":"西马坊乡"},{"code":"140925206","name":"迭台寺乡"},{"code":"140925208","name":"怀道乡"},{"code":"140925209","name":"东马坊乡"},{"code":"140925400","name":"阳方口煤矿"},{"code":"140925401","name":"宁武县居民"}]},{"code":"140926","name":"静乐县","children":[{"code":"140926100","name":"鹅城镇"},{"code":"140926101","name":"杜家村镇"},{"code":"140926102","name":"康家会镇"},{"code":"140926103","name":"丰润镇"},{"code":"140926104","name":"双路镇"},{"code":"140926105","name":"王村镇"},{"code":"140926204","name":"段家寨乡"},{"code":"140926205","name":"辛村乡"},{"code":"140926207","name":"神峪沟乡"},{"code":"140926208","name":"娘子神乡"},{"code":"140926209","name":"娑婆乡"},{"code":"140926210","name":"赤泥窊乡"},{"code":"140926400","name":"静乐县居民"}]},{"code":"140927","name":"神池县","children":[{"code":"140927100","name":"龙泉镇"},{"code":"140927101","name":"义井镇"},{"code":"140927102","name":"八角镇"},{"code":"140927200","name":"东湖乡"},{"code":"140927203","name":"贺职乡"},{"code":"140927204","name":"长畛乡"},{"code":"140927205","name":"烈堡乡"},{"code":"140927206","name":"大严备乡"},{"code":"140927400","name":"神池县城镇街道"}]},{"code":"140928","name":"五寨县","children":[{"code":"140928100","name":"砚城镇"},{"code":"140928101","name":"小河头镇"},{"code":"140928102","name":"三岔镇"},{"code":"140928200","name":"前所乡"},{"code":"140928201","name":"李家坪乡"},{"code":"140928202","name":"孙家坪乡"},{"code":"140928204","name":"胡会乡"},{"code":"140928206","name":"韩家楼乡"},{"code":"140928207","name":"东秀庄乡"},{"code":"140928208","name":"杏岭子乡"},{"code":"140928400","name":"五寨县居民"}]},{"code":"140929","name":"岢岚县","children":[{"code":"140929100","name":"岚漪镇"},{"code":"140929101","name":"三井镇"},{"code":"140929102","name":"宋家沟镇"},{"code":"140929201","name":"高家会乡"},{"code":"140929202","name":"李家沟乡"},{"code":"140929203","name":"水峪贯乡"},{"code":"140929204","name":"西豹峪乡"},{"code":"140929205","name":"温泉乡"},{"code":"140929206","name":"阳坪乡"},{"code":"140929207","name":"大涧乡"},{"code":"140929400","name":"岢岚县居民"}]},{"code":"140930","name":"河曲县","children":[{"code":"140930100","name":"西口镇"},{"code":"140930101","name":"楼子营镇"},{"code":"140930102","name":"刘家塔镇"},{"code":"140930103","name":"巡镇镇"},{"code":"140930104","name":"旧县镇"},{"code":"140930105","name":"沙泉镇"},{"code":"140930200","name":"鹿固乡"},{"code":"140930202","name":"单寨乡"},{"code":"140930203","name":"土沟乡"},{"code":"140930205","name":"沙坪乡"},{"code":"140930206","name":"社梁乡"}]},{"code":"140931","name":"保德县","children":[{"code":"140931100","name":"东关镇"},{"code":"140931101","name":"义门镇"},{"code":"140931102","name":"桥头镇"},{"code":"140931103","name":"杨家湾镇"},{"code":"140931104","name":"孙家沟镇"},{"code":"140931200","name":"腰庄乡"},{"code":"140931201","name":"韩家川乡"},{"code":"140931202","name":"林遮峪乡"},{"code":"140931203","name":"冯家川乡"},{"code":"140931204","name":"土崖塔乡"},{"code":"140931208","name":"南河沟乡"},{"code":"140931400","name":"保德县居民事务中心"}]},{"code":"140932","name":"偏关县","children":[{"code":"140932100","name":"新关镇"},{"code":"140932102","name":"老营镇"},{"code":"140932103","name":"万家寨镇"},{"code":"140932104","name":"水泉镇"},{"code":"140932105","name":"老牛湾镇"},{"code":"140932106","name":"尚峪镇"},{"code":"140932200","name":"窑头乡"},{"code":"140932201","name":"楼沟乡"}]},{"code":"140971","name":"五台山风景名胜区","children":[{"code":"140971100","name":"台怀镇"},{"code":"140971101","name":"石咀镇"},{"code":"140971200","name":"金岗库乡"}]},{"code":"140981","name":"原平市","children":[{"code":"140981001","name":"北城街道"},{"code":"140981002","name":"南城街道"},{"code":"140981004","name":"新原街道"},{"code":"140981005","name":"吉祥街道"},{"code":"140981101","name":"苏龙口镇"},{"code":"140981102","name":"崞阳镇"},{"code":"140981103","name":"大牛店镇"},{"code":"140981104","name":"闫庄镇"},{"code":"140981106","name":"轩岗镇"},{"code":"140981107","name":"云水镇"},{"code":"140981108","name":"同川镇"},{"code":"140981202","name":"子干乡"},{"code":"140981203","name":"中阳乡"},{"code":"140981204","name":"沿沟乡"},{"code":"140981205","name":"大林乡"},{"code":"140981206","name":"西镇乡"},{"code":"140981208","name":"王家庄乡"},{"code":"140981210","name":"段家堡乡"},{"code":"140981400","name":"山西鲁能晋北铝业工矿区"},{"code":"140981401","name":"原平市石豹沟煤矿工矿区"},{"code":"140981403","name":"原平农场"},{"code":"140981404","name":"原平经济技术开发区"}]}]},{"code":"1410","name":"临汾市","children":[{"code":"141002","name":"尧都区","children":[{"code":"141002001","name":"解放路街道"},{"code":"141002002","name":"鼓楼西街街道"},{"code":"141002003","name":"水塔街街道"},{"code":"141002004","name":"南街街道"},{"code":"141002005","name":"乡贤街街道"},{"code":"141002006","name":"辛寺街街道"},{"code":"141002007","name":"铁路东街道"},{"code":"141002008","name":"车站街街道"},{"code":"141002009","name":"汾河街道"},{"code":"141002010","name":"滨河街道"},{"code":"141002100","name":"屯里镇"},{"code":"141002101","name":"乔李镇"},{"code":"141002102","name":"大阳镇"},{"code":"141002103","name":"县底镇"},{"code":"141002104","name":"刘村镇"},{"code":"141002105","name":"金殿镇"},{"code":"141002106","name":"吴村镇"},{"code":"141002107","name":"土门镇"},{"code":"141002108","name":"魏村镇"},{"code":"141002109","name":"尧庙镇"},{"code":"141002200","name":"段店乡"},{"code":"141002201","name":"贾得乡"},{"code":"141002203","name":"一平垣乡"},{"code":"141002204","name":"枕头乡"},{"code":"141002401","name":"临汾经济开发区"}]},{"code":"141021","name":"曲沃县","children":[{"code":"141021100","name":"乐昌镇"},{"code":"141021101","name":"史村镇"},{"code":"141021102","name":"曲村镇"},{"code":"141021103","name":"高显镇"},{"code":"141021104","name":"里村镇"},{"code":"141021200","name":"北董乡"},{"code":"141021201","name":"杨谈乡"}]},{"code":"141022","name":"翼城县","children":[{"code":"141022100","name":"唐兴镇"},{"code":"141022101","name":"南梁镇"},{"code":"141022102","name":"里砦镇"},{"code":"141022103","name":"隆化镇"},{"code":"141022104","name":"桥上镇"},{"code":"141022105","name":"西阎镇"},{"code":"141022106","name":"王庄镇"},{"code":"141022200","name":"中卫乡"},{"code":"141022201","name":"南唐乡"}]},{"code":"141023","name":"襄汾县","children":[{"code":"141023100","name":"新城镇"},{"code":"141023101","name":"赵康镇"},{"code":"141023102","name":"汾城镇"},{"code":"141023103","name":"南贾镇"},{"code":"141023104","name":"古城镇"},{"code":"141023105","name":"襄陵镇"},{"code":"141023106","name":"邓庄镇"},{"code":"141023200","name":"陶寺乡"},{"code":"141023201","name":"永固乡"},{"code":"141023202","name":"景毛乡"},{"code":"141023203","name":"西贾乡"},{"code":"141023204","name":"南辛店乡"},{"code":"141023205","name":"大邓乡"}]},{"code":"141024","name":"洪洞县","children":[{"code":"141024100","name":"大槐树镇"},{"code":"141024101","name":"甘亭镇"},{"code":"141024102","name":"曲亭镇"},{"code":"141024103","name":"苏堡镇"},{"code":"141024104","name":"广胜寺镇"},{"code":"141024105","name":"明姜镇"},{"code":"141024106","name":"赵城镇"},{"code":"141024107","name":"万安镇"},{"code":"141024108","name":"刘家垣镇"},{"code":"141024109","name":"辛村镇"},{"code":"141024200","name":"淹底乡"},{"code":"141024201","name":"兴唐寺乡"},{"code":"141024202","name":"堤村乡"},{"code":"141024204","name":"龙马乡"},{"code":"141024207","name":"山目乡"}]},{"code":"141025","name":"古县","children":[{"code":"141025100","name":"岳阳镇"},{"code":"141025101","name":"北平镇"},{"code":"141025102","name":"古阳镇"},{"code":"141025103","name":"旧县镇"},{"code":"141025104","name":"三合镇"},{"code":"141025202","name":"南垣乡"}]},{"code":"141026","name":"安泽县","children":[{"code":"141026100","name":"府城镇"},{"code":"141026101","name":"和川镇"},{"code":"141026102","name":"唐城镇"},{"code":"141026103","name":"冀氏镇"},{"code":"141026104","name":"良马镇"},{"code":"141026105","name":"马壁镇"}]},{"code":"141027","name":"浮山县","children":[{"code":"141027100","name":"天坛镇"},{"code":"141027101","name":"响水河镇"},{"code":"141027102","name":"张庄镇"},{"code":"141027103","name":"北王镇"},{"code":"141027201","name":"东张乡"},{"code":"141027202","name":"槐埝乡"},{"code":"141027206","name":"寨圪塔乡"}]},{"code":"141028","name":"吉县","children":[{"code":"141028100","name":"吉昌镇"},{"code":"141028101","name":"屯里镇"},{"code":"141028102","name":"壶口镇"},{"code":"141028200","name":"车城乡"},{"code":"141028201","name":"文城乡"},{"code":"141028203","name":"柏山寺乡"},{"code":"141028204","name":"中垛乡"}]},{"code":"141029","name":"乡宁县","children":[{"code":"141029100","name":"昌宁镇"},{"code":"141029101","name":"光华镇"},{"code":"141029102","name":"台头镇"},{"code":"141029103","name":"管头镇"},{"code":"141029104","name":"西坡镇"},{"code":"141029200","name":"双鹤乡"},{"code":"141029201","name":"关王庙乡"},{"code":"141029202","name":"尉庄乡"},{"code":"141029203","name":"西交口乡"},{"code":"141029204","name":"枣岭乡"}]},{"code":"141030","name":"大宁县","children":[{"code":"141030100","name":"昕水镇"},{"code":"141030101","name":"曲峨镇"},{"code":"141030102","name":"太古镇"},{"code":"141030200","name":"三多乡"},{"code":"141030201","name":"太德乡"}]},{"code":"141031","name":"隰县","children":[{"code":"141031100","name":"龙泉镇"},{"code":"141031101","name":"午城镇"},{"code":"141031102","name":"黄土镇"},{"code":"141031200","name":"阳头升乡"},{"code":"141031201","name":"寨子乡"},{"code":"141031203","name":"下李乡"},{"code":"141031204","name":"城南乡"}]},{"code":"141032","name":"永和县","children":[{"code":"141032100","name":"芝河镇"},{"code":"141032101","name":"桑壁镇"},{"code":"141032203","name":"坡头乡"},{"code":"141032205","name":"乾坤湾乡"},{"code":"141032206","name":"望海寺乡"},{"code":"141032207","name":"楼山乡"}]},{"code":"141033","name":"蒲县","children":[{"code":"141033100","name":"蒲城镇"},{"code":"141033101","name":"薛关镇"},{"code":"141033102","name":"黑龙关镇"},{"code":"141033103","name":"克城镇"},{"code":"141033104","name":"乔家湾镇"},{"code":"141033200","name":"山中乡"},{"code":"141033201","name":"古县乡"},{"code":"141033204","name":"太林乡"}]},{"code":"141034","name":"汾西县","children":[{"code":"141034100","name":"永安镇"},{"code":"141034101","name":"对竹镇"},{"code":"141034102","name":"勍香镇"},{"code":"141034103","name":"和平镇"},{"code":"141034104","name":"僧念镇"},{"code":"141034200","name":"佃坪乡"},{"code":"141034201","name":"团柏乡"},{"code":"141034400","name":"社区"}]},{"code":"141081","name":"侯马市","children":[{"code":"141081001","name":"路东街道"},{"code":"141081002","name":"路西街道"},{"code":"141081003","name":"浍滨街道"},{"code":"141081004","name":"上马街道"},{"code":"141081005","name":"张村街道"},{"code":"141081200","name":"新田乡"},{"code":"141081201","name":"高村乡"},{"code":"141081202","name":"凤城乡"}]},{"code":"141082","name":"霍州市","children":[{"code":"141082001","name":"鼓楼街道"},{"code":"141082002","name":"北环路街道"},{"code":"141082003","name":"南环路街道"},{"code":"141082004","name":"开元街道"},{"code":"141082005","name":"退沙街道"},{"code":"141082100","name":"白龙镇"},{"code":"141082101","name":"辛置镇"},{"code":"141082102","name":"大张镇"},{"code":"141082103","name":"李曹镇"},{"code":"141082200","name":"陶唐峪乡"},{"code":"141082201","name":"三教乡"},{"code":"141082202","name":"师庄乡"}]}]},{"code":"1411","name":"吕梁市","children":[{"code":"141102","name":"离石区","children":[{"code":"141102001","name":"滨河街道"},{"code":"141102002","name":"凤山街道"},{"code":"141102003","name":"莲花池街道"},{"code":"141102004","name":"城北街道"},{"code":"141102005","name":"田家会街道"},{"code":"141102006","name":"交口街道"},{"code":"141102007","name":"西属巴街道"},{"code":"141102100","name":"吴城镇"},{"code":"141102101","name":"信义镇"},{"code":"141102201","name":"枣林乡"},{"code":"141102202","name":"坪头乡"}]},{"code":"141121","name":"文水县","children":[{"code":"141121100","name":"凤城镇"},{"code":"141121101","name":"开栅镇"},{"code":"141121102","name":"南庄镇"},{"code":"141121103","name":"南安镇"},{"code":"141121104","name":"刘胡兰镇"},{"code":"141121105","name":"下曲镇"},{"code":"141121106","name":"孝义镇"},{"code":"141121200","name":"南武乡"},{"code":"141121201","name":"西城乡"},{"code":"141121202","name":"北张乡"},{"code":"141121203","name":"马西乡"},{"code":"141121204","name":"西槽头乡"}]},{"code":"141122","name":"交城县","children":[{"code":"141122100","name":"天宁镇"},{"code":"141122101","name":"夏家营镇"},{"code":"141122102","name":"西营镇"},{"code":"141122103","name":"水峪贯镇"},{"code":"141122104","name":"西社镇"},{"code":"141122105","name":"庞泉沟镇"},{"code":"141122106","name":"洪相镇"},{"code":"141122202","name":"东坡底乡"},{"code":"141122400","name":"夏家营生态工业园区"}]},{"code":"141123","name":"兴县","children":[{"code":"141123100","name":"蔚汾镇"},{"code":"141123101","name":"魏家滩镇"},{"code":"141123102","name":"瓦塘镇"},{"code":"141123103","name":"康宁镇"},{"code":"141123104","name":"高家村镇"},{"code":"141123105","name":"罗峪口镇"},{"code":"141123106","name":"蔡家会镇"},{"code":"141123200","name":"交楼申乡"},{"code":"141123202","name":"东会乡"},{"code":"141123203","name":"固贤乡"},{"code":"141123204","name":"奥家湾乡"},{"code":"141123205","name":"蔡家崖乡"},{"code":"141123207","name":"孟家坪乡"},{"code":"141123208","name":"赵家坪乡"},{"code":"141123209","name":"圪垯上乡"},{"code":"141123400","name":"兴县经济技术开发区"}]},{"code":"141124","name":"临县","children":[{"code":"141124100","name":"临泉镇"},{"code":"141124101","name":"白文镇"},{"code":"141124102","name":"城庄镇"},{"code":"141124103","name":"兔坂镇"},{"code":"141124104","name":"克虎镇"},{"code":"141124105","name":"三交镇"},{"code":"141124106","name":"湍水头镇"},{"code":"141124107","name":"林家坪镇"},{"code":"141124108","name":"招贤镇"},{"code":"141124109","name":"碛口镇"},{"code":"141124110","name":"刘家会镇"},{"code":"141124111","name":"丛罗峪镇"},{"code":"141124112","name":"曲峪镇"},{"code":"141124200","name":"木瓜坪乡"},{"code":"141124201","name":"安业乡"},{"code":"141124202","name":"玉坪乡"},{"code":"141124203","name":"青凉寺乡"},{"code":"141124204","name":"石白头乡"},{"code":"141124205","name":"雷家碛乡"},{"code":"141124206","name":"八堡乡"},{"code":"141124207","name":"大禹乡"},{"code":"141124208","name":"车赶乡"},{"code":"141124209","name":"安家庄乡"}]},{"code":"141125","name":"柳林县","children":[{"code":"141125100","name":"柳林镇"},{"code":"141125101","name":"穆村镇"},{"code":"141125102","name":"薛村镇"},{"code":"141125103","name":"庄上镇"},{"code":"141125104","name":"留誉镇"},{"code":"141125105","name":"三交镇"},{"code":"141125106","name":"成家庄镇"},{"code":"141125107","name":"孟门镇"},{"code":"141125108","name":"陈家湾镇"},{"code":"141125109","name":"金家庄镇"},{"code":"141125200","name":"李家湾乡"},{"code":"141125201","name":"贾家垣乡"},{"code":"141125204","name":"高家沟乡"},{"code":"141125205","name":"石西乡"},{"code":"141125206","name":"王家沟乡"}]},{"code":"141126","name":"石楼县","children":[{"code":"141126100","name":"灵泉镇"},{"code":"141126101","name":"罗村镇"},{"code":"141126102","name":"义牒镇"},{"code":"141126103","name":"小蒜镇"},{"code":"141126104","name":"辛关镇"},{"code":"141126200","name":"龙交乡"},{"code":"141126201","name":"和合乡"},{"code":"141126203","name":"曹家垣乡"},{"code":"141126204","name":"裴沟乡"}]},{"code":"141127","name":"岚县","children":[{"code":"141127100","name":"东村镇"},{"code":"141127101","name":"岚城镇"},{"code":"141127102","name":"普明镇"},{"code":"141127103","name":"界河口镇"},{"code":"141127201","name":"上明乡"},{"code":"141127202","name":"王狮乡"},{"code":"141127203","name":"梁家庄乡"},{"code":"141127204","name":"顺会乡"},{"code":"141127206","name":"社科乡"},{"code":"141127400","name":"岚县普明工业园区"}]},{"code":"141128","name":"方山县","children":[{"code":"141128100","name":"圪洞镇"},{"code":"141128101","name":"马坊镇"},{"code":"141128102","name":"峪口镇"},{"code":"141128103","name":"大武镇"},{"code":"141128104","name":"北武当镇"},{"code":"141128105","name":"积翠镇"}]},{"code":"141129","name":"中阳县","children":[{"code":"141129100","name":"宁乡镇"},{"code":"141129101","name":"金罗镇"},{"code":"141129102","name":"枝柯镇"},{"code":"141129103","name":"武家庄镇"},{"code":"141129104","name":"暖泉镇"},{"code":"141129201","name":"下枣林乡"}]},{"code":"141130","name":"交口县","children":[{"code":"141130100","name":"水头镇"},{"code":"141130101","name":"康城镇"},{"code":"141130102","name":"双池镇"},{"code":"141130103","name":"桃红坡镇"},{"code":"141130104","name":"石口镇"},{"code":"141130105","name":"回龙镇"},{"code":"141130202","name":"温泉乡"}]},{"code":"141181","name":"孝义市","children":[{"code":"141181001","name":"新义街道"},{"code":"141181002","name":"中阳楼街道"},{"code":"141181003","name":"振兴街道"},{"code":"141181004","name":"胜溪湖街道"},{"code":"141181005","name":"崇文街道"},{"code":"141181100","name":"兑镇镇"},{"code":"141181101","name":"阳泉曲镇"},{"code":"141181102","name":"下堡镇"},{"code":"141181103","name":"西辛庄镇"},{"code":"141181104","name":"高阳镇"},{"code":"141181105","name":"梧桐镇"},{"code":"141181106","name":"柱濮镇"},{"code":"141181107","name":"大孝堡镇"},{"code":"141181201","name":"下栅乡"},{"code":"141181202","name":"驿马乡"},{"code":"141181204","name":"杜村乡"}]},{"code":"141182","name":"汾阳市","children":[{"code":"141182001","name":"文峰街道"},{"code":"141182002","name":"太和桥街道"},{"code":"141182003","name":"西河街道"},{"code":"141182100","name":"贾家庄镇"},{"code":"141182101","name":"杏花村镇"},{"code":"141182102","name":"冀村镇"},{"code":"141182103","name":"肖家庄镇"},{"code":"141182104","name":"演武镇"},{"code":"141182105","name":"三泉镇"},{"code":"141182106","name":"石庄镇"},{"code":"141182107","name":"杨家庄镇"},{"code":"141182108","name":"峪道河镇"},{"code":"141182109","name":"阳城镇"},{"code":"141182110","name":"栗家庄镇"}]}]}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市","children":[{"code":"150102","name":"新城区","children":[{"code":"150102001","name":"海拉尔东路街道"},{"code":"150102002","name":"锡林北路街道"},{"code":"150102003","name":"中山东路街道"},{"code":"150102004","name":"东街街道"},{"code":"150102005","name":"西街街道"},{"code":"150102006","name":"东风路街道"},{"code":"150102007","name":"迎新路街道"},{"code":"150102008","name":"成吉思汗大街街道"},{"code":"150102101","name":"保合少镇"},{"code":"150102400","name":"新城区鸿盛高科技园区"}]},{"code":"150103","name":"回民区","children":[{"code":"150103001","name":"新华西路街道"},{"code":"150103002","name":"中山西路街道"},{"code":"150103003","name":"光明路街道"},{"code":"150103004","name":"海拉尔西路街道"},{"code":"150103005","name":"环河街街道"},{"code":"150103006","name":"通道街街道"},{"code":"150103007","name":"钢铁路街道"},{"code":"150103100","name":"攸攸板镇"}]},{"code":"150104","name":"玉泉区","children":[{"code":"150104001","name":"小召前街街道"},{"code":"150104002","name":"兴隆巷街道"},{"code":"150104003","name":"长和廊街道"},{"code":"150104004","name":"石东路街道"},{"code":"150104005","name":"大南街街道"},{"code":"150104006","name":"鄂尔多斯路街道"},{"code":"150104007","name":"西菜园街道"},{"code":"150104008","name":"昭君路街道"},{"code":"150104100","name":"小黑河镇"},{"code":"150104400","name":"裕隆工业园区"}]},{"code":"150105","name":"赛罕区","children":[{"code":"150105001","name":"人民路街道"},{"code":"150105002","name":"大学西路街道"},{"code":"150105003","name":"乌兰察布东路街道"},{"code":"150105004","name":"大学东路街道"},{"code":"150105005","name":"中专路街道"},{"code":"150105006","name":"昭乌达路街道"},{"code":"150105007","name":"巴彦街道"},{"code":"150105008","name":"敕勒川路街道"},{"code":"150105101","name":"榆林镇"},{"code":"150105103","name":"黄合少镇"},{"code":"150105104","name":"金河镇"},{"code":"150105400","name":"金桥经济技术开发区"}]},{"code":"150121","name":"土默特左旗","children":[{"code":"150121100","name":"察素齐镇"},{"code":"150121101","name":"毕克齐镇"},{"code":"150121102","name":"善岱镇"},{"code":"150121103","name":"台阁牧镇"},{"code":"150121104","name":"白庙子镇"},{"code":"150121105","name":"沙尔沁镇"},{"code":"150121106","name":"敕勒川镇"},{"code":"150121207","name":"北什轴乡"},{"code":"150121208","name":"塔布赛乡"},{"code":"150121401","name":"呼和浩特金山经济技术开发区"}]},{"code":"150122","name":"托克托县","children":[{"code":"150122100","name":"双河镇"},{"code":"150122101","name":"新营子镇"},{"code":"150122102","name":"五申镇"},{"code":"150122103","name":"伍什家镇"},{"code":"150122104","name":"古城镇"},{"code":"150122400","name":"托县工业园区"}]},{"code":"150123","name":"和林格尔县","children":[{"code":"150123100","name":"城关镇"},{"code":"150123101","name":"盛乐镇"},{"code":"150123102","name":"新店子镇"},{"code":"150123103","name":"巧什营镇"},{"code":"150123203","name":"舍必崖乡"},{"code":"150123205","name":"大红城乡"},{"code":"150123206","name":"羊群沟乡"},{"code":"150123207","name":"黑老夭乡"},{"code":"150123400","name":"盛乐经济工业园区"},{"code":"150123401","name":"内蒙古和林格尔新区"}]},{"code":"150124","name":"清水河县","children":[{"code":"150124100","name":"城关镇"},{"code":"150124101","name":"宏河镇"},{"code":"150124102","name":"喇嘛湾镇"},{"code":"150124103","name":"老牛湾镇"},{"code":"150124200","name":"窑沟乡"},{"code":"150124201","name":"北堡乡"},{"code":"150124202","name":"韭菜庄乡"},{"code":"150124203","name":"五良太乡"},{"code":"150124401","name":"内蒙古清水河工业园区"}]},{"code":"150125","name":"武川县","children":[{"code":"150125100","name":"可可以力更镇"},{"code":"150125101","name":"哈乐镇"},{"code":"150125102","name":"西乌兰不浪镇"},{"code":"150125200","name":"大青山乡"},{"code":"150125205","name":"上秃亥乡"},{"code":"150125207","name":"得胜沟乡"},{"code":"150125211","name":"二份子乡"},{"code":"150125213","name":"哈拉合少乡"},{"code":"150125214","name":"耗赖山乡"},{"code":"150125402","name":"内蒙古武川经济开发区"},{"code":"150125403","name":"武川金三角经济开发区"}]},{"code":"150172","name":"呼和浩特经济技术开发区","children":[{"code":"150172401","name":"如意工业园区"},{"code":"150172402","name":"金川工业园区"},{"code":"150172403","name":"呼和浩特综合保税区"},{"code":"150172404","name":"呼和浩特留学人员创业园"},{"code":"150172405","name":"沙尔沁工业区(如意南区)"},{"code":"150172406","name":"呼和浩特白塔空港物流园区"}]}]},{"code":"1502","name":"包头市","children":[{"code":"150202","name":"东河区","children":[{"code":"150202001","name":"和平路街道"},{"code":"150202002","name":"财神庙街道"},{"code":"150202003","name":"西脑包街道"},{"code":"150202004","name":"南门外街道"},{"code":"150202005","name":"南圪洞街道"},{"code":"150202006","name":"东站街道"},{"code":"150202007","name":"回民街道"},{"code":"150202008","name":"天骄街道"},{"code":"150202009","name":"河东街道"},{"code":"150202010","name":"铁西街道"},{"code":"150202011","name":"东兴街道"},{"code":"150202012","name":"杨圪塄街道"},{"code":"150202100","name":"河东镇"},{"code":"150202101","name":"沙尔沁镇"},{"code":"150202400","name":"铝业工业园区"}]},{"code":"150203","name":"昆都仑区","children":[{"code":"150203001","name":"少先路街道"},{"code":"150203003","name":"沼潭街道"},{"code":"150203004","name":"林荫路街道"},{"code":"150203005","name":"友谊大街街道"},{"code":"150203006","name":"阿尔丁大街街道"},{"code":"150203007","name":"团结大街街道"},{"code":"150203008","name":"鞍山道街道"},{"code":"150203009","name":"前进道街道"},{"code":"150203010","name":"市府东路街道"},{"code":"150203011","name":"白云路街道"},{"code":"150203012","name":"黄河西路街道"},{"code":"150203013","name":"昆工路街道"},{"code":"150203014","name":"昆北街道"},{"code":"150203100","name":"昆河镇"},{"code":"150203102","name":"卜尔汉图镇"},{"code":"150203400","name":"包钢厂区"}]},{"code":"150204","name":"青山区","children":[{"code":"150204001","name":"先锋道街道"},{"code":"150204002","name":"幸福路街道"},{"code":"150204003","name":"万青路街道"},{"code":"150204004","name":"富强路街道"},{"code":"150204005","name":"科学路街道"},{"code":"150204006","name":"青山路街道"},{"code":"150204007","name":"自由路街道"},{"code":"150204008","name":"乌素图街道"},{"code":"150204100","name":"青福镇"},{"code":"150204101","name":"兴胜镇"},{"code":"150204401","name":"包头市装备制造产业园区"}]},{"code":"150205","name":"石拐区","children":[{"code":"150205001","name":"石拐街道"},{"code":"150205002","name":"大发街道"},{"code":"150205003","name":"大磁街道"},{"code":"150205004","name":"五当沟街道"},{"code":"150205005","name":"白狐沟街道"},{"code":"150205006","name":"大德恒街道"},{"code":"150205101","name":"五当召镇"},{"code":"150205202","name":"吉忽伦图苏木"},{"code":"150205400","name":"工业园区管理委员会"}]},{"code":"150206","name":"白云鄂博矿区","children":[{"code":"150206001","name":"矿山路街道"},{"code":"150206002","name":"通阳道街道"}]},{"code":"150207","name":"九原区","children":[{"code":"150207001","name":"沙河街道"},{"code":"150207002","name":"赛汗街道"},{"code":"150207003","name":"萨如拉街道"},{"code":"150207004","name":"白音席勒街道"},{"code":"150207103","name":"麻池镇"},{"code":"150207105","name":"哈林格尔镇"},{"code":"150207110","name":"哈业胡同镇"},{"code":"150207202","name":"阿嘎如泰苏木"}]},{"code":"150221","name":"土默特右旗","children":[{"code":"150221104","name":"萨拉齐镇"},{"code":"150221105","name":"双龙镇"},{"code":"150221106","name":"美岱召镇"},{"code":"150221107","name":"沟门镇"},{"code":"150221108","name":"将军尧镇"},{"code":"150221213","name":"海子乡"},{"code":"150221214","name":"明沙淖乡"},{"code":"150221215","name":"苏波盖乡"},{"code":"150221500","name":"九峰山生态管理委员会"}]},{"code":"150222","name":"固阳县","children":[{"code":"150222102","name":"金山镇"},{"code":"150222103","name":"西斗铺镇"},{"code":"150222104","name":"下湿壕镇"},{"code":"150222105","name":"银号镇"},{"code":"150222106","name":"怀朔镇"},{"code":"150222107","name":"兴顺西镇"}]},{"code":"150223","name":"达尔罕茂明安联合旗","children":[{"code":"150223102","name":"满都拉镇"},{"code":"150223103","name":"希拉穆仁镇"},{"code":"150223104","name":"百灵庙镇"},{"code":"150223105","name":"石宝镇"},{"code":"150223106","name":"乌克忽洞镇"},{"code":"150223107","name":"明安镇"},{"code":"150223108","name":"巴音花镇"},{"code":"150223213","name":"达尔汗苏木"},{"code":"150223214","name":"查干哈达苏木"},{"code":"150223215","name":"巴音敖包苏木"},{"code":"150223216","name":"西河乡"},{"code":"150223217","name":"小文公乡"}]},{"code":"150271","name":"包头稀土高新技术产业开发区","children":[{"code":"150271010","name":"稀土路街道"},{"code":"150271020","name":"民馨路街道"},{"code":"150271102","name":"万水泉镇"}]}]},{"code":"1503","name":"乌海市","children":[{"code":"150302","name":"海勃湾区","children":[{"code":"150302001","name":"凤凰岭街道"},{"code":"150302002","name":"海北街道"},{"code":"150302003","name":"新华街道"},{"code":"150302004","name":"新华西街道"},{"code":"150302007","name":"滨河街道"},{"code":"150302008","name":"林荫街道"},{"code":"150302101","name":"千里山镇"},{"code":"150302400","name":"乌海市海勃湾千里山工业园区"}]},{"code":"150303","name":"海南区","children":[{"code":"150303001","name":"拉僧仲街道"},{"code":"150303002","name":"西卓子山街道"},{"code":"150303102","name":"公乌素镇"},{"code":"150303103","name":"拉僧庙镇"},{"code":"150303104","name":"巴音陶亥镇"}]},{"code":"150304","name":"乌达区","children":[{"code":"150304002","name":"三道坎街道"},{"code":"150304003","name":"五虎山街道"},{"code":"150304008","name":"新达街道"},{"code":"150304009","name":"巴音赛街道"},{"code":"150304010","name":"梁家沟街道"},{"code":"150304011","name":"苏海图街道"},{"code":"150304012","name":"滨海街道"},{"code":"150304101","name":"乌兰淖尔镇"},{"code":"150304400","name":"乌达经济开发区"}]}]},{"code":"1504","name":"赤峰市","children":[{"code":"150402","name":"红山区","children":[{"code":"150402001","name":"西屯街道"},{"code":"150402002","name":"三中街街道"},{"code":"150402003","name":"永巨街道"},{"code":"150402004","name":"东城街道"},{"code":"150402005","name":"南新街街道"},{"code":"150402006","name":"站前街道"},{"code":"150402007","name":"铁南街道"},{"code":"150402008","name":"长青街道"},{"code":"150402009","name":"哈达街道"},{"code":"150402010","name":"西城街道"},{"code":"150402011","name":"桥北街道"},{"code":"150402100","name":"红庙子镇"},{"code":"150402102","name":"文钟镇"},{"code":"150402400","name":"赤峰红山高新技术产业开发区"},{"code":"150402401","name":"内蒙古红山物流园区"},{"code":"150402402","name":"红山绿色食品产业园区"}]},{"code":"150403","name":"元宝山区","children":[{"code":"150403001","name":"西露天街道"},{"code":"150403002","name":"平庄城区街道"},{"code":"150403003","name":"平庄东城街道"},{"code":"150403004","name":"平庄西城街道"},{"code":"150403005","name":"马林街道"},{"code":"150403006","name":"云杉路街道"},{"code":"150403100","name":"风水沟镇"},{"code":"150403101","name":"元宝山镇"},{"code":"150403102","name":"美丽河镇"},{"code":"150403103","name":"平庄镇"},{"code":"150403104","name":"五家镇"},{"code":"150403200","name":"小五家乡"}]},{"code":"150404","name":"松山区","children":[{"code":"150404001","name":"振兴街道"},{"code":"150404002","name":"向阳街道"},{"code":"150404003","name":"松州街道"},{"code":"150404004","name":"铁东街道"},{"code":"150404100","name":"穆家营子镇"},{"code":"150404101","name":"初头朗镇"},{"code":"150404102","name":"大庙镇"},{"code":"150404103","name":"王府镇"},{"code":"150404104","name":"老府镇"},{"code":"150404105","name":"哈拉道口镇"},{"code":"150404106","name":"上官地镇"},{"code":"150404107","name":"安庆镇"},{"code":"150404108","name":"太平地镇"},{"code":"150404200","name":"当铺地满族乡"},{"code":"150404201","name":"夏家店乡"},{"code":"150404202","name":"城子乡"},{"code":"150404203","name":"大夫营子乡"},{"code":"150404204","name":"岗子乡"},{"code":"150404400","name":"玉龙街道"},{"code":"150404401","name":"全宁街道"},{"code":"150404407","name":"兴安街道"},{"code":"150404408","name":"松城街道"}]},{"code":"150421","name":"阿鲁科尔沁旗","children":[{"code":"150421100","name":"天山镇"},{"code":"150421101","name":"天山口镇"},{"code":"150421102","name":"双胜镇"},{"code":"150421103","name":"坤都镇"},{"code":"150421104","name":"巴彦花镇"},{"code":"150421105","name":"绍根镇"},{"code":"150421106","name":"扎嘎斯台镇"},{"code":"150421200","name":"新民乡"},{"code":"150421201","name":"先锋乡"},{"code":"150421202","name":"罕苏木苏木"},{"code":"150421203","name":"赛罕塔拉苏木"},{"code":"150421204","name":"巴拉奇如德苏木"},{"code":"150421205","name":"乌兰哈达乡"},{"code":"150421206","name":"巴彦温都尔苏木"},{"code":"150421400","name":"轻工食品产业园"},{"code":"150421401","name":"新能源产业园"},{"code":"150421402","name":"绍根煤碳及煤化工产业园"},{"code":"150421403","name":"罕乌拉街道"},{"code":"150421404","name":"欧沐沦街道"}]},{"code":"150422","name":"巴林左旗","children":[{"code":"150422100","name":"林东镇"},{"code":"150422101","name":"隆昌镇"},{"code":"150422102","name":"十三敖包镇"},{"code":"150422103","name":"碧流台镇"},{"code":"150422104","name":"富河镇"},{"code":"150422105","name":"白音勿拉镇"},{"code":"150422106","name":"哈拉哈达镇"},{"code":"150422200","name":"查干哈达苏木"},{"code":"150422201","name":"乌兰达坝苏木"},{"code":"150422202","name":"三山乡"},{"code":"150422203","name":"花加拉嘎乡"},{"code":"150422403","name":"林东西城街道"},{"code":"150422404","name":"林东东城街道"},{"code":"150422405","name":"林东产业园"}]},{"code":"150423","name":"巴林右旗","children":[{"code":"150423100","name":"大板镇"},{"code":"150423101","name":"索博日嘎镇"},{"code":"150423102","name":"宝日勿苏镇"},{"code":"150423103","name":"查干诺尔镇"},{"code":"150423105","name":"巴彦琥硕镇"},{"code":"150423200","name":"西拉沐沦苏木"},{"code":"150423201","name":"巴彦塔拉苏木"},{"code":"150423202","name":"幸福之路苏木"},{"code":"150423203","name":"查干沐沦苏木"},{"code":"150423400","name":"大板煤电化基地"},{"code":"150423401","name":"赛罕街道"},{"code":"150423402","name":"达尔罕街道"}]},{"code":"150424","name":"林西县","children":[{"code":"150424100","name":"林西镇"},{"code":"150424101","name":"新城子镇"},{"code":"150424102","name":"新林镇"},{"code":"150424103","name":"五十家子镇"},{"code":"150424104","name":"官地镇"},{"code":"150424105","name":"大井镇"},{"code":"150424106","name":"统部镇"},{"code":"150424200","name":"大营子乡"},{"code":"150424201","name":"十二吐乡"},{"code":"150424400","name":"城北街道"},{"code":"150424401","name":"城南街道"},{"code":"150424402","name":"内蒙古林西工业园区"}]},{"code":"150425","name":"克什克腾旗","children":[{"code":"150425100","name":"经棚镇"},{"code":"150425101","name":"宇宙地镇"},{"code":"150425102","name":"土城子镇"},{"code":"150425103","name":"同兴镇"},{"code":"150425104","name":"万合永镇"},{"code":"150425105","name":"芝瑞镇"},{"code":"150425106","name":"达来诺日镇"},{"code":"150425200","name":"新开地乡"},{"code":"150425201","name":"红山子乡"},{"code":"150425202","name":"达日罕乌拉苏木"},{"code":"150425203","name":"巴彦查干苏木"},{"code":"150425204","name":"浩来呼热苏木"},{"code":"150425205","name":"乌兰布统苏木"},{"code":"150425400","name":"应昌街道"},{"code":"150425401","name":"热水塘街道"},{"code":"150425403","name":"西拉沐沦街道"}]},{"code":"150426","name":"翁牛特旗","children":[{"code":"150426100","name":"乌丹镇"},{"code":"150426101","name":"乌敦套海镇"},{"code":"150426102","name":"五分地镇"},{"code":"150426103","name":"桥头镇"},{"code":"150426104","name":"广德公镇"},{"code":"150426105","name":"梧桐花镇"},{"code":"150426106","name":"海拉苏镇"},{"code":"150426107","name":"亿合公镇"},{"code":"150426200","name":"解放营子乡"},{"code":"150426201","name":"阿什罕苏木"},{"code":"150426202","name":"新苏莫苏木"},{"code":"150426203","name":"白音套海苏木"},{"code":"150426204","name":"毛山东乡"},{"code":"150426205","name":"格日僧苏木"},{"code":"150426400","name":"玉龙工业园区"},{"code":"150426402","name":"紫城街道"},{"code":"150426403","name":"全宁街道"}]},{"code":"150428","name":"喀喇沁旗","children":[{"code":"150428100","name":"锦山镇"},{"code":"150428101","name":"美林镇"},{"code":"150428102","name":"王爷府镇"},{"code":"150428103","name":"小牛群镇"},{"code":"150428104","name":"牛家营子镇"},{"code":"150428105","name":"乃林镇"},{"code":"150428106","name":"西桥镇"},{"code":"150428200","name":"十家满族乡"},{"code":"150428201","name":"南台子乡"},{"code":"150428400","name":"乃林果树农场"},{"code":"150428401","name":"马鞍山羊场"},{"code":"150428402","name":"喀喇沁经济开发区"},{"code":"150428403","name":"锦山工业园区"},{"code":"150428404","name":"河北街道"},{"code":"150428405","name":"河南街道"}]},{"code":"150429","name":"宁城县","children":[{"code":"150429100","name":"天义镇"},{"code":"150429101","name":"小城子镇"},{"code":"150429102","name":"大城子镇"},{"code":"150429103","name":"八里罕镇"},{"code":"150429104","name":"黑里河镇"},{"code":"150429105","name":"右北平镇"},{"code":"150429106","name":"大双庙镇"},{"code":"150429107","name":"汐子镇"},{"code":"150429108","name":"大明镇"},{"code":"150429109","name":"忙农镇"},{"code":"150429110","name":"五化镇"},{"code":"150429111","name":"三座店镇"},{"code":"150429112","name":"必斯营子镇"},{"code":"150429202","name":"一肯中乡"},{"code":"150429203","name":"存金沟乡"},{"code":"150429400","name":"中京工业园"},{"code":"150429401","name":"塞飞亚食品工业园"},{"code":"150429402","name":"八里罕酒业园区"},{"code":"150429403","name":"再生资源产业园"},{"code":"150429404","name":"生物科技产业园区"},{"code":"150429405","name":"汐子工业园"},{"code":"150429406","name":"农机产业园区"},{"code":"150429407","name":"宁城县铁西街道"},{"code":"150429408","name":"宁城县铁东街道"},{"code":"150429409","name":"宁城县温泉街道"}]},{"code":"150430","name":"敖汉旗","children":[{"code":"150430100","name":"新惠镇"},{"code":"150430101","name":"四家子镇"},{"code":"150430102","name":"长胜镇"},{"code":"150430103","name":"贝子府镇"},{"code":"150430104","name":"四道湾子镇"},{"code":"150430105","name":"下洼镇"},{"code":"150430106","name":"金厂沟梁镇"},{"code":"150430107","name":"兴隆洼镇"},{"code":"150430108","name":"黄羊洼镇"},{"code":"150430109","name":"古鲁板蒿镇"},{"code":"150430110","name":"牛古吐镇"},{"code":"150430202","name":"木头营子乡"},{"code":"150430204","name":"丰收乡"},{"code":"150430205","name":"玛尼罕乡"},{"code":"150430206","name":"萨力巴乡"},{"code":"150430207","name":"敖润苏莫苏木"},{"code":"150430401","name":"敖汉旗工业园区"},{"code":"150430404","name":"敖汉旗人民政府新州街道"},{"code":"150430405","name":"敖汉旗惠州街道"}]}]},{"code":"1505","name":"通辽市","children":[{"code":"150502","name":"科尔沁区","children":[{"code":"150502001","name":"科尔沁街道"},{"code":"150502002","name":"西门街道"},{"code":"150502003","name":"永清街道"},{"code":"150502004","name":"明仁街道"},{"code":"150502005","name":"施介街道"},{"code":"150502006","name":"团结街道"},{"code":"150502007","name":"东郊街道"},{"code":"150502008","name":"铁路街道"},{"code":"150502009","name":"红星街道"},{"code":"150502010","name":"霍林河街道"},{"code":"150502011","name":"建国街道"},{"code":"150502100","name":"大林镇"},{"code":"150502101","name":"钱家店镇"},{"code":"150502102","name":"余粮堡镇"},{"code":"150502103","name":"木里图镇"},{"code":"150502104","name":"丰田镇"},{"code":"150502105","name":"清河镇"},{"code":"150502106","name":"育新镇"},{"code":"150502107","name":"庆和镇"},{"code":"150502108","name":"敖力布皋镇"},{"code":"150502200","name":"莫力庙苏木"},{"code":"150502400","name":"国有哲南农场"},{"code":"150502401","name":"三义堂农场"},{"code":"150502402","name":"通辽市高林屯种畜场"},{"code":"150502403","name":"胡力海原种繁殖场"},{"code":"150502404","name":"莫力庙种羊场"},{"code":"150502405","name":"半截店牧场"}]},{"code":"150521","name":"科尔沁左翼中旗","children":[{"code":"150521100","name":"保康镇"},{"code":"150521101","name":"宝龙山镇"},{"code":"150521102","name":"舍伯吐镇"},{"code":"150521103","name":"巴彦塔拉镇"},{"code":"150521104","name":"门达镇"},{"code":"150521105","name":"架玛吐镇"},{"code":"150521106","name":"腰林毛都镇"},{"code":"150521107","name":"希伯花镇"},{"code":"150521108","name":"花吐古拉镇"},{"code":"150521109","name":"代力吉镇"},{"code":"150521110","name":"努日木镇"},{"code":"150521200","name":"花胡硕苏木"},{"code":"150521201","name":"协代苏木"},{"code":"150521202","name":"白兴吐苏木"},{"code":"150521203","name":"图布信苏木"},{"code":"150521204","name":"敖包苏木"},{"code":"150521205","name":"胜利乡"},{"code":"150521400","name":"白音塔拉农场"},{"code":"150521401","name":"珠日河牧场"},{"code":"150521402","name":"丰库牧场"},{"code":"150521403","name":"保康街道"}]},{"code":"150522","name":"科尔沁左翼后旗","children":[{"code":"150522100","name":"甘旗卡镇"},{"code":"150522101","name":"吉尔嘎朗镇"},{"code":"150522102","name":"金宝屯镇"},{"code":"150522103","name":"常胜镇"},{"code":"150522104","name":"查日苏镇"},{"code":"150522105","name":"双胜镇"},{"code":"150522106","name":"阿古拉镇"},{"code":"150522107","name":"朝鲁吐镇"},{"code":"150522108","name":"努古斯台镇"},{"code":"150522109","name":"海鲁吐镇"},{"code":"150522200","name":"阿都沁苏木"},{"code":"150522201","name":"茂道吐苏木"},{"code":"150522202","name":"巴胡塔苏木"},{"code":"150522203","name":"散都苏木"},{"code":"150522204","name":"巴彦毛都苏木"},{"code":"150522400","name":"胜利农场"},{"code":"150522401","name":"孟根达坝牧场"},{"code":"150522402","name":"查金台牧场"},{"code":"150522403","name":"原种繁育中心"},{"code":"150522404","name":"大青沟管理局"},{"code":"150522405","name":"哈日乌苏种畜场"},{"code":"150522406","name":"乌兰敖道渔场"},{"code":"150522407","name":"金宝屯林场"},{"code":"150522408","name":"朝鲁吐林场"},{"code":"150522409","name":"茂道吐林场"},{"code":"150522410","name":"伊胡塔林场"},{"code":"150522411","name":"乌旦塔拉林场"}]},{"code":"150523","name":"开鲁县","children":[{"code":"150523100","name":"开鲁镇"},{"code":"150523101","name":"大榆树镇"},{"code":"150523102","name":"黑龙坝镇"},{"code":"150523103","name":"麦新镇"},{"code":"150523104","name":"义和塔拉镇"},{"code":"150523105","name":"建华镇"},{"code":"150523106","name":"小街基镇"},{"code":"150523107","name":"东风镇"},{"code":"150523108","name":"吉日嘎郎吐镇"},{"code":"150523109","name":"东来镇"},{"code":"150523400","name":"清河牧场"},{"code":"150523401","name":"辽河农场"},{"code":"150523402","name":"保安农场"}]},{"code":"150524","name":"库伦旗","children":[{"code":"150524100","name":"库伦镇"},{"code":"150524101","name":"扣河子镇"},{"code":"150524102","name":"白音花镇"},{"code":"150524103","name":"六家子镇"},{"code":"150524104","name":"额勒顺镇"},{"code":"150524200","name":"茫汗苏木"},{"code":"150524201","name":"先进苏木"},{"code":"150524202","name":"水泉乡"},{"code":"150524400","name":"库伦街道"}]},{"code":"150525","name":"奈曼旗","children":[{"code":"150525100","name":"大沁他拉镇"},{"code":"150525101","name":"八仙筒镇"},{"code":"150525102","name":"青龙山镇"},{"code":"150525103","name":"新镇"},{"code":"150525104","name":"治安镇"},{"code":"150525105","name":"东明镇"},{"code":"150525106","name":"沙日浩来镇"},{"code":"150525107","name":"义隆永镇"},{"code":"150525200","name":"固日班花苏木"},{"code":"150525201","name":"白音他拉苏木"},{"code":"150525202","name":"明仁苏木"},{"code":"150525203","name":"黄花塔拉苏木"},{"code":"150525204","name":"土城子乡"},{"code":"150525205","name":"苇莲苏乡"},{"code":"150525400","name":"国有六号农场"},{"code":"150525401","name":"大沁他拉街道"}]},{"code":"150526","name":"扎鲁特旗","children":[{"code":"150526100","name":"鲁北镇"},{"code":"150526101","name":"黄花山镇"},{"code":"150526102","name":"嘎亥图镇"},{"code":"150526103","name":"巨日合镇"},{"code":"150526104","name":"巴雅尔吐胡硕镇"},{"code":"150526105","name":"香山镇"},{"code":"150526106","name":"阿日昆都楞镇"},{"code":"150526200","name":"巴彦塔拉苏木"},{"code":"150526201","name":"乌力吉木仁苏木"},{"code":"150526202","name":"道老杜苏木"},{"code":"150526203","name":"格日朝鲁苏木"},{"code":"150526204","name":"前德门苏木"},{"code":"150526205","name":"乌兰哈达苏木"},{"code":"150526206","name":"查布嘎图苏木"},{"code":"150526207","name":"乌额格其苏木"},{"code":"150526400","name":"乌额格其牧场"},{"code":"150526401","name":"香山农场"},{"code":"150526402","name":"乌日根塔拉农场"},{"code":"150526403","name":"通辽市嘎达苏种畜繁育中心"}]},{"code":"150571","name":"通辽经济技术开发区","children":[{"code":"150571001","name":"河西街道"},{"code":"150571002","name":"电厂街道"},{"code":"150571003","name":"新城街道"},{"code":"150571004","name":"滨河街道"},{"code":"150571100","name":"辽河镇"}]},{"code":"150581","name":"霍林郭勒市","children":[{"code":"150581001","name":"珠斯花街道"},{"code":"150581002","name":"莫斯台街道"},{"code":"150581003","name":"宝日呼吉尔街道"},{"code":"150581004","name":"沙尔呼热街道"},{"code":"150581200","name":"达来胡硕苏木"},{"code":"150581400","name":"霍林郭勒市军马场生态保护区管理委员会"}]}]},{"code":"1506","name":"鄂尔多斯市","children":[{"code":"150602","name":"东胜区","children":[{"code":"150602001","name":"交通街道"},{"code":"150602002","name":"公园街道"},{"code":"150602003","name":"林荫街道"},{"code":"150602004","name":"建设街道"},{"code":"150602005","name":"富兴街道"},{"code":"150602006","name":"天骄街道"},{"code":"150602007","name":"诃额伦街道"},{"code":"150602008","name":"巴音门克街道"},{"code":"150602010","name":"幸福街道"},{"code":"150602011","name":"纺织街道"},{"code":"150602012","name":"兴胜街道"},{"code":"150602013","name":"民族街道"},{"code":"150602100","name":"泊尔江海子镇"},{"code":"150602101","name":"罕台镇"},{"code":"150602102","name":"铜川镇"},{"code":"150602400","name":"鄂尔多斯市装备制造基地"},{"code":"150602401","name":"东胜区轻纺工业园区"},{"code":"150602404","name":"铜川汽车博览园"}]},{"code":"150603","name":"康巴什区","children":[{"code":"150603001","name":"哈巴格希街道"},{"code":"150603002","name":"青春山街道"},{"code":"150603003","name":"滨河街道"},{"code":"150603008","name":"康新街道"},{"code":"150603400","name":"鄂尔多斯市高新技术产业园区"}]},{"code":"150621","name":"达拉特旗","children":[{"code":"150621001","name":"工业街道"},{"code":"150621002","name":"昭君街道"},{"code":"150621003","name":"锡尼街道"},{"code":"150621004","name":"白塔街道"},{"code":"150621005","name":"西园街道"},{"code":"150621006","name":"平原街道"},{"code":"150621100","name":"树林召镇"},{"code":"150621101","name":"吉格斯太镇"},{"code":"150621102","name":"白泥井镇"},{"code":"150621103","name":"王爱召镇"},{"code":"150621104","name":"昭君镇"},{"code":"150621105","name":"恩格贝镇"},{"code":"150621106","name":"中和西镇"},{"code":"150621107","name":"风水梁镇"},{"code":"150621200","name":"展旦召苏木"},{"code":"150621400","name":"达拉特经济开发区"},{"code":"150621401","name":"鄂尔多斯市生态示范区管理委员会"}]},{"code":"150622","name":"准格尔旗","children":[{"code":"150622001","name":"兴隆街道"},{"code":"150622002","name":"迎泽街道"},{"code":"150622003","name":"蓝天街道"},{"code":"150622004","name":"友谊街道"},{"code":"150622100","name":"薛家湾镇"},{"code":"150622101","name":"沙圪堵镇"},{"code":"150622102","name":"大路镇"},{"code":"150622103","name":"纳日松镇"},{"code":"150622104","name":"龙口镇"},{"code":"150622105","name":"准格尔召镇"},{"code":"150622106","name":"魏家峁镇"},{"code":"150622200","name":"暖水乡"},{"code":"150622201","name":"十二连城乡"},{"code":"150622202","name":"布尔陶亥苏木"},{"code":"150622400","name":"准格尔经济开发区"},{"code":"150622401","name":"大路煤化工基地"}]},{"code":"150623","name":"鄂托克前旗","children":[{"code":"150623100","name":"敖勒召其镇"},{"code":"150623101","name":"上海庙镇"},{"code":"150623102","name":"城川镇"},{"code":"150623103","name":"昂素镇"},{"code":"150623400","name":"上海庙经济开发区"}]},{"code":"150624","name":"鄂托克旗","children":[{"code":"150624100","name":"乌兰镇"},{"code":"150624101","name":"棋盘井镇"},{"code":"150624102","name":"蒙西镇"},{"code":"150624103","name":"木凯淖尔镇"},{"code":"150624200","name":"苏米图苏木"},{"code":"150624201","name":"阿尔巴斯苏木"},{"code":"150624404","name":"内蒙古鄂托克经济开发区"}]},{"code":"150625","name":"杭锦旗","children":[{"code":"150625100","name":"锡尼镇"},{"code":"150625101","name":"巴拉贡镇"},{"code":"150625102","name":"吉日嘎朗图镇"},{"code":"150625103","name":"独贵塔拉镇"},{"code":"150625104","name":"呼和木独镇"},{"code":"150625200","name":"伊和乌素苏木"},{"code":"150625400","name":"内蒙古鄂尔多斯杭锦经济开发区"}]},{"code":"150626","name":"乌审旗","children":[{"code":"150626100","name":"嘎鲁图镇"},{"code":"150626101","name":"乌审召镇"},{"code":"150626102","name":"图克镇"},{"code":"150626103","name":"乌兰陶勒盖镇"},{"code":"150626104","name":"无定河镇"},{"code":"150626200","name":"苏力德苏木"},{"code":"150626410","name":"苏里格经济开发区"}]},{"code":"150627","name":"伊金霍洛旗","children":[{"code":"150627100","name":"阿勒腾席热镇"},{"code":"150627101","name":"札萨克镇"},{"code":"150627102","name":"乌兰木伦镇"},{"code":"150627103","name":"纳林陶亥镇"},{"code":"150627104","name":"苏布尔嘎镇"},{"code":"150627105","name":"红庆河镇"},{"code":"150627106","name":"伊金霍洛镇"},{"code":"150627400","name":"鄂尔多斯蒙苏经济开发区"},{"code":"150627407","name":"鄂尔多斯空港物流园区"}]}]},{"code":"1507","name":"呼伦贝尔市","children":[{"code":"150702","name":"海拉尔区","children":[{"code":"150702001","name":"正阳街道"},{"code":"150702002","name":"健康街道"},{"code":"150702003","name":"靠山街道"},{"code":"150702004","name":"胜利街道"},{"code":"150702005","name":"呼伦街道"},{"code":"150702007","name":"建设街道"},{"code":"150702008","name":"东山街道"},{"code":"150702100","name":"哈克镇"},{"code":"150702101","name":"奋斗镇"}]},{"code":"150703","name":"扎赉诺尔区","children":[{"code":"150703001","name":"第三街道"},{"code":"150703002","name":"第一街道"},{"code":"150703003","name":"第二街道"},{"code":"150703004","name":"第四街道"},{"code":"150703005","name":"第五街道"},{"code":"150703100","name":"灵泉镇"}]},{"code":"150721","name":"阿荣旗","children":[{"code":"150721100","name":"那吉镇"},{"code":"150721101","name":"六合镇"},{"code":"150721102","name":"亚东镇"},{"code":"150721103","name":"霍尔奇镇"},{"code":"150721104","name":"向阳峪镇"},{"code":"150721105","name":"三岔河镇"},{"code":"150721106","name":"复兴镇"},{"code":"150721108","name":"兴安镇"},{"code":"150721200","name":"得力其尔鄂温克民族乡"},{"code":"150721201","name":"查巴奇鄂温克民族乡"},{"code":"150721202","name":"音河达斡尔鄂温克民族乡"},{"code":"150721203","name":"新发朝鲜民族乡"},{"code":"150721402","name":"阿荣旗林业和草原局"}]},{"code":"150722","name":"莫力达瓦达斡尔族自治旗","children":[{"code":"150722100","name":"尼尔基镇"},{"code":"150722102","name":"宝山镇"},{"code":"150722103","name":"哈达阳镇"},{"code":"150722104","name":"阿尔拉镇"},{"code":"150722105","name":"汉古尔河镇"},{"code":"150722106","name":"西瓦尔图镇"},{"code":"150722108","name":"腾克镇"},{"code":"150722109","name":"奎勒河镇"},{"code":"150722110","name":"塔温敖宝镇"},{"code":"150722111","name":"登特科镇"},{"code":"150722112","name":"红彦镇"},{"code":"150722201","name":"库如奇乡"},{"code":"150722202","name":"额尔和乡"},{"code":"150722203","name":"杜拉尔鄂温克民族乡"},{"code":"150722205","name":"巴彦鄂温克民族乡"}]},{"code":"150723","name":"鄂伦春自治旗","children":[{"code":"150723100","name":"阿里河镇"},{"code":"150723101","name":"大杨树镇"},{"code":"150723102","name":"甘河镇"},{"code":"150723103","name":"吉文镇"},{"code":"150723104","name":"诺敏镇"},{"code":"150723105","name":"乌鲁布铁镇"},{"code":"150723106","name":"宜里镇"},{"code":"150723107","name":"克一河镇"},{"code":"150723200","name":"古里乡"},{"code":"150723201","name":"托扎敏乡"}]},{"code":"150724","name":"鄂温克族自治旗","children":[{"code":"150724100","name":"巴彦托海镇"},{"code":"150724110","name":"大雁镇"},{"code":"150724111","name":"伊敏河镇"},{"code":"150724112","name":"红花尔基镇"},{"code":"150724210","name":"巴彦嵯岗苏木"},{"code":"150724211","name":"锡尼河西苏木"},{"code":"150724212","name":"锡尼河东苏木"},{"code":"150724213","name":"巴彦塔拉达斡尔民族乡"},{"code":"150724214","name":"伊敏苏木"},{"code":"150724215","name":"辉苏木"},{"code":"150724400","name":"巴彦托海经济开发区"}]},{"code":"150725","name":"陈巴尔虎旗","children":[{"code":"150725100","name":"巴彦库仁镇"},{"code":"150725101","name":"宝日希勒镇"},{"code":"150725102","name":"呼和诺尔镇"},{"code":"150725200","name":"西乌珠尔苏木"},{"code":"150725201","name":"鄂温克民族苏木"},{"code":"150725202","name":"东乌珠尔苏木"},{"code":"150725203","name":"巴彦哈达苏木"},{"code":"150725501","name":"陈巴尔虎旗哈达图国营农牧场"},{"code":"150725502","name":"内蒙古自治区国有浩特陶海牧场"},{"code":"150725503","name":"陈巴尔虎旗特泥河农牧场"}]},{"code":"150726","name":"新巴尔虎左旗","children":[{"code":"150726101","name":"嵯岗镇"},{"code":"150726102","name":"阿木古郎镇"},{"code":"150726202","name":"新宝力格苏木"},{"code":"150726203","name":"乌布尔宝力格苏木"},{"code":"150726204","name":"罕达盖苏木"},{"code":"150726205","name":"吉布胡郎图苏木"},{"code":"150726206","name":"甘珠尔苏木"}]},{"code":"150727","name":"新巴尔虎右旗","children":[{"code":"150727100","name":"阿拉坦额莫勒镇"},{"code":"150727101","name":"阿日哈沙特镇"},{"code":"150727102","name":"呼伦镇"},{"code":"150727200","name":"贝尔苏木"},{"code":"150727201","name":"克尔伦苏木"},{"code":"150727202","name":"达赉苏木"},{"code":"150727203","name":"宝格德乌拉苏木"}]},{"code":"150781","name":"满洲里市","children":[{"code":"150781001","name":"东山街道"},{"code":"150781002","name":"道南街道"},{"code":"150781003","name":"道北街道"},{"code":"150781004","name":"兴华街道"},{"code":"150781012","name":"敖尔金街道"},{"code":"150781100","name":"新开河镇"},{"code":"150781400","name":"满洲里市互市贸易区"},{"code":"150781401","name":"满洲里市经济合作区"},{"code":"150781402","name":"满洲里市东湖区"},{"code":"150781406","name":"满洲里国际物流产业园区"},{"code":"150781407","name":"扎赉诺尔矿区"}]},{"code":"150782","name":"牙克石市","children":[{"code":"150782001","name":"胜利街道"},{"code":"150782002","name":"红旗街道"},{"code":"150782003","name":"新工街道"},{"code":"150782004","name":"永兴街道"},{"code":"150782005","name":"建设街道"},{"code":"150782006","name":"暖泉街道"},{"code":"150782100","name":"免渡河镇"},{"code":"150782101","name":"博克图镇"},{"code":"150782102","name":"绰河源镇"},{"code":"150782103","name":"乌尔其汉镇"},{"code":"150782104","name":"库都尔镇"},{"code":"150782105","name":"图里河镇"},{"code":"150782106","name":"乌奴耳镇"},{"code":"150782107","name":"塔尔气镇"},{"code":"150782108","name":"伊图里河镇"},{"code":"150782109","name":"牧原镇"},{"code":"150782400","name":"莫拐农场"},{"code":"150782401","name":"牙克石农场"},{"code":"150782402","name":"免渡河农场"}]},{"code":"150783","name":"扎兰屯市","children":[{"code":"150783001","name":"兴华街道"},{"code":"150783002","name":"正阳街道"},{"code":"150783003","name":"繁荣街道"},{"code":"150783004","name":"向阳街道"},{"code":"150783005","name":"高台子街道"},{"code":"150783006","name":"铁东街道"},{"code":"150783007","name":"河西街道"},{"code":"150783100","name":"蘑菇气镇"},{"code":"150783102","name":"卧牛河镇"},{"code":"150783103","name":"成吉思汗镇"},{"code":"150783104","name":"大河湾镇"},{"code":"150783105","name":"浩饶山镇"},{"code":"150783106","name":"柴河镇"},{"code":"150783107","name":"中和镇"},{"code":"150783108","name":"哈多河镇"},{"code":"150783200","name":"达斡尔民族乡"},{"code":"150783201","name":"鄂伦春民族乡"},{"code":"150783202","name":"萨马街鄂温克民族乡"},{"code":"150783203","name":"洼堤乡"},{"code":"150783403","name":"成吉思汗牧场"},{"code":"150783404","name":"公安部后勤供应处农场"},{"code":"150783406","name":"柴河林业局"}]},{"code":"150784","name":"额尔古纳市","children":[{"code":"150784001","name":"拉布大林街道"},{"code":"150784002","name":"上库力街道"},{"code":"150784101","name":"黑山头镇"},{"code":"150784103","name":"莫尔道嘎镇"},{"code":"150784104","name":"恩和哈达镇"},{"code":"150784200","name":"三河回族乡"},{"code":"150784210","name":"恩和俄罗斯族民族乡"},{"code":"150784211","name":"蒙兀室韦苏木"},{"code":"150784212","name":"奇乾乡"},{"code":"150784400","name":"内蒙古拉布大林农牧场"},{"code":"150784401","name":"内蒙古三河种马场"},{"code":"150784402","name":"内蒙古上库力农场"},{"code":"150784403","name":"内蒙古苏沁农牧场"}]},{"code":"150785","name":"根河市","children":[{"code":"150785001","name":"河东街道"},{"code":"150785002","name":"河西街道"},{"code":"150785003","name":"森工街道"},{"code":"150785004","name":"好里堡街道"},{"code":"150785101","name":"金河镇"},{"code":"150785102","name":"阿龙山镇"},{"code":"150785103","name":"满归镇"},{"code":"150785104","name":"得耳布尔镇"},{"code":"150785200","name":"敖鲁古雅鄂温克民族乡"}]}]},{"code":"1508","name":"巴彦淖尔市","children":[{"code":"150802","name":"临河区","children":[{"code":"150802001","name":"团结街道"},{"code":"150802002","name":"车站街道"},{"code":"150802003","name":"先锋街道"},{"code":"150802004","name":"解放街道"},{"code":"150802005","name":"新华街道"},{"code":"150802006","name":"东环街道"},{"code":"150802007","name":"铁南街道"},{"code":"150802008","name":"西环街道"},{"code":"150802009","name":"北环街道"},{"code":"150802013","name":"金川街道"},{"code":"150802014","name":"汇丰街道"},{"code":"150802100","name":"狼山镇"},{"code":"150802101","name":"新华镇"},{"code":"150802102","name":"干召庙镇"},{"code":"150802103","name":"乌兰图克镇"},{"code":"150802104","name":"双河镇"},{"code":"150802105","name":"城关镇"},{"code":"150802106","name":"白脑包镇"},{"code":"150802200","name":"曙光乡"},{"code":"150802201","name":"八一乡"},{"code":"150802400","name":"狼山农场"},{"code":"150802401","name":"临河农场"}]},{"code":"150821","name":"五原县","children":[{"code":"150821100","name":"隆兴昌镇"},{"code":"150821101","name":"塔尔湖镇"},{"code":"150821102","name":"巴彦套海镇"},{"code":"150821103","name":"新公中镇"},{"code":"150821104","name":"天吉泰镇"},{"code":"150821105","name":"胜丰镇"},{"code":"150821106","name":"银定图镇"},{"code":"150821107","name":"复兴镇"},{"code":"150821200","name":"和胜乡"},{"code":"150821400","name":"巴彦淖尔市建丰农场"}]},{"code":"150822","name":"磴口县","children":[{"code":"150822100","name":"巴彦高勒镇"},{"code":"150822101","name":"隆盛合镇"},{"code":"150822102","name":"渡口镇"},{"code":"150822103","name":"补隆淖镇"},{"code":"150822200","name":"沙金套海苏木"},{"code":"150822400","name":"磴口县农垦乌兰布和农场有限责任公司"},{"code":"150822401","name":"磴口县农垦巴彦套海农场有限责任公司"},{"code":"150822402","name":"磴口县农垦哈腾套海农场有限责任公司"},{"code":"150822403","name":"磴口县农垦包尔盖农场有限责任公司"},{"code":"150822404","name":"磴口县农垦纳林套海农场有限责任公司"},{"code":"150822405","name":"沙漠林业实验中心农场"}]},{"code":"150823","name":"乌拉特前旗","children":[{"code":"150823100","name":"乌拉山镇"},{"code":"150823101","name":"白彦花镇"},{"code":"150823102","name":"先锋镇"},{"code":"150823103","name":"新安镇"},{"code":"150823104","name":"西小召镇"},{"code":"150823105","name":"大佘太镇"},{"code":"150823106","name":"明安镇"},{"code":"150823107","name":"小佘太镇"},{"code":"150823108","name":"苏独仑镇"},{"code":"150823200","name":"额尔登布拉格苏木"},{"code":"150823201","name":"沙德格苏木"},{"code":"150823400","name":"巴彦淖尔市中滩农场有限公司"},{"code":"150823401","name":"巴彦淖尔市西山嘴农场有限公司"},{"code":"150823402","name":"巴彦淖尔市新安农场有限公司"},{"code":"150823403","name":"巴彦淖尔市苏独隆农场有限公司"},{"code":"150823404","name":"巴彦淖尔市大佘太牧场有限公司"},{"code":"150823405","name":"巴彦淖尔市乌梁素海渔场"}]},{"code":"150824","name":"乌拉特中旗","children":[{"code":"150824100","name":"海流图镇"},{"code":"150824101","name":"乌加河镇"},{"code":"150824102","name":"德岭山镇"},{"code":"150824103","name":"石哈河镇"},{"code":"150824104","name":"甘其毛都镇"},{"code":"150824105","name":"温更镇"},{"code":"150824200","name":"呼勒斯太苏木"},{"code":"150824201","name":"川井苏木"},{"code":"150824202","name":"巴音乌兰苏木"},{"code":"150824203","name":"新忽热苏木"},{"code":"150824400","name":"巴彦淖尔市牧洋海牧场有限公司"},{"code":"150824401","name":"巴彦淖尔市同和太种畜繁育中心"}]},{"code":"150825","name":"乌拉特后旗","children":[{"code":"150825100","name":"巴音宝力格镇"},{"code":"150825101","name":"呼和温都尔镇"},{"code":"150825102","name":"潮格温都尔镇"},{"code":"150825200","name":"获各琦苏木"},{"code":"150825201","name":"巴音前达门苏木"},{"code":"150825202","name":"乌盖苏木"}]},{"code":"150826","name":"杭锦后旗","children":[{"code":"150826100","name":"陕坝镇"},{"code":"150826101","name":"头道桥镇"},{"code":"150826102","name":"二道桥镇"},{"code":"150826103","name":"三道桥镇"},{"code":"150826104","name":"蛮会镇"},{"code":"150826105","name":"团结镇"},{"code":"150826106","name":"双庙镇"},{"code":"150826107","name":"沙海镇"},{"code":"150826108","name":"蒙海镇"},{"code":"150826500","name":"太阳庙农场"}]}]},{"code":"1509","name":"乌兰察布市","children":[{"code":"150902","name":"集宁区","children":[{"code":"150902001","name":"新体路街道"},{"code":"150902002","name":"桥东街道"},{"code":"150902003","name":"前进路街道"},{"code":"150902004","name":"常青街道"},{"code":"150902005","name":"虎山街道"},{"code":"150902006","name":"桥西街道"},{"code":"150902007","name":"新华街街道"},{"code":"150902008","name":"泉山街道"},{"code":"150902105","name":"白海子镇"},{"code":"150902205","name":"马莲渠乡"}]},{"code":"150921","name":"卓资县","children":[{"code":"150921106","name":"卓资山镇"},{"code":"150921107","name":"旗下营镇"},{"code":"150921108","name":"十八台镇"},{"code":"150921109","name":"巴音锡勒镇"},{"code":"150921110","name":"梨花镇"},{"code":"150921210","name":"大榆树乡"},{"code":"150921211","name":"红召乡"},{"code":"150921212","name":"复兴乡"}]},{"code":"150922","name":"化德县","children":[{"code":"150922103","name":"长顺镇"},{"code":"150922104","name":"朝阳镇"},{"code":"150922105","name":"七号镇"},{"code":"150922200","name":"德包图乡"},{"code":"150922201","name":"公腊胡洞乡"},{"code":"150922218","name":"白音特拉乡"},{"code":"150922401","name":"化德县长顺工业园区"}]},{"code":"150923","name":"商都县","children":[{"code":"150923101","name":"七台镇"},{"code":"150923102","name":"十八顷镇"},{"code":"150923103","name":"大黑沙土镇"},{"code":"150923104","name":"西井子镇"},{"code":"150923105","name":"屯垦队镇"},{"code":"150923106","name":"小海子镇"},{"code":"150923200","name":"大库伦乡"},{"code":"150923201","name":"卯都乡"},{"code":"150923202","name":"玻璃忽镜乡"},{"code":"150923203","name":"三大顷乡"}]},{"code":"150924","name":"兴和县","children":[{"code":"150924106","name":"城关镇"},{"code":"150924107","name":"张皋镇"},{"code":"150924108","name":"赛乌素镇"},{"code":"150924109","name":"鄂尔栋镇"},{"code":"150924110","name":"店子镇"},{"code":"150924209","name":"大库联乡"},{"code":"150924210","name":"民族团结乡"},{"code":"150924211","name":"大同夭乡"},{"code":"150924212","name":"五股泉乡"}]},{"code":"150925","name":"凉城县","children":[{"code":"150925103","name":"鸿茅镇"},{"code":"150925104","name":"六苏木镇"},{"code":"150925105","name":"麦胡图镇"},{"code":"150925106","name":"永兴镇"},{"code":"150925107","name":"蛮汉镇"},{"code":"150925108","name":"岱海镇"},{"code":"150925218","name":"天成乡"},{"code":"150925220","name":"曹碾满族乡"}]},{"code":"150926","name":"察哈尔右翼前旗","children":[{"code":"150926105","name":"土贵乌拉镇"},{"code":"150926106","name":"平地泉镇"},{"code":"150926107","name":"玫瑰营镇"},{"code":"150926108","name":"巴音塔拉镇"},{"code":"150926109","name":"黄旗海镇"},{"code":"150926209","name":"乌拉哈乌拉乡"},{"code":"150926210","name":"黄茂营乡"},{"code":"150926211","name":"三岔口乡"},{"code":"150926212","name":"老圈沟乡"},{"code":"150926400","name":"察右前旗天皮山冶金化工工业园区"},{"code":"150926401","name":"乌兰察布市京蒙合作产业园区"}]},{"code":"150927","name":"察哈尔右翼中旗","children":[{"code":"150927103","name":"科布尔镇"},{"code":"150927104","name":"铁沙盖镇"},{"code":"150927105","name":"黄羊城镇"},{"code":"150927106","name":"广益隆镇"},{"code":"150927107","name":"乌素图镇"},{"code":"150927216","name":"大滩乡"},{"code":"150927217","name":"宏盘乡"},{"code":"150927218","name":"巴音乡"},{"code":"150927219","name":"库伦苏木"},{"code":"150927220","name":"乌兰哈页苏木"},{"code":"150927221","name":"土城子乡"},{"code":"150927400","name":"辉腾锡勒园区管理委员会"}]},{"code":"150928","name":"察哈尔右翼后旗","children":[{"code":"150928105","name":"白音察干镇"},{"code":"150928106","name":"土牧尔台镇"},{"code":"150928107","name":"红格尔图镇"},{"code":"150928108","name":"贲红镇"},{"code":"150928109","name":"大六号镇"},{"code":"150928209","name":"当郎忽洞苏木"},{"code":"150928210","name":"乌兰哈达苏木"},{"code":"150928211","name":"锡勒乡"}]},{"code":"150929","name":"四子王旗","children":[{"code":"150929100","name":"乌兰花镇"},{"code":"150929101","name":"吉生太镇"},{"code":"150929102","name":"库伦图镇"},{"code":"150929103","name":"供济堂镇"},{"code":"150929104","name":"白音朝克图镇"},{"code":"150929200","name":"红格尔苏木"},{"code":"150929201","name":"江岸苏木"},{"code":"150929202","name":"查干补力格苏木"},{"code":"150929203","name":"脑木更苏木"},{"code":"150929204","name":"东八号乡"},{"code":"150929205","name":"忽鸡图乡"},{"code":"150929206","name":"大黑河乡"},{"code":"150929207","name":"巴音敖包苏木"},{"code":"150929400","name":"乌兰牧场"}]},{"code":"150981","name":"丰镇市","children":[{"code":"150981005","name":"新城区街道"},{"code":"150981006","name":"旧城区街道"},{"code":"150981007","name":"北城区街道"},{"code":"150981008","name":"工业区街道"},{"code":"150981009","name":"南城区街道"},{"code":"150981107","name":"隆盛庄镇"},{"code":"150981108","name":"黑土台镇"},{"code":"150981109","name":"红砂坝镇"},{"code":"150981110","name":"巨宝庄镇"},{"code":"150981111","name":"三义泉镇"},{"code":"150981207","name":"浑源窑乡"},{"code":"150981208","name":"元山子乡"},{"code":"150981209","name":"官屯堡乡"},{"code":"150981400","name":"丰镇高科技氟化学工业园区"}]}]},{"code":"1522","name":"兴安盟","children":[{"code":"152201","name":"乌兰浩特市","children":[{"code":"152201001","name":"爱国街道"},{"code":"152201002","name":"和平街道"},{"code":"152201003","name":"兴安街道"},{"code":"152201004","name":"胜利街道"},{"code":"152201005","name":"铁西街道"},{"code":"152201006","name":"都林街道"},{"code":"152201007","name":"五一街道"},{"code":"152201008","name":"城郊街道"},{"code":"152201009","name":"新城街道"},{"code":"152201100","name":"乌兰哈达镇"},{"code":"152201101","name":"葛根庙镇"},{"code":"152201102","name":"太本站镇"},{"code":"152201103","name":"义勒力特镇"},{"code":"152201401","name":"呼和马场"},{"code":"152201402","name":"乌兰浩特绿色产业园"},{"code":"152201403","name":"兴安盟经济技术开发区"}]},{"code":"152202","name":"阿尔山市","children":[{"code":"152202001","name":"林海街道"},{"code":"152202002","name":"新城街道"},{"code":"152202003","name":"温泉街道"},{"code":"152202004","name":"伊尔施街道"},{"code":"152202100","name":"天池镇"},{"code":"152202101","name":"白狼镇"},{"code":"152202102","name":"五岔沟镇"},{"code":"152202103","name":"明水河镇"}]},{"code":"152221","name":"科尔沁右翼前旗","children":[{"code":"152221100","name":"科尔沁镇"},{"code":"152221101","name":"索伦镇"},{"code":"152221102","name":"德伯斯镇"},{"code":"152221103","name":"大石寨镇"},{"code":"152221104","name":"归流河镇"},{"code":"152221105","name":"居力很镇"},{"code":"152221106","name":"察尔森镇"},{"code":"152221107","name":"额尔格图镇"},{"code":"152221108","name":"俄体镇"},{"code":"152221200","name":"满族屯满族乡"},{"code":"152221201","name":"乌兰毛都苏木"},{"code":"152221202","name":"阿力得尔苏木"},{"code":"152221203","name":"巴日嘎斯台乡"},{"code":"152221204","name":"桃合木苏木"},{"code":"152221400","name":"跃进马场"},{"code":"152221401","name":"索伦牧场"},{"code":"152221403","name":"阿力得尔牧场"},{"code":"152221404","name":"公主陵牧场"},{"code":"152221405","name":"绿水种畜繁育中心"},{"code":"152221407","name":"科右前旗工业园区"},{"code":"152221408","name":"科右前旗现代农牧业园区"}]},{"code":"152222","name":"科尔沁右翼中旗","children":[{"code":"152222100","name":"巴彦呼舒镇"},{"code":"152222101","name":"巴仁哲里木镇"},{"code":"152222102","name":"吐列毛杜镇"},{"code":"152222103","name":"杜尔基镇"},{"code":"152222104","name":"高力板镇"},{"code":"152222105","name":"好腰苏木镇"},{"code":"152222200","name":"代钦塔拉苏木"},{"code":"152222201","name":"新佳木苏木"},{"code":"152222202","name":"哈日诺尔苏木"},{"code":"152222203","name":"额木庭高勒苏木"},{"code":"152222204","name":"巴彦茫哈苏木"},{"code":"152222205","name":"巴彦淖尔苏木"},{"code":"152222400","name":"布敦化牧场"},{"code":"152222401","name":"吐列毛杜农场"},{"code":"152222402","name":"孟恩套力盖矿区工作部"},{"code":"152222403","name":"布敦化矿区工作部"}]},{"code":"152223","name":"扎赉特旗","children":[{"code":"152223100","name":"音德尔镇"},{"code":"152223101","name":"新林镇"},{"code":"152223102","name":"巴彦高勒镇"},{"code":"152223103","name":"胡尔勒镇"},{"code":"152223104","name":"阿尔本格勒镇"},{"code":"152223105","name":"巴达尔胡镇"},{"code":"152223106","name":"图牧吉镇"},{"code":"152223107","name":"好力保镇"},{"code":"152223201","name":"巴彦乌兰苏木"},{"code":"152223202","name":"宝力根花苏木"},{"code":"152223203","name":"阿拉达尔吐苏木"},{"code":"152223204","name":"巴彦扎拉嘎乡"},{"code":"152223205","name":"努文木仁乡"},{"code":"152223400","name":"内蒙古自治区图牧吉强制隔离戒毒所"},{"code":"152223401","name":"内蒙古自治区监狱管理局东部分局"},{"code":"152223404","name":"种畜场"},{"code":"152223405","name":"八一牧场"},{"code":"152223406","name":"巴达尔胡农场"}]},{"code":"152224","name":"突泉县","children":[{"code":"152224100","name":"突泉镇"},{"code":"152224101","name":"六户镇"},{"code":"152224102","name":"东杜尔基镇"},{"code":"152224103","name":"永安镇"},{"code":"152224104","name":"水泉镇"},{"code":"152224105","name":"宝石镇"},{"code":"152224200","name":"学田乡"},{"code":"152224201","name":"九龙乡"},{"code":"152224202","name":"太平乡"},{"code":"152224400","name":"内蒙古自治区国营杜尔基农场"}]}]},{"code":"1525","name":"锡林郭勒盟","children":[{"code":"152501","name":"二连浩特市","children":[{"code":"152501200","name":"格日勒敖都苏木"},{"code":"152501400","name":"二连浩特市社区建设管理局"},{"code":"152501401","name":"二连边境经济技术合作区"}]},{"code":"152502","name":"锡林浩特市","children":[{"code":"152502001","name":"希日塔拉街道"},{"code":"152502002","name":"宝力根街道"},{"code":"152502003","name":"杭盖街道"},{"code":"152502004","name":"楚古兰街道"},{"code":"152502005","name":"额尔敦街道"},{"code":"152502006","name":"南郊街道"},{"code":"152502007","name":"巴彦查干街道"},{"code":"152502008","name":"巴彦锡勒街道"},{"code":"152502100","name":"阿尔善宝拉格镇"},{"code":"152502200","name":"宝力根苏木"},{"code":"152502201","name":"朝克乌拉苏木"},{"code":"152502203","name":"巴彦宝拉格苏木"},{"code":"152502400","name":"锡林郭勒盟经济技术开发区"},{"code":"152502500","name":"白银库伦牧场"},{"code":"152502501","name":"贝力克牧场"},{"code":"152502502","name":"毛登牧场"}]},{"code":"152522","name":"阿巴嘎旗","children":[{"code":"152522100","name":"别力古台镇"},{"code":"152522101","name":"洪格尔高勒镇"},{"code":"152522102","name":"查干淖尔镇"},{"code":"152522200","name":"那仁宝拉格苏木"},{"code":"152522201","name":"伊和高勒苏木"},{"code":"152522202","name":"吉尔嘎郎图苏木"},{"code":"152522203","name":"巴彦图嘎苏木"},{"code":"152522400","name":"玛尼图煤矿"}]},{"code":"152523","name":"苏尼特左旗","children":[{"code":"152523100","name":"满都拉图镇"},{"code":"152523101","name":"查干敖包镇"},{"code":"152523102","name":"巴彦淖尔镇"},{"code":"152523200","name":"巴彦乌拉苏木"},{"code":"152523201","name":"赛罕高毕苏木"},{"code":"152523202","name":"洪格尔苏木"},{"code":"152523203","name":"达来苏木"},{"code":"152523400","name":"苏尼特左旗芒来循环经济产业园区"},{"code":"152523500","name":"恩格尔河灌区"}]},{"code":"152524","name":"苏尼特右旗","children":[{"code":"152524100","name":"赛汉塔拉镇"},{"code":"152524101","name":"朱日和镇"},{"code":"152524102","name":"乌日根塔拉镇"},{"code":"152524200","name":"桑宝拉格苏木"},{"code":"152524201","name":"额仁淖尔苏木"},{"code":"152524202","name":"赛罕乌力吉苏木"},{"code":"152524203","name":"阿其图乌拉苏木"},{"code":"152524400","name":"苏尼特右旗朱日和工业园"}]},{"code":"152525","name":"东乌珠穆沁旗","children":[{"code":"152525100","name":"乌里雅斯太镇"},{"code":"152525101","name":"道特淖尔镇"},{"code":"152525102","name":"嘎达布其镇"},{"code":"152525103","name":"满都胡宝拉格镇"},{"code":"152525104","name":"额吉淖尔镇"},{"code":"152525200","name":"呼热图淖尔苏木"},{"code":"152525201","name":"萨麦苏木"},{"code":"152525202","name":"嘎海乐苏木"},{"code":"152525203","name":"阿拉坦合力苏木"},{"code":"152525400","name":"乌里雅斯太工业区"},{"code":"152525503","name":"宝格达乌拉总场"}]},{"code":"152526","name":"西乌珠穆沁旗","children":[{"code":"152526100","name":"巴拉嘎尔高勒镇"},{"code":"152526101","name":"巴彦花镇"},{"code":"152526102","name":"吉仁高勒镇"},{"code":"152526103","name":"浩勒图高勒镇"},{"code":"152526104","name":"高日罕镇"},{"code":"152526200","name":"巴彦胡舒苏木"},{"code":"152526201","name":"乌兰哈拉嘎苏木"},{"code":"152526400","name":"西乌旗白音华能源化工园区"},{"code":"152526500","name":"林业总场"}]},{"code":"152527","name":"太仆寺旗","children":[{"code":"152527100","name":"宝昌镇"},{"code":"152527101","name":"千斤沟镇"},{"code":"152527102","name":"红旗镇"},{"code":"152527103","name":"骆驼山镇"},{"code":"152527104","name":"永丰镇"},{"code":"152527200","name":"幸福乡"},{"code":"152527201","name":"贡宝拉格苏木"},{"code":"152527500","name":"万寿滩良种场"}]},{"code":"152528","name":"镶黄旗","children":[{"code":"152528100","name":"新宝拉格镇"},{"code":"152528101","name":"巴彦塔拉镇"},{"code":"152528200","name":"翁贡乌拉苏木"},{"code":"152528201","name":"宝格达音髙勒苏木"}]},{"code":"152529","name":"正镶白旗","children":[{"code":"152529100","name":"明安图镇"},{"code":"152529101","name":"星耀镇"},{"code":"152529200","name":"伊和淖尔苏木"},{"code":"152529201","name":"乌兰查布苏木"},{"code":"152529202","name":"宝拉根陶海苏木"},{"code":"152529500","name":"额里图种畜场"},{"code":"152529502","name":"哲日根图林场"}]},{"code":"152530","name":"正蓝旗","children":[{"code":"152530100","name":"上都镇"},{"code":"152530101","name":"桑根达来镇"},{"code":"152530102","name":"哈毕日嘎镇"},{"code":"152530200","name":"宝绍代苏木"},{"code":"152530201","name":"那日图苏木"},{"code":"152530202","name":"赛音呼都嘎苏木"},{"code":"152530203","name":"扎格斯台苏木"},{"code":"152530500","name":"内蒙古自治区五一种畜场"},{"code":"152530501","name":"黑城子示范区"}]},{"code":"152531","name":"多伦县","children":[{"code":"152531100","name":"大北沟镇"},{"code":"152531101","name":"多伦诺尔镇"},{"code":"152531102","name":"滦源镇"},{"code":"152531201","name":"蔡木山乡"},{"code":"152531202","name":"西干沟乡"},{"code":"152531400","name":"多伦新型工业化化工区"}]},{"code":"152571","name":"乌拉盖管委会","children":[{"code":"152571101","name":"巴彦胡硕镇"},{"code":"152571500","name":"哈拉盖图农牧场"},{"code":"152571501","name":"贺斯格乌拉牧场"},{"code":"152571502","name":"乌拉盖牧场"}]}]},{"code":"1529","name":"阿拉善盟","children":[{"code":"152921","name":"阿拉善左旗","children":[{"code":"152921102","name":"温都尔勒图镇"},{"code":"152921105","name":"巴润别立镇"},{"code":"152921110","name":"巴彦浩特镇"},{"code":"152921111","name":"嘉尔嘎勒赛汉镇"},{"code":"152921112","name":"吉兰泰镇"},{"code":"152921113","name":"宗别立镇"},{"code":"152921114","name":"敖伦布拉格镇"},{"code":"152921115","name":"腾格里额里斯镇"},{"code":"152921203","name":"巴彦木仁苏木"},{"code":"152921213","name":"乌力吉苏木"},{"code":"152921214","name":"巴彦诺日公苏木"},{"code":"152921215","name":"额尔克哈什哈苏木"},{"code":"152921216","name":"银根苏木"},{"code":"152921217","name":"超格图呼热苏木"},{"code":"152921401","name":"腾格里经济技术开发区"},{"code":"152921402","name":"巴彦浩特额鲁特街道"},{"code":"152921403","name":"巴彦浩特南环路街道"},{"code":"152921404","name":"巴彦浩特新华街道"},{"code":"152921405","name":"巴彦浩特王府街道"}]},{"code":"152922","name":"阿拉善右旗","children":[{"code":"152922103","name":"巴丹吉林镇"},{"code":"152922104","name":"雅布赖镇"},{"code":"152922105","name":"阿拉腾敖包镇"},{"code":"152922211","name":"曼德拉苏木"},{"code":"152922212","name":"阿拉腾朝格苏木"},{"code":"152922213","name":"巴彦高勒苏木"},{"code":"152922214","name":"塔木素布拉格苏木"}]},{"code":"152923","name":"额济纳旗","children":[{"code":"152923001","name":"航空街道"},{"code":"152923002","name":"东风街道"},{"code":"152923100","name":"达来呼布镇"},{"code":"152923101","name":"东风镇"},{"code":"152923102","name":"哈日布日格德音乌拉镇"},{"code":"152923200","name":"赛汉陶来苏木"},{"code":"152923201","name":"马鬃山苏木"},{"code":"152923202","name":"苏泊淖尔苏木"},{"code":"152923203","name":"巴彦陶来苏木"},{"code":"152923204","name":"温图高勒苏木"},{"code":"152923205","name":"巴音陶海苏木"}]},{"code":"152971","name":"内蒙古阿拉善高新技术产业开发区","children":[{"code":"152971100","name":"乌斯太镇"}]}]}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市","children":[{"code":"210102","name":"和平区","children":[{"code":"210102001","name":"浑河湾街道"},{"code":"210102002","name":"新华街道"},{"code":"210102016","name":"马路湾街道"},{"code":"210102019","name":"南湖街道"},{"code":"210102021","name":"长白街道"},{"code":"210102022","name":"太原街街道"},{"code":"210102023","name":"北市场街道"},{"code":"210102025","name":"南市场街道"},{"code":"210102027","name":"沈水湾街道"},{"code":"210102028","name":"浑河站西街道"}]},{"code":"210103","name":"沈河区","children":[{"code":"210103005","name":"滨河街道"},{"code":"210103006","name":"万莲街道"},{"code":"210103013","name":"朱剪炉街道"},{"code":"210103014","name":"北站街道"},{"code":"210103015","name":"风雨坛街道"},{"code":"210103017","name":"皇城街道"},{"code":"210103018","name":"五里河街道"},{"code":"210103019","name":"南塔街道"},{"code":"210103020","name":"泉园街道"},{"code":"210103022","name":"马官桥街道"},{"code":"210103023","name":"东陵街道"}]},{"code":"210104","name":"大东区","children":[{"code":"210104002","name":"大北街道"},{"code":"210104003","name":"万泉街道"},{"code":"210104006","name":"文官街道"},{"code":"210104007","name":"二台子街道"},{"code":"210104008","name":"津桥街道"},{"code":"210104009","name":"东站街道"},{"code":"210104012","name":"长安街道"},{"code":"210104015","name":"东塔街道"},{"code":"210104017","name":"上园街道"},{"code":"210104018","name":"前进街道"}]},{"code":"210105","name":"皇姑区","children":[{"code":"210105001","name":"三台子街道"},{"code":"210105008","name":"黄河街道"},{"code":"210105013","name":"华山街道"},{"code":"210105017","name":"明廉街道"},{"code":"210105019","name":"新乐街道"},{"code":"210105020","name":"舍利塔街道"},{"code":"210105021","name":"北塔街道"},{"code":"210105022","name":"陵东街道"},{"code":"210105023","name":"鸭绿江街道"},{"code":"210105024","name":"四台子街道"}]},{"code":"210106","name":"铁西区","children":[{"code":"210106001","name":"昆明湖街道"},{"code":"210106003","name":"工人村街道"},{"code":"210106007","name":"启工街道"},{"code":"210106013","name":"笃工街道"},{"code":"210106015","name":"兴华街道"},{"code":"210106019","name":"霁虹街道"},{"code":"210106020","name":"凌空街道"},{"code":"210106021","name":"重工街道"},{"code":"210106024","name":"兴顺街道"},{"code":"210106026","name":"大青中朝友谊街道"},{"code":"210106027","name":"翟家街道"},{"code":"210106029","name":"大潘街道"},{"code":"210106030","name":"彰驿站街道"},{"code":"210106031","name":"高花街道"},{"code":"210106401","name":"沈阳市经济技术开发区"}]},{"code":"210111","name":"苏家屯区","children":[{"code":"210111001","name":"解放街道"},{"code":"210111003","name":"民主街道"},{"code":"210111005","name":"中兴街道"},{"code":"210111009","name":"林盛街道"},{"code":"210111010","name":"沙河街道"},{"code":"210111011","name":"十里河街道"},{"code":"210111012","name":"陈相街道"},{"code":"210111015","name":"永乐街道"},{"code":"210111018","name":"佟沟街道"},{"code":"210111019","name":"八一红菱街道"},{"code":"210111020","name":"沈水街道"},{"code":"210111021","name":"白清姚千街道"}]},{"code":"210112","name":"浑南区","children":[{"code":"210112009","name":"东湖街道"},{"code":"210112010","name":"五三街道"},{"code":"210112012","name":"浑河站东街道"},{"code":"210112014","name":"高坎街道"},{"code":"210112015","name":"满堂街道"},{"code":"210112016","name":"深井子街道"},{"code":"210112017","name":"祝家街道"},{"code":"210112018","name":"白塔街道"},{"code":"210112019","name":"桃仙街道"},{"code":"210112020","name":"李相街道"},{"code":"210112022","name":"汪家街道"},{"code":"210112023","name":"王滨街道"}]},{"code":"210113","name":"沈北新区","children":[{"code":"210113001","name":"新城子街道"},{"code":"210113002","name":"清水台街道"},{"code":"210113003","name":"辉山街道"},{"code":"210113004","name":"道义街道"},{"code":"210113006","name":"虎石台街道"},{"code":"210113007","name":"财落街道"},{"code":"210113010","name":"马刚街道"},{"code":"210113012","name":"黄家街道"},{"code":"210113014","name":"兴隆台街道"},{"code":"210113016","name":"正良街道"},{"code":"210113401","name":"青年农场"},{"code":"210113402","name":"前进农场"},{"code":"210113403","name":"育新农场"},{"code":"210113404","name":"沈北新区马刚林场"},{"code":"210113405","name":"沈北新区示范农场"},{"code":"210113406","name":"沈北新区种畜场"}]},{"code":"210114","name":"于洪区","children":[{"code":"210114001","name":"迎宾路街道"},{"code":"210114003","name":"陵西街道"},{"code":"210114007","name":"北陵街道"},{"code":"210114009","name":"沙岭街道"},{"code":"210114010","name":"南阳湖街道"},{"code":"210114011","name":"城东湖街道"},{"code":"210114012","name":"平罗街道"},{"code":"210114013","name":"马三家街道"},{"code":"210114014","name":"造化街道"},{"code":"210114016","name":"光辉街道"},{"code":"210114401","name":"马三家强制隔离戒毒所"},{"code":"210114402","name":"光辉农场"},{"code":"210114404","name":"监狱城"}]},{"code":"210115","name":"辽中区","children":[{"code":"210115001","name":"蒲西街道"},{"code":"210115002","name":"蒲东街道"},{"code":"210115003","name":"茨榆坨街道"},{"code":"210115004","name":"城郊街道"},{"code":"210115101","name":"于家房镇"},{"code":"210115102","name":"朱家房镇"},{"code":"210115103","name":"冷子堡镇"},{"code":"210115104","name":"刘二堡镇"},{"code":"210115106","name":"新民屯镇"},{"code":"210115107","name":"满都户镇"},{"code":"210115108","name":"杨士岗镇"},{"code":"210115109","name":"肖寨门镇"},{"code":"210115110","name":"长滩镇"},{"code":"210115111","name":"四方台镇"},{"code":"210115113","name":"六间房镇"},{"code":"210115114","name":"养士堡镇"},{"code":"210115115","name":"潘家堡镇"},{"code":"210115117","name":"老大房镇"},{"code":"210115118","name":"大黑岗子镇"},{"code":"210115119","name":"牛心坨镇"},{"code":"210115401","name":"四方台农场"}]},{"code":"210123","name":"康平县","children":[{"code":"210123001","name":"北三家子街道"},{"code":"210123002","name":"胜利街道"},{"code":"210123003","name":"东关街道"},{"code":"210123101","name":"小城子镇"},{"code":"210123102","name":"张强镇"},{"code":"210123103","name":"方家屯镇"},{"code":"210123105","name":"郝官屯镇"},{"code":"210123106","name":"二牛所口镇"},{"code":"210123203","name":"北四家子乡"},{"code":"210123204","name":"两家子乡"},{"code":"210123206","name":"海洲窝堡乡"},{"code":"210123208","name":"沙金台蒙古族满族乡"},{"code":"210123209","name":"柳树屯蒙古族满族乡"},{"code":"210123210","name":"西关屯蒙古族满族乡"},{"code":"210123211","name":"东升满族蒙古族乡"}]},{"code":"210124","name":"法库县","children":[{"code":"210124001","name":"吉祥街道"},{"code":"210124002","name":"龙山街道"},{"code":"210124101","name":"大孤家子镇"},{"code":"210124102","name":"三面船镇"},{"code":"210124103","name":"秀水河子镇"},{"code":"210124104","name":"叶茂台镇"},{"code":"210124105","name":"登仕堡子镇"},{"code":"210124106","name":"柏家沟镇"},{"code":"210124107","name":"丁家房镇"},{"code":"210124108","name":"孟家镇"},{"code":"210124109","name":"十间房镇"},{"code":"210124110","name":"冯贝堡镇"},{"code":"210124111","name":"依牛堡子镇"},{"code":"210124113","name":"包家屯镇"},{"code":"210124201","name":"慈恩寺乡"},{"code":"210124203","name":"和平乡"},{"code":"210124208","name":"四家子蒙古族乡"},{"code":"210124209","name":"双台子乡"},{"code":"210124210","name":"卧牛石乡"}]},{"code":"210181","name":"新民市","children":[{"code":"210181001","name":"东城街道"},{"code":"210181002","name":"辽滨街道"},{"code":"210181003","name":"西城街道"},{"code":"210181004","name":"新柳街道"},{"code":"210181101","name":"大红旗镇"},{"code":"210181102","name":"梁山镇"},{"code":"210181103","name":"公主屯镇"},{"code":"210181104","name":"兴隆镇"},{"code":"210181105","name":"前当堡镇"},{"code":"210181106","name":"大民屯镇"},{"code":"210181107","name":"大柳屯镇"},{"code":"210181108","name":"兴隆堡镇"},{"code":"210181109","name":"胡台镇"},{"code":"210181110","name":"法哈牛镇"},{"code":"210181111","name":"柳河沟镇"},{"code":"210181112","name":"高台子镇"},{"code":"210181113","name":"张家屯镇"},{"code":"210181114","name":"罗家房镇"},{"code":"210181115","name":"三道岗子镇"},{"code":"210181116","name":"东蛇山子镇"},{"code":"210181117","name":"陶家屯镇"},{"code":"210181118","name":"周坨子镇"},{"code":"210181119","name":"金五台子镇"},{"code":"210181120","name":"新农村镇"},{"code":"210181205","name":"红旗乡"},{"code":"210181206","name":"卢家屯乡"},{"code":"210181207","name":"姚堡乡"},{"code":"210181209","name":"于家窝堡乡"}]}]},{"code":"2102","name":"大连市","children":[{"code":"210202","name":"中山区","children":[{"code":"210202001","name":"海军广场街道"},{"code":"210202005","name":"人民路街道"},{"code":"210202008","name":"青泥洼桥街道"},{"code":"210202010","name":"葵英街道"},{"code":"210202011","name":"桃源街道"},{"code":"210202012","name":"老虎滩街道"}]},{"code":"210203","name":"西岗区","children":[{"code":"210203001","name":"香炉礁街道"},{"code":"210203004","name":"日新街道"},{"code":"210203010","name":"八一路街道"},{"code":"210203011","name":"人民广场街道"},{"code":"210203013","name":"白云街道"}]},{"code":"210204","name":"沙河口区","children":[{"code":"210204006","name":"春柳街道"},{"code":"210204008","name":"马栏街道"},{"code":"210204009","name":"南沙河口街道"},{"code":"210204010","name":"黑石礁街道"},{"code":"210204011","name":"李家街道"},{"code":"210204017","name":"星海湾街道"},{"code":"210204018","name":"西安路街道"}]},{"code":"210211","name":"甘井子区","children":[{"code":"210211001","name":"周水子街道"},{"code":"210211002","name":"椒金山街道"},{"code":"210211004","name":"甘井子街道"},{"code":"210211006","name":"南关岭街道"},{"code":"210211007","name":"泡崖街道"},{"code":"210211008","name":"中华路街道"},{"code":"210211010","name":"机场街道"},{"code":"210211014","name":"辛寨子街道"},{"code":"210211015","name":"红旗街道"},{"code":"210211016","name":"凌水街道"},{"code":"210211017","name":"大连湾街道"},{"code":"210211018","name":"泉水街道"},{"code":"210211019","name":"革镇堡街道"},{"code":"210211020","name":"营城子街道"},{"code":"210211021","name":"七贤岭街道"},{"code":"210211400","name":"大连华侨果树农场"}]},{"code":"210212","name":"旅顺口区","children":[{"code":"210212001","name":"登峰街道"},{"code":"210212003","name":"得胜街道"},{"code":"210212005","name":"水师营街道"},{"code":"210212006","name":"龙王塘街道"},{"code":"210212007","name":"铁山街道"},{"code":"210212009","name":"双岛湾街道"},{"code":"210212010","name":"三涧堡街道"},{"code":"210212011","name":"长城街道"},{"code":"210212012","name":"龙头街道"},{"code":"210212400","name":"旅顺经济开发区"},{"code":"210212401","name":"大连奶牛场"},{"code":"210212402","name":"龙头分园"}]},{"code":"210213","name":"金州区","children":[{"code":"210213001","name":"拥政街道"},{"code":"210213002","name":"友谊街道"},{"code":"210213004","name":"马桥子街道"},{"code":"210213005","name":"海青岛街道"},{"code":"210213006","name":"大孤山街道"},{"code":"210213008","name":"站前街道"},{"code":"210213009","name":"先进街道"},{"code":"210213011","name":"董家沟街道"},{"code":"210213012","name":"金石滩街道"},{"code":"210213013","name":"湾里街道"},{"code":"210213014","name":"二十里堡街道"},{"code":"210213016","name":"亮甲店街道"},{"code":"210213017","name":"登沙河街道"},{"code":"210213019","name":"大魏家街道"},{"code":"210213020","name":"杏树街道"},{"code":"210213021","name":"七顶山街道"},{"code":"210213022","name":"华家街道"},{"code":"210213023","name":"向应街道"},{"code":"210213024","name":"大李家街道"},{"code":"210213025","name":"得胜街道"},{"code":"210213027","name":"炮台街道"},{"code":"210213028","name":"复州湾街道"},{"code":"210213029","name":"三十里堡街道"},{"code":"210213030","name":"石河街道"},{"code":"210213031","name":"光中街道"}]},{"code":"210214","name":"普兰店区","children":[{"code":"210214001","name":"丰荣街道"},{"code":"210214002","name":"铁西街道"},{"code":"210214003","name":"太平街道"},{"code":"210214005","name":"皮口街道"},{"code":"210214006","name":"城子坦街道"},{"code":"210214007","name":"大刘家街道"},{"code":"210214008","name":"杨树房街道"},{"code":"210214009","name":"大谭街道"},{"code":"210214010","name":"唐家房街道"},{"code":"210214011","name":"莲山街道"},{"code":"210214012","name":"安波街道"},{"code":"210214013","name":"沙包街道"},{"code":"210214014","name":"星台街道"},{"code":"210214015","name":"墨盘街道"},{"code":"210214016","name":"同益街道"},{"code":"210214017","name":"乐甲街道"},{"code":"210214018","name":"双塔街道"},{"code":"210214019","name":"四平街道"}]},{"code":"210224","name":"长海县","children":[{"code":"210224100","name":"大长山岛镇"},{"code":"210224101","name":"獐子岛镇"},{"code":"210224102","name":"广鹿岛镇"},{"code":"210224103","name":"小长山岛镇"},{"code":"210224104","name":"海洋岛镇"}]},{"code":"210281","name":"瓦房店市","children":[{"code":"210281001","name":"新华街道"},{"code":"210281002","name":"文兰街道"},{"code":"210281003","name":"岭东街道"},{"code":"210281004","name":"共济街道"},{"code":"210281005","name":"铁东街道"},{"code":"210281006","name":"祝华街道"},{"code":"210281007","name":"岗店街道"},{"code":"210281008","name":"太阳街道"},{"code":"210281009","name":"长兴岛街道"},{"code":"210281010","name":"九龙街道"},{"code":"210281011","name":"交流岛街道"},{"code":"210281101","name":"复州城镇"},{"code":"210281103","name":"松树镇"},{"code":"210281105","name":"得利寺镇"},{"code":"210281106","name":"万家岭镇"},{"code":"210281107","name":"许屯镇"},{"code":"210281108","name":"永宁镇"},{"code":"210281109","name":"谢屯镇"},{"code":"210281112","name":"老虎屯镇"},{"code":"210281113","name":"红沿河镇"},{"code":"210281115","name":"李官镇"},{"code":"210281116","name":"仙浴湾镇"},{"code":"210281117","name":"元台镇"},{"code":"210281118","name":"瓦窝镇"},{"code":"210281201","name":"赵屯乡"},{"code":"210281203","name":"土城乡"},{"code":"210281204","name":"阎店乡"},{"code":"210281205","name":"西杨乡"},{"code":"210281206","name":"驼山乡"},{"code":"210281208","name":"三台满族乡"},{"code":"210281210","name":"泡崖乡"},{"code":"210281212","name":"杨家满族乡"}]},{"code":"210283","name":"庄河市","children":[{"code":"210283001","name":"城关街道"},{"code":"210283002","name":"新华街道"},{"code":"210283003","name":"兴达街道"},{"code":"210283004","name":"昌盛街道"},{"code":"210283005","name":"明阳街道"},{"code":"210283101","name":"青堆镇"},{"code":"210283102","name":"徐岭镇"},{"code":"210283104","name":"黑岛镇"},{"code":"210283105","name":"栗子房镇"},{"code":"210283107","name":"大营镇"},{"code":"210283108","name":"塔岭镇"},{"code":"210283109","name":"仙人洞镇"},{"code":"210283110","name":"蓉花山镇"},{"code":"210283111","name":"长岭镇"},{"code":"210283112","name":"荷花山镇"},{"code":"210283113","name":"城山镇"},{"code":"210283114","name":"光明山镇"},{"code":"210283115","name":"大郑镇"},{"code":"210283118","name":"吴炉镇"},{"code":"210283120","name":"王家镇"},{"code":"210283204","name":"鞍子山乡"},{"code":"210283208","name":"太平岭满族乡"},{"code":"210283209","name":"步云山乡"},{"code":"210283211","name":"桂云花满族乡"},{"code":"210283214","name":"兰店乡"},{"code":"210283216","name":"石城乡"}]}]},{"code":"2103","name":"鞍山市","children":[{"code":"210302","name":"铁东区","children":[{"code":"210302002","name":"解放街道"},{"code":"210302003","name":"山南街道"},{"code":"210302004","name":"园林街道"},{"code":"210302006","name":"站前街道"},{"code":"210302008","name":"和平街道"},{"code":"210302011","name":"湖南街道"},{"code":"210302013","name":"新兴街道"},{"code":"210302014","name":"旧堡街道"},{"code":"210302015","name":"大孤山街道"},{"code":"210302017","name":"长甸街道"},{"code":"210302400","name":"玉佛山风景区"}]},{"code":"210303","name":"铁西区","children":[{"code":"210303002","name":"繁荣街道"},{"code":"210303003","name":"八家子街道"},{"code":"210303005","name":"共和街道"},{"code":"210303006","name":"永乐街道"},{"code":"210303008","name":"南华街道"},{"code":"210303009","name":"大陆街道"},{"code":"210303012","name":"永发街道"},{"code":"210303013","name":"宁远街道"},{"code":"210303014","name":"达道湾街道"}]},{"code":"210304","name":"立山区","children":[{"code":"210304001","name":"友好街道"},{"code":"210304004","name":"双山街道"},{"code":"210304006","name":"立山街道"},{"code":"210304008","name":"曙光街道"},{"code":"210304009","name":"灵山街道"},{"code":"210304014","name":"深沟寺街道"},{"code":"210304015","name":"沙河街道"},{"code":"210304017","name":"千山街道"},{"code":"210304019","name":"齐大山街道"}]},{"code":"210311","name":"千山区","children":[{"code":"210311006","name":"汤岗子街道"},{"code":"210311007","name":"东鞍山街道"},{"code":"210311102","name":"唐家房镇"},{"code":"210311103","name":"大屯镇"},{"code":"210311104","name":"甘泉镇"}]},{"code":"210321","name":"台安县","children":[{"code":"210321001","name":"八角台街道"},{"code":"210321002","name":"台东街道"},{"code":"210321101","name":"西佛镇"},{"code":"210321102","name":"新开河镇"},{"code":"210321103","name":"黄沙坨镇"},{"code":"210321104","name":"高力房镇"},{"code":"210321105","name":"桑林镇"},{"code":"210321106","name":"富家镇"},{"code":"210321107","name":"达牛镇"},{"code":"210321109","name":"韭菜台镇"},{"code":"210321110","name":"新台镇"},{"code":"210321111","name":"桓洞镇"},{"code":"210321400","name":"新华农场"},{"code":"210321401","name":"洪家农牧场"}]},{"code":"210323","name":"岫岩满族自治县","children":[{"code":"210323001","name":"阜昌街道"},{"code":"210323003","name":"兴隆街道"},{"code":"210323004","name":"雅河街道"},{"code":"210323101","name":"三家子镇"},{"code":"210323102","name":"石庙子镇"},{"code":"210323103","name":"黄花甸镇"},{"code":"210323104","name":"大营子镇"},{"code":"210323105","name":"苏子沟镇"},{"code":"210323106","name":"偏岭镇"},{"code":"210323107","name":"哈达碑镇"},{"code":"210323108","name":"新甸镇"},{"code":"210323109","name":"洋河镇"},{"code":"210323111","name":"杨家堡镇"},{"code":"210323112","name":"清凉山镇"},{"code":"210323113","name":"石灰窑镇"},{"code":"210323114","name":"前营镇"},{"code":"210323115","name":"龙潭镇"},{"code":"210323116","name":"牧牛镇"},{"code":"210323117","name":"药山镇"},{"code":"210323118","name":"大房身镇"},{"code":"210323119","name":"朝阳镇"},{"code":"210323206","name":"红旗营子乡"},{"code":"210323211","name":"岭沟乡"},{"code":"210323212","name":"哨子河乡"}]},{"code":"210381","name":"海城市","children":[{"code":"210381001","name":"海州街道"},{"code":"210381002","name":"兴海街道"},{"code":"210381003","name":"响堂街道"},{"code":"210381004","name":"东四街道"},{"code":"210381006","name":"温泉街道"},{"code":"210381101","name":"孤山镇"},{"code":"210381102","name":"岔沟镇"},{"code":"210381103","name":"接文镇"},{"code":"210381104","name":"析木镇"},{"code":"210381105","name":"马风镇"},{"code":"210381107","name":"牌楼镇"},{"code":"210381108","name":"八里镇"},{"code":"210381109","name":"毛祁镇"},{"code":"210381110","name":"英落镇"},{"code":"210381111","name":"感王镇"},{"code":"210381112","name":"西柳镇"},{"code":"210381113","name":"中小镇"},{"code":"210381114","name":"王石镇"},{"code":"210381115","name":"南台镇"},{"code":"210381118","name":"腾鳌镇"},{"code":"210381121","name":"耿庄镇"},{"code":"210381123","name":"牛庄镇"},{"code":"210381124","name":"西四镇"},{"code":"210381125","name":"望台镇"},{"code":"210381126","name":"温香镇"},{"code":"210381127","name":"高坨镇"}]}]},{"code":"2104","name":"抚顺市","children":[{"code":"210402","name":"新抚区","children":[{"code":"210402001","name":"站前街道"},{"code":"210402005","name":"福民街道"},{"code":"210402007","name":"新抚街道"},{"code":"210402009","name":"榆林街道"},{"code":"210402011","name":"永安台街道"},{"code":"210402019","name":"刘山街道"},{"code":"210402201","name":"千金乡"}]},{"code":"210403","name":"东洲区","children":[{"code":"210403002","name":"东洲街道"},{"code":"210403004","name":"搭连街道"},{"code":"210403005","name":"龙凤街道"},{"code":"210403006","name":"新屯街道"},{"code":"210403007","name":"万新街道"},{"code":"210403008","name":"老虎台街道"},{"code":"210403012","name":"章党街道"},{"code":"210403103","name":"章党镇"},{"code":"210403104","name":"哈达镇"},{"code":"210403202","name":"碾盘乡"},{"code":"210403215","name":"兰山乡"}]},{"code":"210404","name":"望花区","children":[{"code":"210404002","name":"工农街道"},{"code":"210404003","name":"建设街道"},{"code":"210404004","name":"和平街道"},{"code":"210404005","name":"光明街道"},{"code":"210404006","name":"朴屯街道"},{"code":"210404007","name":"演武街道"},{"code":"210404011","name":"李石街道"},{"code":"210404101","name":"塔峪镇"},{"code":"210404201","name":"拉古满族乡"}]},{"code":"210411","name":"顺城区","children":[{"code":"210411002","name":"长春街道"},{"code":"210411003","name":"葛布街道"},{"code":"210411004","name":"将军堡街道"},{"code":"210411005","name":"新华街道"},{"code":"210411007","name":"抚顺城街道"},{"code":"210411102","name":"前甸镇"},{"code":"210411201","name":"河北乡"},{"code":"210411205","name":"会元乡"}]},{"code":"210421","name":"抚顺县","children":[{"code":"210421101","name":"石文镇"},{"code":"210421102","name":"后安镇"},{"code":"210421105","name":"上马镇"},{"code":"210421106","name":"救兵镇"},{"code":"210421204","name":"马圈子乡"},{"code":"210421209","name":"峡河乡"},{"code":"210421211","name":"海浪乡"},{"code":"210421216","name":"汤图满族乡"}]},{"code":"210422","name":"新宾满族自治县","children":[{"code":"210422100","name":"新宾镇"},{"code":"210422101","name":"旺清门镇"},{"code":"210422102","name":"永陵镇"},{"code":"210422103","name":"平顶山镇"},{"code":"210422104","name":"大四平镇"},{"code":"210422105","name":"苇子峪镇"},{"code":"210422106","name":"木奇镇"},{"code":"210422108","name":"上夹河镇"},{"code":"210422109","name":"南杂木镇"},{"code":"210422202","name":"红升乡"},{"code":"210422203","name":"响水河子乡"},{"code":"210422204","name":"红庙子乡"},{"code":"210422205","name":"北四平乡"},{"code":"210422207","name":"榆树乡"},{"code":"210422208","name":"下夹河乡"}]},{"code":"210423","name":"清原满族自治县","children":[{"code":"210423100","name":"清原镇"},{"code":"210423101","name":"红透山镇"},{"code":"210423103","name":"草市镇"},{"code":"210423104","name":"英额门镇"},{"code":"210423105","name":"南口前镇"},{"code":"210423106","name":"南山城镇"},{"code":"210423107","name":"湾甸子镇"},{"code":"210423108","name":"大孤家镇"},{"code":"210423109","name":"夏家堡镇"},{"code":"210423110","name":"北三家镇"},{"code":"210423203","name":"土口子乡"},{"code":"210423206","name":"敖家堡乡"},{"code":"210423207","name":"大苏河乡"},{"code":"210423208","name":"枸乃甸乡"}]}]},{"code":"2105","name":"本溪市","children":[{"code":"210502","name":"平山区","children":[{"code":"210502001","name":"南地街道"},{"code":"210502003","name":"平山街道"},{"code":"210502004","name":"东明街道"},{"code":"210502005","name":"崔东街道"},{"code":"210502007","name":"站前街道"},{"code":"210502008","name":"千金街道"},{"code":"210502012","name":"桥北街道"}]},{"code":"210503","name":"溪湖区","children":[{"code":"210503001","name":"河东街道"},{"code":"210503003","name":"河西街道"},{"code":"210503005","name":"彩屯街道"},{"code":"210503009","name":"东风街道"},{"code":"210503010","name":"石桥子街道"},{"code":"210503011","name":"日月岛街道"},{"code":"210503013","name":"火连寨街道"}]},{"code":"210504","name":"明山区","children":[{"code":"210504002","name":"北地街道"},{"code":"210504004","name":"高峪街道"},{"code":"210504005","name":"明山街道"},{"code":"210504008","name":"新明街道"},{"code":"210504009","name":"牛心台街道"},{"code":"210504010","name":"卧龙街道"},{"code":"210504011","name":"高台子街道"}]},{"code":"210505","name":"南芬区","children":[{"code":"210505001","name":"南芬街道"},{"code":"210505004","name":"思山岭街道"},{"code":"210505005","name":"下马塘街道"}]},{"code":"210521","name":"本溪满族自治县","children":[{"code":"210521001","name":"观音阁街道"},{"code":"210521100","name":"小市镇"},{"code":"210521101","name":"草河掌镇"},{"code":"210521102","name":"草河城镇"},{"code":"210521103","name":"草河口镇"},{"code":"210521104","name":"连山关镇"},{"code":"210521106","name":"清河城镇"},{"code":"210521109","name":"田师傅镇"},{"code":"210521110","name":"南甸子镇"},{"code":"210521111","name":"碱厂镇"},{"code":"210521112","name":"高官镇"},{"code":"210521202","name":"东营坊乡"}]},{"code":"210522","name":"桓仁满族自治县","children":[{"code":"210522001","name":"八卦城街道"},{"code":"210522100","name":"桓仁镇"},{"code":"210522101","name":"普乐堡镇"},{"code":"210522102","name":"二棚甸子镇"},{"code":"210522103","name":"沙尖子镇"},{"code":"210522104","name":"五里甸子镇"},{"code":"210522108","name":"八里甸子镇"},{"code":"210522110","name":"华来镇"},{"code":"210522111","name":"古城镇"},{"code":"210522201","name":"雅河朝鲜族乡"},{"code":"210522202","name":"向阳乡"},{"code":"210522206","name":"黑沟乡"},{"code":"210522208","name":"北甸子乡"}]}]},{"code":"2106","name":"丹东市","children":[{"code":"210602","name":"元宝区","children":[{"code":"210602002","name":"七道街道"},{"code":"210602003","name":"广济街道"},{"code":"210602004","name":"九道街道"},{"code":"210602006","name":"兴东街道"},{"code":"210602101","name":"金山镇"}]},{"code":"210603","name":"振兴区","children":[{"code":"210603002","name":"站前街道"},{"code":"210603003","name":"临江街道"},{"code":"210603005","name":"帽盔山街道"},{"code":"210603006","name":"纤维街道"},{"code":"210603007","name":"永昌街道"},{"code":"210603008","name":"花园街道"},{"code":"210603009","name":"江海街道"},{"code":"210603101","name":"浪头镇"},{"code":"210603102","name":"安民镇"},{"code":"210603103","name":"汤池镇"}]},{"code":"210604","name":"振安区","children":[{"code":"210604001","name":"鸭绿江街道"},{"code":"210604003","name":"金矿街道"},{"code":"210604004","name":"珍珠街道"},{"code":"210604005","name":"太平湾街道"},{"code":"210604102","name":"同兴镇"},{"code":"210604104","name":"五龙背镇"},{"code":"210604105","name":"楼房镇"},{"code":"210604106","name":"九连城镇"},{"code":"210604107","name":"汤山城镇"}]},{"code":"210624","name":"宽甸满族自治县","children":[{"code":"210624100","name":"宽甸镇"},{"code":"210624101","name":"灌水镇"},{"code":"210624102","name":"硼海镇"},{"code":"210624103","name":"红石镇"},{"code":"210624104","name":"毛甸子镇"},{"code":"210624105","name":"长甸镇"},{"code":"210624106","name":"永甸镇"},{"code":"210624108","name":"太平哨镇"},{"code":"210624109","name":"青山沟镇"},{"code":"210624110","name":"牛毛坞镇"},{"code":"210624111","name":"大川头镇"},{"code":"210624112","name":"青椅山镇"},{"code":"210624113","name":"杨木川镇"},{"code":"210624114","name":"虎山镇"},{"code":"210624115","name":"振江镇"},{"code":"210624116","name":"步达远镇"},{"code":"210624117","name":"大西岔镇"},{"code":"210624118","name":"八河川镇"},{"code":"210624119","name":"双山子镇"},{"code":"210624201","name":"石湖沟乡"},{"code":"210624206","name":"古楼子乡"},{"code":"210624212","name":"下露河朝鲜族乡"}]},{"code":"210681","name":"东港市","children":[{"code":"210681001","name":"大东街道"},{"code":"210681002","name":"新兴街道"},{"code":"210681003","name":"新城街道"},{"code":"210681101","name":"孤山镇"},{"code":"210681104","name":"前阳镇"},{"code":"210681105","name":"长安镇"},{"code":"210681106","name":"十字街镇"},{"code":"210681107","name":"长山镇"},{"code":"210681108","name":"北井子镇"},{"code":"210681109","name":"椅圈镇"},{"code":"210681110","name":"黄土坎镇"},{"code":"210681113","name":"马家店镇"},{"code":"210681114","name":"龙王庙镇"},{"code":"210681115","name":"小甸子镇"},{"code":"210681117","name":"菩萨庙镇"},{"code":"210681118","name":"黑沟镇"},{"code":"210681119","name":"新农镇"},{"code":"210681206","name":"合隆满族乡"},{"code":"210681401","name":"示范农场"},{"code":"210681402","name":"黄土坎农场"},{"code":"210681403","name":"海洋红农场"},{"code":"210681404","name":"兴隆农场"},{"code":"210681405","name":"五四农场"}]},{"code":"210682","name":"凤城市","children":[{"code":"210682001","name":"凤凰城街道"},{"code":"210682002","name":"凤山街道"},{"code":"210682003","name":"草河街道"},{"code":"210682101","name":"宝山镇"},{"code":"210682102","name":"白旗镇"},{"code":"210682103","name":"沙里寨镇"},{"code":"210682104","name":"红旗镇"},{"code":"210682105","name":"蓝旗镇"},{"code":"210682107","name":"边门镇"},{"code":"210682110","name":"东汤镇"},{"code":"210682111","name":"石城镇"},{"code":"210682112","name":"大兴镇"},{"code":"210682113","name":"爱阳镇"},{"code":"210682114","name":"赛马镇"},{"code":"210682115","name":"弟兄山镇"},{"code":"210682116","name":"鸡冠山镇"},{"code":"210682117","name":"刘家河镇"},{"code":"210682118","name":"通远堡镇"},{"code":"210682119","name":"四门子镇"},{"code":"210682120","name":"青城子镇"},{"code":"210682200","name":"大堡蒙古族乡"}]}]},{"code":"2107","name":"锦州市","children":[{"code":"210702","name":"古塔区","children":[{"code":"210702002","name":"石油街道"},{"code":"210702003","name":"古城街道"},{"code":"210702004","name":"敬业街道"},{"code":"210702005","name":"保安街道"},{"code":"210702009","name":"士英街道"}]},{"code":"210703","name":"凌河区","children":[{"code":"210703002","name":"石桥子街道"},{"code":"210703003","name":"龙江街道"},{"code":"210703004","name":"榴花街道"},{"code":"210703008","name":"康宁街道"},{"code":"210703009","name":"锦铁街道"},{"code":"210703011","name":"紫荆街道"},{"code":"210703403","name":"锦州北山农工商总公司"}]},{"code":"210711","name":"太和区","children":[{"code":"210711004","name":"太和街道"},{"code":"210711008","name":"大薛街道"},{"code":"210711011","name":"新民街道"},{"code":"210711012","name":"营盘街道"},{"code":"210711013","name":"女儿河街道"},{"code":"210711071","name":"天桥街道"},{"code":"210711072","name":"杏山街道"},{"code":"210711073","name":"娘娘宫街道"},{"code":"210711080","name":"凌南街道"},{"code":"210711081","name":"松山街道"},{"code":"210711480","name":"锦州市果树农场"}]},{"code":"210726","name":"黑山县","children":[{"code":"210726001","name":"黑山街道"},{"code":"210726002","name":"大虎山街道"},{"code":"210726101","name":"芳山镇"},{"code":"210726102","name":"白厂门镇"},{"code":"210726103","name":"常兴镇"},{"code":"210726104","name":"姜屯镇"},{"code":"210726105","name":"励家镇"},{"code":"210726106","name":"绕阳河镇"},{"code":"210726107","name":"半拉门镇"},{"code":"210726108","name":"无梁殿镇"},{"code":"210726109","name":"胡家镇"},{"code":"210726110","name":"新立屯镇"},{"code":"210726111","name":"八道壕镇"},{"code":"210726113","name":"四家子镇"},{"code":"210726114","name":"新兴镇"},{"code":"210726116","name":"太和镇"},{"code":"210726117","name":"镇安镇"},{"code":"210726201","name":"英城子乡"},{"code":"210726209","name":"段家乡"},{"code":"210726210","name":"大兴乡"},{"code":"210726212","name":"薛屯乡"},{"code":"210726400","name":"辽宁省锦州市小东种畜场"}]},{"code":"210727","name":"义县","children":[{"code":"210727001","name":"义州街道"},{"code":"210727002","name":"城关街道"},{"code":"210727101","name":"刘龙台镇"},{"code":"210727102","name":"七里河镇"},{"code":"210727103","name":"大榆树堡镇"},{"code":"210727104","name":"稍户营子镇"},{"code":"210727105","name":"九道岭镇"},{"code":"210727106","name":"高台子镇"},{"code":"210727108","name":"瓦子峪镇"},{"code":"210727109","name":"头台镇"},{"code":"210727110","name":"前杨镇"},{"code":"210727111","name":"张家堡镇"},{"code":"210727112","name":"头道河镇"},{"code":"210727113","name":"留龙沟镇"},{"code":"210727114","name":"聚粮屯镇"},{"code":"210727203","name":"地藏寺满族乡"},{"code":"210727205","name":"大定堡满族乡"},{"code":"210727207","name":"白庙子乡"}]},{"code":"210781","name":"凌海市","children":[{"code":"210781001","name":"大凌河街道"},{"code":"210781002","name":"金城街道"},{"code":"210781003","name":"八千街道"},{"code":"210781101","name":"石山镇"},{"code":"210781102","name":"余积镇"},{"code":"210781103","name":"双羊镇"},{"code":"210781104","name":"班吉塔镇"},{"code":"210781105","name":"沈家台镇"},{"code":"210781106","name":"三台子镇"},{"code":"210781107","name":"右卫镇"},{"code":"210781108","name":"阎家镇"},{"code":"210781109","name":"新庄子镇"},{"code":"210781112","name":"翠岩镇"},{"code":"210781113","name":"安屯镇"},{"code":"210781114","name":"大业镇"},{"code":"210781116","name":"建业镇"},{"code":"210781117","name":"温滴楼镇"},{"code":"210781118","name":"白台子镇"},{"code":"210781212","name":"板石沟乡"},{"code":"210781217","name":"谢屯乡"},{"code":"210781401","name":"辽宁省金城原种场"}]},{"code":"210782","name":"北镇市","children":[{"code":"210782004","name":"北镇街道"},{"code":"210782006","name":"富屯街道"},{"code":"210782007","name":"广宁街道"},{"code":"210782008","name":"沟帮子街道"},{"code":"210782101","name":"大市镇"},{"code":"210782102","name":"罗罗堡镇"},{"code":"210782103","name":"常兴店镇"},{"code":"210782104","name":"正安镇"},{"code":"210782105","name":"闾阳镇"},{"code":"210782106","name":"中安镇"},{"code":"210782107","name":"廖屯镇"},{"code":"210782109","name":"赵屯镇"},{"code":"210782110","name":"青堆子镇"},{"code":"210782111","name":"高山子镇"},{"code":"210782113","name":"吴家镇"},{"code":"210782203","name":"鲍家乡"},{"code":"210782206","name":"大屯乡"},{"code":"210782209","name":"柳家乡"},{"code":"210782402","name":"辽宁省北镇市高山子监狱"},{"code":"210782403","name":"新立农场"}]}]},{"code":"2108","name":"营口市","children":[{"code":"210802","name":"站前区","children":[{"code":"210802001","name":"八田地街道"},{"code":"210802002","name":"建丰街道"},{"code":"210802003","name":"建设街道"},{"code":"210802004","name":"跃进街道"},{"code":"210802007","name":"新建街道"},{"code":"210802008","name":"东兴街道"}]},{"code":"210803","name":"西市区","children":[{"code":"210803002","name":"清华街道"},{"code":"210803003","name":"滨海街道"},{"code":"210803004","name":"得胜街道"},{"code":"210803005","name":"五台子街道"},{"code":"210803006","name":"渔市街道"},{"code":"210803400","name":"辽宁自贸区营口片区"},{"code":"210803401","name":"辽宁(营口)沿海产业基地"}]},{"code":"210804","name":"鲅鱼圈区","children":[{"code":"210804001","name":"红海街道"},{"code":"210804002","name":"海星街道"},{"code":"210804003","name":"望海街道"},{"code":"210804100","name":"熊岳镇"},{"code":"210804101","name":"芦屯镇"},{"code":"210804102","name":"红旗镇"}]},{"code":"210811","name":"老边区","children":[{"code":"210811001","name":"老边街道"},{"code":"210811101","name":"路南镇"},{"code":"210811102","name":"柳树镇"},{"code":"210811103","name":"边城镇"},{"code":"210811400","name":"营口辽河经济开发区"}]},{"code":"210881","name":"盖州市","children":[{"code":"210881001","name":"鼓楼街道"},{"code":"210881002","name":"西城街道"},{"code":"210881003","name":"东城街道"},{"code":"210881004","name":"太阳升街道"},{"code":"210881005","name":"团山街道"},{"code":"210881006","name":"西海街道"},{"code":"210881007","name":"九垄地街道"},{"code":"210881008","name":"归州街道"},{"code":"210881102","name":"高屯镇"},{"code":"210881105","name":"沙岗镇"},{"code":"210881109","name":"九寨镇"},{"code":"210881110","name":"万福镇"},{"code":"210881111","name":"卧龙泉镇"},{"code":"210881112","name":"青石岭镇"},{"code":"210881113","name":"暖泉镇"},{"code":"210881116","name":"榜式堡镇"},{"code":"210881117","name":"团甸镇"},{"code":"210881118","name":"双台镇"},{"code":"210881119","name":"杨运镇"},{"code":"210881120","name":"徐屯镇"},{"code":"210881121","name":"什字街镇"},{"code":"210881122","name":"矿洞沟镇"},{"code":"210881123","name":"陈屯镇"},{"code":"210881124","name":"梁屯镇"},{"code":"210881216","name":"小石棚乡"},{"code":"210881217","name":"果园乡"},{"code":"210881218","name":"二台乡"}]},{"code":"210882","name":"大石桥市","children":[{"code":"210882003","name":"金桥街道"},{"code":"210882004","name":"钢都街道"},{"code":"210882005","name":"百寨街道"},{"code":"210882006","name":"镁都街道"},{"code":"210882101","name":"水源镇"},{"code":"210882102","name":"沟沿镇"},{"code":"210882103","name":"石佛镇"},{"code":"210882104","name":"高坎镇"},{"code":"210882105","name":"旗口镇"},{"code":"210882106","name":"虎庄镇"},{"code":"210882107","name":"官屯镇"},{"code":"210882112","name":"博洛铺镇"},{"code":"210882113","name":"永安镇"},{"code":"210882114","name":"汤池镇"},{"code":"210882115","name":"建一镇"},{"code":"210882116","name":"黄土岭镇"},{"code":"210882117","name":"周家镇"},{"code":"210882400","name":"大石桥市水稻良种场"},{"code":"210882401","name":"大石桥市示范场"}]}]},{"code":"2109","name":"阜新市","children":[{"code":"210902","name":"海州区","children":[{"code":"210902003","name":"和平街道"},{"code":"210902004","name":"西山街道"},{"code":"210902005","name":"河北街道"},{"code":"210902006","name":"站前街道"},{"code":"210902008","name":"五龙街道"},{"code":"210902009","name":"平安西部街道"},{"code":"210902101","name":"韩家店镇"}]},{"code":"210903","name":"新邱区","children":[{"code":"210903005","name":"街基街道"},{"code":"210903006","name":"新发屯街道"},{"code":"210903101","name":"长营子镇"}]},{"code":"210904","name":"太平区","children":[{"code":"210904001","name":"红树街道"},{"code":"210904003","name":"高德街道"},{"code":"210904004","name":"孙家湾街道"},{"code":"210904101","name":"水泉镇"}]},{"code":"210905","name":"清河门区","children":[{"code":"210905001","name":"清河街道"},{"code":"210905004","name":"新北街道"},{"code":"210905101","name":"河西镇"},{"code":"210905102","name":"乌龙坝镇"}]},{"code":"210911","name":"细河区","children":[{"code":"210911001","name":"玉新街道"},{"code":"210911007","name":"玉龙街道"},{"code":"210911008","name":"玉丰街道"},{"code":"210911102","name":"四合镇"},{"code":"210911401","name":"六家子管委会"}]},{"code":"210921","name":"阜新蒙古族自治县","children":[{"code":"210921001","name":"城区街道"},{"code":"210921100","name":"阜新镇"},{"code":"210921102","name":"东梁镇"},{"code":"210921103","name":"佛寺镇"},{"code":"210921104","name":"伊吗图镇"},{"code":"210921105","name":"旧庙镇"},{"code":"210921106","name":"务欢池镇"},{"code":"210921107","name":"建设镇"},{"code":"210921108","name":"大巴镇"},{"code":"210921109","name":"泡子镇"},{"code":"210921110","name":"十家子镇"},{"code":"210921111","name":"王府镇"},{"code":"210921112","name":"于寺镇"},{"code":"210921113","name":"富荣镇"},{"code":"210921114","name":"新民镇"},{"code":"210921115","name":"福兴地镇"},{"code":"210921116","name":"平安地镇"},{"code":"210921117","name":"沙拉镇"},{"code":"210921118","name":"大固本镇"},{"code":"210921119","name":"大五家子镇"},{"code":"210921120","name":"大板镇"},{"code":"210921121","name":"招束沟镇"},{"code":"210921122","name":"八家子镇"},{"code":"210921123","name":"蜘蛛山镇"},{"code":"210921124","name":"塔营子镇"},{"code":"210921125","name":"扎兰营子镇"},{"code":"210921126","name":"七家子镇"},{"code":"210921127","name":"红帽子镇"},{"code":"210921128","name":"紫都台镇"},{"code":"210921129","name":"化石戈镇"},{"code":"210921130","name":"哈达户稍镇"},{"code":"210921131","name":"老河土镇"},{"code":"210921132","name":"太平镇"},{"code":"210921203","name":"卧凤沟乡"},{"code":"210921211","name":"苍土乡"},{"code":"210921222","name":"国华乡"},{"code":"210921401","name":"田家管理委员会"}]},{"code":"210922","name":"彰武县","children":[{"code":"210922100","name":"彰武镇"},{"code":"210922101","name":"哈尔套镇"},{"code":"210922102","name":"章古台镇"},{"code":"210922103","name":"五峰镇"},{"code":"210922104","name":"冯家镇"},{"code":"210922105","name":"后新秋镇"},{"code":"210922106","name":"东六家子镇"},{"code":"210922107","name":"阿尔乡镇"},{"code":"210922108","name":"前福兴地镇"},{"code":"210922109","name":"双庙镇"},{"code":"210922110","name":"大四家子镇"},{"code":"210922111","name":"苇子沟镇"},{"code":"210922112","name":"兴隆山镇"},{"code":"210922113","name":"满堂红镇"},{"code":"210922114","name":"四合城镇"},{"code":"210922115","name":"大冷镇"},{"code":"210922116","name":"两家子镇"},{"code":"210922117","name":"平安镇"},{"code":"210922118","name":"四堡子镇"},{"code":"210922119","name":"西六家子镇"},{"code":"210922120","name":"大德镇"},{"code":"210922121","name":"兴隆堡镇"},{"code":"210922202","name":"二道河子蒙古族乡"},{"code":"210922209","name":"丰田乡"}]}]},{"code":"2110","name":"辽阳市","children":[{"code":"211002","name":"白塔区","children":[{"code":"211002016","name":"文圣街道"},{"code":"211002017","name":"武圣街道"},{"code":"211002018","name":"南门街道"},{"code":"211002019","name":"襄平街道"}]},{"code":"211003","name":"文圣区","children":[{"code":"211003004","name":"庆阳街道"},{"code":"211003008","name":"东京陵街道"},{"code":"211003101","name":"小屯镇"},{"code":"211003102","name":"罗大台镇"}]},{"code":"211004","name":"宏伟区","children":[{"code":"211004001","name":"工农街道"},{"code":"211004004","name":"长征街道"},{"code":"211004101","name":"曙光镇"},{"code":"211004102","name":"兰家镇"}]},{"code":"211005","name":"弓长岭区","children":[{"code":"211005001","name":"苏家街道"},{"code":"211005003","name":"安平街道"},{"code":"211005101","name":"汤河镇"},{"code":"211005201","name":"安平乡"}]},{"code":"211011","name":"太子河区","children":[{"code":"211011003","name":"铁西街道"},{"code":"211011101","name":"祁家镇"},{"code":"211011102","name":"沙岭镇"},{"code":"211011103","name":"王家镇"},{"code":"211011204","name":"东宁卫乡"}]},{"code":"211021","name":"辽阳县","children":[{"code":"211021100","name":"首山镇"},{"code":"211021101","name":"刘二堡镇"},{"code":"211021103","name":"小北河镇"},{"code":"211021104","name":"黄泥洼镇"},{"code":"211021106","name":"唐马寨镇"},{"code":"211021107","name":"穆家镇"},{"code":"211021108","name":"柳壕镇"},{"code":"211021110","name":"河栏镇"},{"code":"211021111","name":"隆昌镇"},{"code":"211021112","name":"八会镇"},{"code":"211021113","name":"寒岭镇"},{"code":"211021114","name":"兴隆镇"},{"code":"211021201","name":"下达河乡"},{"code":"211021202","name":"吉洞峪满族乡"},{"code":"211021206","name":"甜水满族乡"}]},{"code":"211081","name":"灯塔市","children":[{"code":"211081001","name":"烟台街道"},{"code":"211081002","name":"万宝桥街道"},{"code":"211081003","name":"古城街道"},{"code":"211081101","name":"佟二堡镇"},{"code":"211081102","name":"铧子镇"},{"code":"211081103","name":"张台子镇"},{"code":"211081104","name":"西大窑镇"},{"code":"211081105","name":"沈旦堡镇"},{"code":"211081106","name":"西马峰镇"},{"code":"211081107","name":"柳条寨镇"},{"code":"211081108","name":"柳河子镇"},{"code":"211081111","name":"大河南镇"},{"code":"211081114","name":"五星镇"},{"code":"211081205","name":"鸡冠山乡"}]}]},{"code":"2111","name":"盘锦市","children":[{"code":"211102","name":"双台子区","children":[{"code":"211102002","name":"胜利街道"},{"code":"211102003","name":"建设街道"},{"code":"211102004","name":"红旗街道"},{"code":"211102005","name":"辽河街道"},{"code":"211102008","name":"铁东街道"},{"code":"211102009","name":"双盛街道"},{"code":"211102100","name":"统一镇"},{"code":"211102101","name":"陆家镇"}]},{"code":"211103","name":"兴隆台区","children":[{"code":"211103001","name":"振兴街道"},{"code":"211103002","name":"兴隆街道"},{"code":"211103003","name":"渤海街道"},{"code":"211103004","name":"新工街道"},{"code":"211103007","name":"曙光街道"},{"code":"211103008","name":"欢喜岭街道"},{"code":"211103013","name":"沈采街道"},{"code":"211103016","name":"创新街道"},{"code":"211103017","name":"兴盛街道"},{"code":"211103018","name":"兴海街道"},{"code":"211103019","name":"惠宾街道"}]},{"code":"211104","name":"大洼区","children":[{"code":"211104002","name":"二界沟街道"},{"code":"211104004","name":"大洼街道"},{"code":"211104005","name":"田家街道"},{"code":"211104006","name":"榆树街道"},{"code":"211104007","name":"王家街道"},{"code":"211104009","name":"于楼街道"},{"code":"211104101","name":"田庄台镇"},{"code":"211104103","name":"东风镇"},{"code":"211104104","name":"新开镇"},{"code":"211104106","name":"清水镇"},{"code":"211104107","name":"新兴镇"},{"code":"211104108","name":"西安镇"},{"code":"211104109","name":"新立镇"},{"code":"211104112","name":"唐家镇"},{"code":"211104113","name":"平安镇"},{"code":"211104114","name":"赵圈河镇"}]},{"code":"211122","name":"盘山县","children":[{"code":"211122001","name":"太平街道"},{"code":"211122002","name":"高升街道"},{"code":"211122003","name":"得胜街道"},{"code":"211122004","name":"东郭街道"},{"code":"211122101","name":"沙岭镇"},{"code":"211122103","name":"胡家镇"},{"code":"211122104","name":"石新镇"},{"code":"211122106","name":"羊圈子镇"},{"code":"211122107","name":"古城子镇"},{"code":"211122108","name":"坝墙子镇"},{"code":"211122110","name":"陈家镇"},{"code":"211122111","name":"甜水镇"},{"code":"211122112","name":"吴家镇"},{"code":"211122400","name":"盘山县林场"}]}]},{"code":"2112","name":"铁岭市","children":[{"code":"211202","name":"银州区","children":[{"code":"211202001","name":"红旗街道"},{"code":"211202002","name":"工人街道"},{"code":"211202003","name":"铁西街道"},{"code":"211202004","name":"铜钟街道"},{"code":"211202005","name":"柴河街道"},{"code":"211202006","name":"岭东街道"},{"code":"211202007","name":"辽海街道"},{"code":"211202201","name":"龙山乡"},{"code":"211202401","name":"铁岭经济技术开发区"}]},{"code":"211204","name":"清河区","children":[{"code":"211204001","name":"红旗街道"},{"code":"211204002","name":"向阳街道"},{"code":"211204101","name":"张相镇"},{"code":"211204102","name":"杨木林子镇"},{"code":"211204203","name":"聂家满族乡"}]},{"code":"211221","name":"铁岭县","children":[{"code":"211221101","name":"新台子镇"},{"code":"211221102","name":"阿吉镇"},{"code":"211221103","name":"平顶堡镇"},{"code":"211221104","name":"大甸子镇"},{"code":"211221105","name":"凡河镇"},{"code":"211221106","name":"腰堡镇"},{"code":"211221107","name":"镇西堡镇"},{"code":"211221108","name":"蔡牛镇"},{"code":"211221109","name":"李千户镇"},{"code":"211221110","name":"熊官屯镇"},{"code":"211221111","name":"横道河子镇"},{"code":"211221112","name":"双井子镇"},{"code":"211221208","name":"鸡冠山乡"},{"code":"211221209","name":"白旗寨满族乡"}]},{"code":"211223","name":"西丰县","children":[{"code":"211223100","name":"西丰镇"},{"code":"211223101","name":"平岗镇"},{"code":"211223102","name":"郜家店镇"},{"code":"211223103","name":"凉泉镇"},{"code":"211223104","name":"振兴镇"},{"code":"211223105","name":"安民镇"},{"code":"211223106","name":"天德镇"},{"code":"211223107","name":"房木镇"},{"code":"211223108","name":"柏榆镇"},{"code":"211223109","name":"陶然镇"},{"code":"211223110","name":"钓鱼镇"},{"code":"211223111","name":"更刻镇"},{"code":"211223204","name":"德兴满族乡"},{"code":"211223206","name":"明德满族乡"},{"code":"211223209","name":"成平满族乡"},{"code":"211223211","name":"和隆满族乡"},{"code":"211223212","name":"营厂满族乡"},{"code":"211223213","name":"金星满族乡"}]},{"code":"211224","name":"昌图县","children":[{"code":"211224100","name":"昌图镇"},{"code":"211224101","name":"老城镇"},{"code":"211224102","name":"八面城镇"},{"code":"211224103","name":"三江口镇"},{"code":"211224104","name":"金家镇"},{"code":"211224105","name":"宝力镇"},{"code":"211224106","name":"泉头镇"},{"code":"211224107","name":"双庙子镇"},{"code":"211224108","name":"亮中桥镇"},{"code":"211224109","name":"马仲河镇"},{"code":"211224110","name":"毛家店镇"},{"code":"211224111","name":"老四平镇"},{"code":"211224112","name":"大洼镇"},{"code":"211224113","name":"头道镇"},{"code":"211224114","name":"鴜鷺树镇"},{"code":"211224115","name":"傅家镇"},{"code":"211224117","name":"四合镇"},{"code":"211224118","name":"朝阳镇"},{"code":"211224119","name":"古榆树镇"},{"code":"211224120","name":"七家子镇"},{"code":"211224121","name":"东嘎镇"},{"code":"211224122","name":"四面城镇"},{"code":"211224123","name":"前双井镇"},{"code":"211224124","name":"通江口镇"},{"code":"211224125","name":"大四家子镇"},{"code":"211224126","name":"曲家店镇"},{"code":"211224127","name":"十八家子镇"},{"code":"211224128","name":"太平镇"},{"code":"211224129","name":"下二台镇"},{"code":"211224130","name":"平安堡镇"},{"code":"211224131","name":"大兴镇"},{"code":"211224132","name":"后窑镇"},{"code":"211224133","name":"长发镇"}]},{"code":"211281","name":"调兵山市","children":[{"code":"211281001","name":"兀术街街道"},{"code":"211281002","name":"调兵山街道"},{"code":"211281102","name":"晓明镇"},{"code":"211281103","name":"大明镇"},{"code":"211281105","name":"晓南镇"}]},{"code":"211282","name":"开原市","children":[{"code":"211282001","name":"新城街道"},{"code":"211282002","name":"老城街道"},{"code":"211282003","name":"开原街道"},{"code":"211282102","name":"威远堡镇"},{"code":"211282103","name":"庆云堡镇"},{"code":"211282104","name":"中固镇"},{"code":"211282105","name":"八棵树镇"},{"code":"211282106","name":"金沟子镇"},{"code":"211282107","name":"八宝镇"},{"code":"211282108","name":"业民镇"},{"code":"211282109","name":"莲花镇"},{"code":"211282110","name":"靠山镇"},{"code":"211282111","name":"马家寨镇"},{"code":"211282112","name":"下肥镇"},{"code":"211282113","name":"松山镇"},{"code":"211282114","name":"城东镇"},{"code":"211282115","name":"李家台镇"},{"code":"211282116","name":"上肥镇"},{"code":"211282117","name":"黄旗寨镇"},{"code":"211282217","name":"林丰满族乡"}]}]},{"code":"2113","name":"朝阳市","children":[{"code":"211302","name":"双塔区","children":[{"code":"211302001","name":"双塔街道"},{"code":"211302003","name":"前进街道"},{"code":"211302004","name":"凌河街道"},{"code":"211302005","name":"光明街道"},{"code":"211302006","name":"凌凤街道"},{"code":"211302007","name":"龙山街道"},{"code":"211302008","name":"站南街道"},{"code":"211302009","name":"红旗街道"},{"code":"211302010","name":"燕北街道"},{"code":"211302100","name":"桃花吐镇"},{"code":"211302101","name":"他拉皋镇"},{"code":"211302102","name":"孙家湾镇"},{"code":"211302205","name":"长宝营子乡"}]},{"code":"211303","name":"龙城区","children":[{"code":"211303004","name":"新华街道"},{"code":"211303005","name":"海龙街道"},{"code":"211303070","name":"龙泉街道"},{"code":"211303101","name":"七道泉子镇"},{"code":"211303102","name":"西大营子镇"},{"code":"211303103","name":"召都巴镇"},{"code":"211303105","name":"大平房镇"},{"code":"211303106","name":"联合镇"},{"code":"211303107","name":"边杖子镇"}]},{"code":"211321","name":"朝阳县","children":[{"code":"211321001","name":"柳城街道"},{"code":"211321102","name":"波罗赤镇"},{"code":"211321103","name":"木头城子镇"},{"code":"211321104","name":"二十家子镇"},{"code":"211321105","name":"羊山镇"},{"code":"211321106","name":"六家子镇"},{"code":"211321107","name":"瓦房子镇"},{"code":"211321108","name":"大庙镇"},{"code":"211321110","name":"古山子镇"},{"code":"211321111","name":"南双庙镇"},{"code":"211321112","name":"台子镇"},{"code":"211321113","name":"清风岭镇"},{"code":"211321114","name":"胜利镇"},{"code":"211321115","name":"七道岭镇"},{"code":"211321116","name":"杨树湾镇"},{"code":"211321211","name":"西五家子乡"},{"code":"211321212","name":"北沟门子乡"},{"code":"211321214","name":"东大道乡"},{"code":"211321215","name":"乌兰河硕蒙古族乡"},{"code":"211321220","name":"东大屯乡"},{"code":"211321221","name":"松岭门蒙古族乡"},{"code":"211321222","name":"根德营子乡"},{"code":"211321224","name":"西营子乡"},{"code":"211321228","name":"北四家子乡"},{"code":"211321230","name":"王营子乡"},{"code":"211321231","name":"黑牛营子乡"},{"code":"211321232","name":"尚志乡"},{"code":"211321400","name":"国营朝阳县贾家店农场"}]},{"code":"211322","name":"建平县","children":[{"code":"211322001","name":"叶柏寿街道"},{"code":"211322002","name":"红山街道"},{"code":"211322003","name":"铁南街道"},{"code":"211322004","name":"万寿街道"},{"code":"211322101","name":"朱碌科镇"},{"code":"211322102","name":"建平镇"},{"code":"211322103","name":"黑水镇"},{"code":"211322104","name":"喀喇沁镇"},{"code":"211322105","name":"北二十家子镇"},{"code":"211322106","name":"沙海镇"},{"code":"211322108","name":"哈拉道口镇"},{"code":"211322109","name":"榆树林子镇"},{"code":"211322110","name":"老官地镇"},{"code":"211322111","name":"深井镇"},{"code":"211322112","name":"奎德素镇"},{"code":"211322113","name":"小塘镇"},{"code":"211322114","name":"马场镇"},{"code":"211322115","name":"昌隆镇"},{"code":"211322117","name":"张家营子镇"},{"code":"211322118","name":"青峰山镇"},{"code":"211322119","name":"太平庄镇"},{"code":"211322205","name":"青松岭乡"},{"code":"211322206","name":"杨树岭乡"},{"code":"211322209","name":"罗福沟乡"},{"code":"211322211","name":"烧锅营子乡"},{"code":"211322214","name":"白山乡"},{"code":"211322218","name":"三家蒙古族乡"},{"code":"211322220","name":"义成功乡"},{"code":"211322400","name":"八家国营农场"},{"code":"211322401","name":"热水国营畜牧农场"}]},{"code":"211324","name":"喀喇沁左翼蒙古族自治县","children":[{"code":"211324001","name":"大城子街道"},{"code":"211324002","name":"利州街道"},{"code":"211324101","name":"南公营子镇"},{"code":"211324102","name":"山嘴子镇"},{"code":"211324104","name":"公营子镇"},{"code":"211324105","name":"白塔子镇"},{"code":"211324106","name":"中三家镇"},{"code":"211324107","name":"老爷庙镇"},{"code":"211324108","name":"六官营子镇"},{"code":"211324109","name":"平房子镇"},{"code":"211324110","name":"十二德堡镇"},{"code":"211324111","name":"羊角沟镇"},{"code":"211324112","name":"兴隆庄镇"},{"code":"211324113","name":"甘招镇"},{"code":"211324114","name":"东哨镇"},{"code":"211324115","name":"水泉镇"},{"code":"211324204","name":"尤杖子乡"},{"code":"211324207","name":"草场乡"},{"code":"211324210","name":"坤都营子乡"},{"code":"211324211","name":"大营子乡"},{"code":"211324214","name":"卧虎沟乡"},{"code":"211324400","name":"国营官大海农场"}]},{"code":"211381","name":"北票市","children":[{"code":"211381001","name":"城关街道"},{"code":"211381002","name":"南山街道"},{"code":"211381003","name":"冠山街道"},{"code":"211381006","name":"台吉街道"},{"code":"211381101","name":"西官营镇"},{"code":"211381102","name":"大板镇"},{"code":"211381103","name":"上园镇"},{"code":"211381104","name":"宝国老镇"},{"code":"211381105","name":"黑城子镇"},{"code":"211381107","name":"五间房镇"},{"code":"211381108","name":"台吉镇"},{"code":"211381109","name":"东官营镇"},{"code":"211381110","name":"龙潭镇"},{"code":"211381111","name":"北塔镇"},{"code":"211381112","name":"蒙古营镇"},{"code":"211381113","name":"大三家镇"},{"code":"211381201","name":"长皋乡"},{"code":"211381202","name":"常河营乡"},{"code":"211381203","name":"小塔子乡"},{"code":"211381204","name":"马友营蒙古族乡"},{"code":"211381206","name":"泉巨永乡"},{"code":"211381212","name":"哈尔脑乡"},{"code":"211381213","name":"南八家子乡"},{"code":"211381214","name":"章吉营乡"},{"code":"211381215","name":"三宝营乡"},{"code":"211381216","name":"巴图营乡"},{"code":"211381218","name":"台吉营乡"},{"code":"211381220","name":"娄家店乡"},{"code":"211381221","name":"北四家乡"},{"code":"211381223","name":"凉水河蒙古族乡"},{"code":"211381228","name":"三宝乡"},{"code":"211381400","name":"国营兴顺德畜牧农场"},{"code":"211381470","name":"下府经济开发区"},{"code":"211381471","name":"大黑山特别管理区管理委员会"}]},{"code":"211382","name":"凌源市","children":[{"code":"211382001","name":"东城街道"},{"code":"211382002","name":"北街街道"},{"code":"211382003","name":"南街街道"},{"code":"211382008","name":"红山街道"},{"code":"211382009","name":"城关街道"},{"code":"211382101","name":"万元店镇"},{"code":"211382102","name":"宋杖子镇"},{"code":"211382103","name":"三十家子镇"},{"code":"211382104","name":"杨杖子镇"},{"code":"211382105","name":"刀尔登镇"},{"code":"211382106","name":"松岭子镇"},{"code":"211382107","name":"四官营子镇"},{"code":"211382108","name":"沟门子镇"},{"code":"211382110","name":"小城子镇"},{"code":"211382111","name":"四合当镇"},{"code":"211382113","name":"乌兰白镇"},{"code":"211382114","name":"瓦房店镇"},{"code":"211382115","name":"大河北镇"},{"code":"211382116","name":"牛营子镇"},{"code":"211382117","name":"三道河子镇"},{"code":"211382118","name":"刘杖子镇"},{"code":"211382204","name":"大王杖子乡"},{"code":"211382206","name":"前进乡"},{"code":"211382210","name":"北炉乡"},{"code":"211382217","name":"三家子蒙古族乡"},{"code":"211382219","name":"佛爷洞乡"},{"code":"211382220","name":"河坎子乡"}]}]},{"code":"2114","name":"葫芦岛市","children":[{"code":"211402","name":"连山区","children":[{"code":"211402001","name":"连山街道"},{"code":"211402002","name":"站前街道"},{"code":"211402003","name":"渤海街道"},{"code":"211402004","name":"兴工街道"},{"code":"211402005","name":"石油街道"},{"code":"211402006","name":"化工街道"},{"code":"211402011","name":"锦郊街道"},{"code":"211402104","name":"钢屯镇"},{"code":"211402105","name":"寺儿堡镇"},{"code":"211402106","name":"新台门镇"},{"code":"211402201","name":"沙河营乡"},{"code":"211402202","name":"孤竹营子乡"},{"code":"211402203","name":"白马石乡"},{"code":"211402205","name":"山神庙子乡"},{"code":"211402206","name":"塔山乡"},{"code":"211402210","name":"杨郊乡"},{"code":"211402400","name":"杨家杖子经济开发区"},{"code":"211402401","name":"连山飞地经济区"}]},{"code":"211403","name":"龙港区","children":[{"code":"211403001","name":"葫芦岛街道"},{"code":"211403003","name":"马仗房街道"},{"code":"211403005","name":"龙湾街道"},{"code":"211403006","name":"滨海街道"},{"code":"211403007","name":"双龙街道"},{"code":"211403008","name":"玉皇街道"},{"code":"211403009","name":"连湾街道"},{"code":"211403010","name":"北港街道"},{"code":"211403201","name":"双树乡"},{"code":"211403400","name":"葫芦岛经济开发区"},{"code":"211403401","name":"葫芦岛市专利技术园区"},{"code":"211403402","name":"龙港飞地经济区"}]},{"code":"211404","name":"南票区","children":[{"code":"211404002","name":"沙锅屯街道"},{"code":"211404008","name":"九龙街道"},{"code":"211404010","name":"龙腾街道"},{"code":"211404101","name":"缸窑岭镇"},{"code":"211404102","name":"暖池塘镇"},{"code":"211404103","name":"高桥镇"},{"code":"211404104","name":"虹螺岘镇"},{"code":"211404105","name":"金星镇"},{"code":"211404106","name":"台集屯镇"},{"code":"211404201","name":"沙锅屯乡"},{"code":"211404203","name":"黄土坎乡"},{"code":"211404204","name":"大兴乡"},{"code":"211404205","name":"张相公屯乡"},{"code":"211404400","name":"乌金塘水库"},{"code":"211404401","name":"南票飞地经济区"}]},{"code":"211421","name":"绥中县","children":[{"code":"211421100","name":"绥中镇"},{"code":"211421101","name":"西甸子镇"},{"code":"211421102","name":"宽邦镇"},{"code":"211421103","name":"大王庙镇"},{"code":"211421104","name":"万家镇"},{"code":"211421105","name":"前所镇"},{"code":"211421106","name":"高岭镇"},{"code":"211421107","name":"前卫镇"},{"code":"211421108","name":"荒地镇"},{"code":"211421109","name":"塔山屯镇"},{"code":"211421113","name":"高台镇"},{"code":"211421114","name":"王宝镇"},{"code":"211421115","name":"沙河镇"},{"code":"211421116","name":"小庄子镇"},{"code":"211421201","name":"西平坡满族乡"},{"code":"211421202","name":"葛家满族乡"},{"code":"211421204","name":"高甸子满族乡"},{"code":"211421206","name":"范家满族乡"},{"code":"211421207","name":"明水满族乡"},{"code":"211421208","name":"秋子沟乡"},{"code":"211421210","name":"加碑岩乡"},{"code":"211421211","name":"永安堡乡"},{"code":"211421212","name":"李家堡乡"},{"code":"211421214","name":"网户满族乡"},{"code":"211421217","name":"城郊乡"},{"code":"211421400","name":"大台山果树农场"},{"code":"211421401","name":"前所果树农场"},{"code":"211421402","name":"绥中飞地经济区"}]},{"code":"211422","name":"建昌县","children":[{"code":"211422100","name":"建昌镇"},{"code":"211422101","name":"八家子镇"},{"code":"211422102","name":"喇嘛洞镇"},{"code":"211422103","name":"药王庙镇"},{"code":"211422104","name":"汤神庙镇"},{"code":"211422105","name":"玲珑塔镇"},{"code":"211422106","name":"大屯镇"},{"code":"211422201","name":"牤牛营子乡"},{"code":"211422203","name":"素珠营子乡"},{"code":"211422204","name":"石佛乡"},{"code":"211422206","name":"王宝营子乡"},{"code":"211422207","name":"老大杖子乡"},{"code":"211422208","name":"要路沟乡"},{"code":"211422209","name":"魏家岭乡"},{"code":"211422210","name":"西碱厂乡"},{"code":"211422211","name":"头道营子乡"},{"code":"211422212","name":"新开岭乡"},{"code":"211422213","name":"贺杖子乡"},{"code":"211422214","name":"养马甸子乡"},{"code":"211422215","name":"和尚房子乡"},{"code":"211422218","name":"杨树湾子乡"},{"code":"211422219","name":"黑山科乡"},{"code":"211422220","name":"雷家店乡"},{"code":"211422222","name":"小德营子乡"},{"code":"211422223","name":"二道湾子蒙古族乡"},{"code":"211422224","name":"巴什罕乡"},{"code":"211422225","name":"娘娘庙乡"},{"code":"211422226","name":"谷杖子乡"},{"code":"211422401","name":"建昌飞地经济区"}]},{"code":"211481","name":"兴城市","children":[{"code":"211481001","name":"古城街道"},{"code":"211481002","name":"宁远街道"},{"code":"211481004","name":"温泉街道"},{"code":"211481007","name":"四家屯街道"},{"code":"211481008","name":"菊花街道"},{"code":"211481101","name":"曹庄镇"},{"code":"211481103","name":"沙后所满族镇"},{"code":"211481104","name":"东辛庄满族镇"},{"code":"211481105","name":"郭家满族镇"},{"code":"211481106","name":"红崖子镇"},{"code":"211481107","name":"徐大堡镇"},{"code":"211481108","name":"高家岭满族镇"},{"code":"211481201","name":"羊安满族乡"},{"code":"211481203","name":"元台子满族乡"},{"code":"211481204","name":"白塔满族乡"},{"code":"211481206","name":"望海满族乡"},{"code":"211481207","name":"刘台子满族乡"},{"code":"211481208","name":"大寨满族乡"},{"code":"211481209","name":"南大满族乡"},{"code":"211481210","name":"围屏满族乡"},{"code":"211481212","name":"碱厂满族乡"},{"code":"211481213","name":"三道沟满族乡"},{"code":"211481215","name":"旧门满族乡"},{"code":"211481216","name":"药王满族乡"},{"code":"211481400","name":"兴城飞地经济区"}]}]}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市","children":[{"code":"220102","name":"南关区","children":[{"code":"220102001","name":"南岭街道"},{"code":"220102002","name":"自强街道"},{"code":"220102003","name":"民康街道"},{"code":"220102004","name":"新春街道"},{"code":"220102005","name":"长通街道"},{"code":"220102006","name":"全安街道"},{"code":"220102007","name":"曙光街道"},{"code":"220102008","name":"永吉街道"},{"code":"220102009","name":"桃源街道"},{"code":"220102010","name":"鸿城街道"},{"code":"220102011","name":"明珠街道"},{"code":"220102012","name":"富裕街道"},{"code":"220102200","name":"幸福乡"}]},{"code":"220103","name":"宽城区","children":[{"code":"220103001","name":"新发街道"},{"code":"220103002","name":"站前街道"},{"code":"220103003","name":"南广街道"},{"code":"220103004","name":"东广街道"},{"code":"220103005","name":"群英街道"},{"code":"220103006","name":"兴业街道"},{"code":"220103007","name":"凯旋街道"},{"code":"220103008","name":"团山街道"},{"code":"220103009","name":"柳影街道"},{"code":"220103010","name":"欣园街道"},{"code":"220103011","name":"长德街道"},{"code":"220103100","name":"兰家镇"},{"code":"220103101","name":"米沙子镇"},{"code":"220103102","name":"万宝镇"},{"code":"220103171","name":"合隆镇"}]},{"code":"220104","name":"朝阳区","children":[{"code":"220104001","name":"前进街道"},{"code":"220104002","name":"桂林街道"},{"code":"220104003","name":"南湖街道"},{"code":"220104004","name":"永昌街道"},{"code":"220104005","name":"重庆街道"},{"code":"220104006","name":"清和街道"},{"code":"220104007","name":"红旗街道"},{"code":"220104008","name":"湖西街道"},{"code":"220104009","name":"富锋街道"},{"code":"220104100","name":"乐山镇"},{"code":"220104101","name":"永春镇"}]},{"code":"220105","name":"二道区","children":[{"code":"220105001","name":"东盛街道"},{"code":"220105002","name":"吉林街道"},{"code":"220105003","name":"荣光街道"},{"code":"220105004","name":"东站街道"},{"code":"220105005","name":"远达街道"},{"code":"220105006","name":"八里堡街道"},{"code":"220105007","name":"长青街道"},{"code":"220105100","name":"英俊镇"},{"code":"220105173","name":"劝农山镇"},{"code":"220105174","name":"泉眼镇"},{"code":"220105270","name":"四家乡"}]},{"code":"220106","name":"绿园区","children":[{"code":"220106001","name":"正阳街道"},{"code":"220106003","name":"春城街道"},{"code":"220106005","name":"青年路街道"},{"code":"220106006","name":"普阳街道"},{"code":"220106007","name":"铁西街道"},{"code":"220106010","name":"林园街道"},{"code":"220106011","name":"同心街道"},{"code":"220106100","name":"合心镇"},{"code":"220106101","name":"西新镇"},{"code":"220106102","name":"城西镇"},{"code":"220106400","name":"绿园经济开发区"}]},{"code":"220112","name":"双阳区","children":[{"code":"220112001","name":"云山街道"},{"code":"220112002","name":"平湖街道"},{"code":"220112003","name":"奢岭街道"},{"code":"220112004","name":"山河街道"},{"code":"220112102","name":"鹿乡镇"},{"code":"220112104","name":"齐家镇"},{"code":"220112105","name":"太平镇"},{"code":"220112203","name":"双营子回族乡"}]},{"code":"220113","name":"九台区","children":[{"code":"220113001","name":"九台街道"},{"code":"220113002","name":"营城街道"},{"code":"220113003","name":"九郊街道"},{"code":"220113004","name":"西营城街道"},{"code":"220113005","name":"土们岭街道"},{"code":"220113006","name":"苇子沟街道"},{"code":"220113007","name":"兴隆街道"},{"code":"220113008","name":"纪家街道"},{"code":"220113009","name":"波泥河街道"},{"code":"220113010","name":"卡伦湖街道"},{"code":"220113011","name":"东湖街道"},{"code":"220113012","name":"龙嘉街道"},{"code":"220113013","name":"兴港街道"},{"code":"220113014","name":"沐石河街道"},{"code":"220113015","name":"城子街街道"},{"code":"220113102","name":"其塔木镇"},{"code":"220113103","name":"上河湾镇"},{"code":"220113200","name":"胡家回族乡"},{"code":"220113201","name":"莽卡满族乡"}]},{"code":"220122","name":"农安县","children":[{"code":"220122001","name":"兴农街道"},{"code":"220122002","name":"宝塔街道"},{"code":"220122003","name":"和谐街道"},{"code":"220122004","name":"黄龙街道"},{"code":"220122100","name":"农安镇"},{"code":"220122101","name":"伏龙泉镇"},{"code":"220122102","name":"哈拉海镇"},{"code":"220122103","name":"靠山镇"},{"code":"220122104","name":"开安镇"},{"code":"220122105","name":"烧锅镇"},{"code":"220122106","name":"高家店镇"},{"code":"220122107","name":"华家镇"},{"code":"220122108","name":"三盛玉镇"},{"code":"220122109","name":"巴吉垒镇"},{"code":"220122110","name":"三岗镇"},{"code":"220122200","name":"前岗乡"},{"code":"220122201","name":"龙王乡"},{"code":"220122203","name":"万顺乡"},{"code":"220122204","name":"杨树林乡"},{"code":"220122205","name":"永安乡"},{"code":"220122206","name":"青山口乡"},{"code":"220122207","name":"黄鱼圈乡"},{"code":"220122208","name":"新农乡"},{"code":"220122209","name":"万金塔乡"},{"code":"220122210","name":"小城子乡"},{"code":"220122400","name":"洼中高农场"}]},{"code":"220171","name":"长春经济技术开发区","children":[{"code":"220171001","name":"临河街道"},{"code":"220171002","name":"东方广场街道"},{"code":"220171003","name":"会展街道"},{"code":"220171004","name":"世纪街道"},{"code":"220171100","name":"兴隆山镇"}]},{"code":"220172","name":"长春净月高新技术产业开发区","children":[{"code":"220172001","name":"永兴街道"},{"code":"220172002","name":"净月街道"},{"code":"220172003","name":"福祉街道"},{"code":"220172004","name":"德正街道"},{"code":"220172005","name":"彩织街道"},{"code":"220172006","name":"德容街道"},{"code":"220172007","name":"博硕街道"},{"code":"220172100","name":"新立城镇"},{"code":"220172101","name":"新湖镇"},{"code":"220172102","name":"玉潭镇"}]},{"code":"220173","name":"长春高新技术产业开发区","children":[{"code":"220173001","name":"硅谷街道"},{"code":"220173002","name":"北湖街道"},{"code":"220173003","name":"超越街道"},{"code":"220173004","name":"飞跃街道"},{"code":"220173005","name":"双德街道"},{"code":"220173200","name":"奋进乡"}]},{"code":"220174","name":"长春汽车经济技术开发区","children":[{"code":"220174001","name":"锦程街道"},{"code":"220174002","name":"东风街道"},{"code":"220174003","name":"富民街道"},{"code":"220174004","name":"前程街道"}]},{"code":"220182","name":"榆树市","children":[{"code":"220182001","name":"华昌街道"},{"code":"220182002","name":"正阳街道"},{"code":"220182003","name":"培英街道"},{"code":"220182004","name":"城郊街道"},{"code":"220182100","name":"五棵树镇"},{"code":"220182101","name":"弓棚镇"},{"code":"220182102","name":"闵家镇"},{"code":"220182103","name":"大坡镇"},{"code":"220182104","name":"黑林镇"},{"code":"220182105","name":"土桥镇"},{"code":"220182106","name":"新立镇"},{"code":"220182107","name":"大岭镇"},{"code":"220182108","name":"于家镇"},{"code":"220182109","name":"泗河镇"},{"code":"220182110","name":"八号镇"},{"code":"220182111","name":"刘家镇"},{"code":"220182112","name":"秀水镇"},{"code":"220182113","name":"保寿镇"},{"code":"220182114","name":"新庄镇"},{"code":"220182200","name":"育民乡"},{"code":"220182201","name":"红星乡"},{"code":"220182202","name":"太安乡"},{"code":"220182203","name":"先峰乡"},{"code":"220182204","name":"青山乡"},{"code":"220182205","name":"延和朝鲜族乡"},{"code":"220182206","name":"恩育乡"},{"code":"220182207","name":"城发乡"},{"code":"220182208","name":"环城乡"}]},{"code":"220183","name":"德惠市","children":[{"code":"220183001","name":"胜利街道"},{"code":"220183002","name":"建设街道"},{"code":"220183003","name":"惠发街道"},{"code":"220183004","name":"夏家店街道"},{"code":"220183100","name":"大青嘴镇"},{"code":"220183101","name":"郭家镇"},{"code":"220183102","name":"松花江镇"},{"code":"220183103","name":"达家沟镇"},{"code":"220183104","name":"大房身镇"},{"code":"220183105","name":"岔路口镇"},{"code":"220183106","name":"朱城子镇"},{"code":"220183107","name":"布海镇"},{"code":"220183108","name":"天台镇"},{"code":"220183109","name":"菜园子镇"},{"code":"220183200","name":"同太乡"},{"code":"220183201","name":"边岗乡"},{"code":"220183202","name":"五台乡"},{"code":"220183203","name":"朝阳乡"}]},{"code":"220184","name":"公主岭市","children":[{"code":"220184001","name":"河南街道"},{"code":"220184002","name":"河北街道"},{"code":"220184003","name":"东三街道"},{"code":"220184004","name":"岭东街道"},{"code":"220184005","name":"铁北街道"},{"code":"220184006","name":"岭西街道"},{"code":"220184007","name":"刘房子街道"},{"code":"220184008","name":"南崴子街道"},{"code":"220184009","name":"环岭街道"},{"code":"220184010","name":"苇子沟街道"},{"code":"220184100","name":"二十家子镇"},{"code":"220184101","name":"黑林子镇"},{"code":"220184102","name":"陶家屯镇"},{"code":"220184103","name":"范家屯镇"},{"code":"220184104","name":"响水镇"},{"code":"220184105","name":"大岭镇"},{"code":"220184106","name":"怀德镇"},{"code":"220184107","name":"双城堡镇"},{"code":"220184108","name":"双龙镇"},{"code":"220184109","name":"杨大城子镇"},{"code":"220184110","name":"毛城子镇"},{"code":"220184111","name":"玻璃城子镇"},{"code":"220184112","name":"朝阳坡镇"},{"code":"220184113","name":"大榆树镇"},{"code":"220184114","name":"秦家屯镇"},{"code":"220184115","name":"八屋镇"},{"code":"220184116","name":"十屋镇"},{"code":"220184117","name":"桑树台镇"},{"code":"220184200","name":"龙山乡"},{"code":"220184201","name":"永发乡"},{"code":"220184400","name":"省原种繁殖场"},{"code":"220184401","name":"四平农科院"},{"code":"220184402","name":"公主岭市种猪场"},{"code":"220184404","name":"十屋种牛场"},{"code":"220184405","name":"创业农场"},{"code":"220184407","name":"范家屯经济开发区"}]}]},{"code":"2202","name":"吉林市","children":[{"code":"220202","name":"昌邑区","children":[{"code":"220202001","name":"兴华街道"},{"code":"220202002","name":"文庙街道"},{"code":"220202003","name":"东局子街道"},{"code":"220202004","name":"新地号街道"},{"code":"220202005","name":"延安街道"},{"code":"220202006","name":"站前街道"},{"code":"220202007","name":"民主街道"},{"code":"220202008","name":"莲花街道"},{"code":"220202009","name":"通江街道"},{"code":"220202010","name":"哈达湾街道"},{"code":"220202011","name":"新建街道"},{"code":"220202012","name":"延江街道"},{"code":"220202071","name":"吉林东市商贸示范区特殊街道"},{"code":"220202100","name":"孤店子镇"},{"code":"220202101","name":"桦皮厂镇"},{"code":"220202102","name":"左家镇"},{"code":"220202200","name":"两家子满族乡"},{"code":"220202201","name":"土城子满族朝鲜族乡"},{"code":"220202401","name":"幸福开发区"},{"code":"220202402","name":"哈达湾经济开发区"}]},{"code":"220203","name":"龙潭区","children":[{"code":"220203001","name":"龙华街道"},{"code":"220203002","name":"湘潭街道"},{"code":"220203003","name":"铁东街道"},{"code":"220203004","name":"泡子沿街道"},{"code":"220203005","name":"龙潭街道"},{"code":"220203006","name":"新吉林街道"},{"code":"220203007","name":"山前街道"},{"code":"220203008","name":"新安街道"},{"code":"220203009","name":"遵义街道"},{"code":"220203010","name":"榆树街道"},{"code":"220203012","name":"东城街道"},{"code":"220203013","name":"承德街道"},{"code":"220203014","name":"靠山街道"},{"code":"220203100","name":"乌拉街镇"},{"code":"220203101","name":"缸窑镇"},{"code":"220203102","name":"江密峰镇"},{"code":"220203103","name":"大口钦镇"},{"code":"220203104","name":"金珠镇"},{"code":"220203200","name":"江北乡"},{"code":"220203400","name":"龙潭经济开发区"},{"code":"220203401","name":"金珠工业区"}]},{"code":"220204","name":"船营区","children":[{"code":"220204001","name":"德胜街道"},{"code":"220204002","name":"南京街道"},{"code":"220204003","name":"大东街道"},{"code":"220204004","name":"青岛街道"},{"code":"220204005","name":"向阳街道"},{"code":"220204006","name":"北极街道"},{"code":"220204007","name":"致和街道"},{"code":"220204008","name":"长春路街道"},{"code":"220204009","name":"临江街道"},{"code":"220204010","name":"北山街道"},{"code":"220204011","name":"黄旗街道"},{"code":"220204100","name":"大绥河镇"},{"code":"220204101","name":"搜登站镇"},{"code":"220204102","name":"越北镇"},{"code":"220204200","name":"欢喜乡"},{"code":"220204400","name":"吉林船营经济开发区"}]},{"code":"220211","name":"丰满区","children":[{"code":"220211001","name":"泰山街道"},{"code":"220211002","name":"江南街道"},{"code":"220211003","name":"石井街道"},{"code":"220211004","name":"沿丰街道"},{"code":"220211005","name":"丰满街道"},{"code":"220211008","name":"建华街道"},{"code":"220211071","name":"红旗街道"},{"code":"220211100","name":"旺起镇"},{"code":"220211200","name":"江南乡"},{"code":"220211201","name":"前二道乡"},{"code":"220211270","name":"小白山乡"}]},{"code":"220221","name":"永吉县","children":[{"code":"220221100","name":"口前镇"},{"code":"220221101","name":"双河镇"},{"code":"220221102","name":"西阳镇"},{"code":"220221103","name":"北大湖镇"},{"code":"220221104","name":"一拉溪镇"},{"code":"220221171","name":"万昌镇"},{"code":"220221172","name":"永吉经济开发区特殊乡镇"},{"code":"220221200","name":"金家乡"},{"code":"220221201","name":"黄榆乡"}]},{"code":"220271","name":"吉林经济开发区","children":[{"code":"220271001","name":"九站街道"},{"code":"220271013","name":"双吉街道"}]},{"code":"220272","name":"吉林高新技术产业开发区","children":[{"code":"220272001","name":"高新街道"},{"code":"220272002","name":"新北街道"}]},{"code":"220273","name":"吉林中国新加坡食品区","children":[{"code":"220273100","name":"岔路河镇"}]},{"code":"220281","name":"蛟河市","children":[{"code":"220281001","name":"民主街道"},{"code":"220281002","name":"长安街道"},{"code":"220281003","name":"河南街道"},{"code":"220281004","name":"奶子山街道"},{"code":"220281005","name":"拉法街道"},{"code":"220281006","name":"河北街道"},{"code":"220281007","name":"新农街道"},{"code":"220281100","name":"新站镇"},{"code":"220281101","name":"天岗镇"},{"code":"220281102","name":"白石山镇"},{"code":"220281103","name":"漂河镇"},{"code":"220281104","name":"黄松甸镇"},{"code":"220281105","name":"天北镇"},{"code":"220281106","name":"松江镇"},{"code":"220281107","name":"庆岭镇"},{"code":"220281200","name":"乌林朝鲜族乡"},{"code":"220281201","name":"前进乡"}]},{"code":"220282","name":"桦甸市","children":[{"code":"220282001","name":"明桦街道"},{"code":"220282002","name":"永吉街道"},{"code":"220282003","name":"胜利街道"},{"code":"220282004","name":"新华街道"},{"code":"220282005","name":"启新街道"},{"code":"220282100","name":"夹皮沟镇"},{"code":"220282101","name":"二道甸子镇"},{"code":"220282102","name":"红石砬子镇"},{"code":"220282103","name":"八道河子镇"},{"code":"220282104","name":"常山镇"},{"code":"220282105","name":"金沙镇"},{"code":"220282200","name":"桦郊乡"},{"code":"220282201","name":"横道河子乡"},{"code":"220282204","name":"公吉乡"}]},{"code":"220283","name":"舒兰市","children":[{"code":"220283001","name":"北城街道"},{"code":"220283002","name":"南城街道"},{"code":"220283003","name":"环城街道"},{"code":"220283004","name":"吉舒街道"},{"code":"220283005","name":"滨河街道"},{"code":"220283100","name":"法特镇"},{"code":"220283101","name":"白旗镇"},{"code":"220283102","name":"溪河镇"},{"code":"220283103","name":"朝阳镇"},{"code":"220283104","name":"小城镇"},{"code":"220283105","name":"上营镇"},{"code":"220283106","name":"水曲柳镇"},{"code":"220283107","name":"平安镇"},{"code":"220283108","name":"金马镇"},{"code":"220283109","name":"开原镇"},{"code":"220283200","name":"莲花乡"},{"code":"220283201","name":"亮甲山乡"},{"code":"220283202","name":"新安乡"},{"code":"220283203","name":"七里乡"},{"code":"220283204","name":"天德乡"}]},{"code":"220284","name":"磐石市","children":[{"code":"220284001","name":"福安街道"},{"code":"220284002","name":"东宁街道"},{"code":"220284003","name":"河南街道"},{"code":"220284070","name":"磐石经济开发区特殊街道"},{"code":"220284100","name":"烟筒山镇"},{"code":"220284101","name":"红旗岭镇"},{"code":"220284102","name":"明城镇"},{"code":"220284103","name":"石嘴镇"},{"code":"220284104","name":"驿马镇"},{"code":"220284105","name":"牛心镇"},{"code":"220284106","name":"呼兰镇"},{"code":"220284107","name":"吉昌镇"},{"code":"220284108","name":"松山镇"},{"code":"220284109","name":"黑石镇"},{"code":"220284110","name":"朝阳山镇"},{"code":"220284111","name":"富太镇"},{"code":"220284112","name":"取柴河镇"},{"code":"220284200","name":"宝山乡"}]}]},{"code":"2203","name":"四平市","children":[{"code":"220302","name":"铁西区","children":[{"code":"220302001","name":"仁兴街道"},{"code":"220302002","name":"英雄街道"},{"code":"220302003","name":"站前街道"},{"code":"220302004","name":"北沟街道"},{"code":"220302005","name":"地直街道"},{"code":"220302200","name":"平西乡"},{"code":"220302400","name":"红嘴高新技术开发区"}]},{"code":"220303","name":"铁东区","children":[{"code":"220303001","name":"四平市铁东区平东街道"},{"code":"220303002","name":"四平市铁东区北市场街道"},{"code":"220303003","name":"四平市铁东区七马路街道"},{"code":"220303004","name":"四平市铁东区四马路街道"},{"code":"220303005","name":"四平市铁东区解放街道"},{"code":"220303006","name":"四平市铁东区北门街道"},{"code":"220303007","name":"四平市铁东区黄土坑街道"},{"code":"220303008","name":"四平市铁东区平南街道"},{"code":"220303100","name":"四平市铁东区山门镇"},{"code":"220303101","name":"四平市铁东区石岭镇"},{"code":"220303102","name":"四平市铁东区叶赫满族镇"},{"code":"220303200","name":"四平市铁东区城东乡"}]},{"code":"220322","name":"梨树县","children":[{"code":"220322001","name":"富强街道"},{"code":"220322002","name":"康平街道"},{"code":"220322003","name":"霍家店街道"},{"code":"220322100","name":"梨树镇"},{"code":"220322101","name":"郭家店镇"},{"code":"220322102","name":"榆树台镇"},{"code":"220322103","name":"孤家子镇"},{"code":"220322104","name":"小城子镇"},{"code":"220322105","name":"喇嘛甸镇"},{"code":"220322106","name":"蔡家镇"},{"code":"220322107","name":"刘家馆子镇"},{"code":"220322108","name":"十家堡镇"},{"code":"220322109","name":"孟家岭镇"},{"code":"220322110","name":"万发镇"},{"code":"220322111","name":"东河镇"},{"code":"220322112","name":"沈洋镇"},{"code":"220322113","name":"林海镇"},{"code":"220322114","name":"小宽镇"},{"code":"220322200","name":"白山乡"},{"code":"220322201","name":"泉眼岭乡"},{"code":"220322202","name":"胜利乡"},{"code":"220322203","name":"四棵树乡"},{"code":"220322204","name":"双河乡"},{"code":"220322205","name":"金山乡"}]},{"code":"220323","name":"伊通满族自治县","children":[{"code":"220323001","name":"永盛街道"},{"code":"220323002","name":"永宁街道"},{"code":"220323100","name":"伊通镇"},{"code":"220323101","name":"二道镇"},{"code":"220323102","name":"伊丹镇"},{"code":"220323103","name":"马鞍山镇"},{"code":"220323104","name":"景台镇"},{"code":"220323105","name":"靠山镇"},{"code":"220323106","name":"大孤山镇"},{"code":"220323107","name":"小孤山镇"},{"code":"220323108","name":"营城子镇"},{"code":"220323109","name":"西苇镇"},{"code":"220323110","name":"河源镇"},{"code":"220323111","name":"黄岭子镇"},{"code":"220323200","name":"新兴乡"},{"code":"220323201","name":"莫里青乡"},{"code":"220323202","name":"三道乡"}]},{"code":"220382","name":"双辽市","children":[{"code":"220382001","name":"郑家屯街道"},{"code":"220382002","name":"辽西街道"},{"code":"220382003","name":"辽南街道"},{"code":"220382004","name":"辽北街道"},{"code":"220382005","name":"辽东街道"},{"code":"220382006","name":"红旗街道"},{"code":"220382100","name":"茂林镇"},{"code":"220382101","name":"双山镇"},{"code":"220382102","name":"卧虎镇"},{"code":"220382103","name":"服先镇"},{"code":"220382104","name":"王奔镇"},{"code":"220382105","name":"玻璃山镇"},{"code":"220382106","name":"兴隆镇"},{"code":"220382107","name":"东明镇"},{"code":"220382200","name":"那木乡"},{"code":"220382201","name":"柳条乡"},{"code":"220382202","name":"新立乡"},{"code":"220382203","name":"永加乡"},{"code":"220382402","name":"双辽经济开发区"}]}]},{"code":"2204","name":"辽源市","children":[{"code":"220402","name":"龙山区","children":[{"code":"220402001","name":"东吉街道"},{"code":"220402002","name":"南康街道"},{"code":"220402003","name":"北寿街道"},{"code":"220402004","name":"西宁街道"},{"code":"220402005","name":"站前街道"},{"code":"220402006","name":"向阳街道"},{"code":"220402007","name":"新兴街道"},{"code":"220402008","name":"福镇街道"},{"code":"220402070","name":"辽源经济开发区特殊街道"},{"code":"220402100","name":"寿山镇"},{"code":"220402200","name":"工农乡"}]},{"code":"220403","name":"西安区","children":[{"code":"220403001","name":"太安街道"},{"code":"220403002","name":"仙城街道"},{"code":"220403003","name":"东山街道"},{"code":"220403004","name":"先锋街道"},{"code":"220403005","name":"富国街道"},{"code":"220403006","name":"安家街道"},{"code":"220403100","name":"灯塔镇"}]},{"code":"220421","name":"东丰县","children":[{"code":"220421001","name":"吉鹿街道"},{"code":"220421002","name":"祥鹿街道"},{"code":"220421003","name":"福鹿街道"},{"code":"220421100","name":"东丰镇"},{"code":"220421101","name":"大阳镇"},{"code":"220421102","name":"横道河镇"},{"code":"220421103","name":"那丹伯镇"},{"code":"220421104","name":"猴石镇"},{"code":"220421105","name":"杨木林镇"},{"code":"220421106","name":"小四平镇"},{"code":"220421107","name":"黄河镇"},{"code":"220421108","name":"拉拉河镇"},{"code":"220421109","name":"沙河镇"},{"code":"220421110","name":"南屯基镇"},{"code":"220421111","name":"大兴镇"},{"code":"220421200","name":"三合满族朝鲜族乡"},{"code":"220421201","name":"二龙山乡"}]},{"code":"220422","name":"东辽县","children":[{"code":"220422100","name":"白泉镇"},{"code":"220422101","name":"渭津镇"},{"code":"220422102","name":"安石镇"},{"code":"220422103","name":"辽河源镇"},{"code":"220422104","name":"泉太镇"},{"code":"220422105","name":"建安镇"},{"code":"220422106","name":"安恕镇"},{"code":"220422107","name":"平岗镇"},{"code":"220422108","name":"云顶镇"},{"code":"220422200","name":"凌云乡"},{"code":"220422201","name":"甲山乡"},{"code":"220422202","name":"足民乡"},{"code":"220422203","name":"金州乡"}]}]},{"code":"2205","name":"通化市","children":[{"code":"220502","name":"东昌区","children":[{"code":"220502001","name":"东昌街道"},{"code":"220502002","name":"民主街道"},{"code":"220502003","name":"老站街道"},{"code":"220502004","name":"团结街道"},{"code":"220502005","name":"新站街道"},{"code":"220502006","name":"光明街道"},{"code":"220502007","name":"龙泉街道"},{"code":"220502008","name":"陆港街道"},{"code":"220502009","name":"滨江街道"},{"code":"220502100","name":"金厂镇"},{"code":"220502120","name":"通化经济开发区特殊乡镇"},{"code":"220502200","name":"环通乡"},{"code":"220502201","name":"江东乡"}]},{"code":"220503","name":"二道江区","children":[{"code":"220503001","name":"桃园街道"},{"code":"220503002","name":"东通化街道"},{"code":"220503100","name":"鸭园镇"},{"code":"220503101","name":"铁厂镇"},{"code":"220503102","name":"五道江镇"},{"code":"220503200","name":"二道江乡"}]},{"code":"220521","name":"通化县","children":[{"code":"220521001","name":"茂山街道"},{"code":"220521002","name":"东安街道"},{"code":"220521100","name":"快大茂镇"},{"code":"220521101","name":"二密镇"},{"code":"220521102","name":"果松镇"},{"code":"220521103","name":"石湖镇"},{"code":"220521104","name":"大安镇"},{"code":"220521105","name":"光华镇"},{"code":"220521106","name":"兴林镇"},{"code":"220521107","name":"英额布镇"},{"code":"220521108","name":"三棵榆树镇"},{"code":"220521109","name":"西江镇"},{"code":"220521120","name":"通化聚鑫经济开发区特殊乡镇"},{"code":"220521200","name":"富江乡"},{"code":"220521201","name":"四棚乡"},{"code":"220521202","name":"东来乡"},{"code":"220521203","name":"大泉源满族朝鲜族乡"},{"code":"220521204","name":"金斗朝鲜族满族乡"},{"code":"220521401","name":"东宝新村"}]},{"code":"220523","name":"辉南县","children":[{"code":"220523001","name":"东凤街道"},{"code":"220523002","name":"朝辉街道"},{"code":"220523003","name":"西凤街道"},{"code":"220523100","name":"朝阳镇"},{"code":"220523101","name":"辉南镇"},{"code":"220523102","name":"样子哨镇"},{"code":"220523103","name":"杉松岗镇"},{"code":"220523104","name":"石道河镇"},{"code":"220523105","name":"辉发城镇"},{"code":"220523106","name":"抚民镇"},{"code":"220523107","name":"金川镇"},{"code":"220523108","name":"团林镇"},{"code":"220523109","name":"庆阳镇"},{"code":"220523200","name":"楼街朝鲜族乡"}]},{"code":"220524","name":"柳河县","children":[{"code":"220524001","name":"采胜街道"},{"code":"220524002","name":"中岗街道"},{"code":"220524003","name":"导航街道"},{"code":"220524100","name":"柳河镇"},{"code":"220524101","name":"三源浦朝鲜族镇"},{"code":"220524102","name":"五道沟镇"},{"code":"220524103","name":"驼腰岭镇"},{"code":"220524104","name":"孤山子镇"},{"code":"220524105","name":"圣水河子镇"},{"code":"220524106","name":"罗通山镇"},{"code":"220524107","name":"安口镇"},{"code":"220524108","name":"向阳镇"},{"code":"220524109","name":"红石镇"},{"code":"220524110","name":"凉水河子镇"},{"code":"220524111","name":"亨通镇"},{"code":"220524200","name":"柳南乡"},{"code":"220524201","name":"时家店乡"},{"code":"220524202","name":"姜家店朝鲜族乡"}]},{"code":"220581","name":"梅河口市","children":[{"code":"220581001","name":"新华街道"},{"code":"220581002","name":"光明街道"},{"code":"220581070","name":"和平街道"},{"code":"220581071","name":"解放街道"},{"code":"220581072","name":"福民街道"},{"code":"220581100","name":"山城镇"},{"code":"220581101","name":"红梅镇"},{"code":"220581102","name":"海龙镇"},{"code":"220581103","name":"新合镇"},{"code":"220581104","name":"曙光镇"},{"code":"220581105","name":"中和镇"},{"code":"220581106","name":"黑山头镇"},{"code":"220581107","name":"水道镇"},{"code":"220581108","name":"进化镇"},{"code":"220581109","name":"一座营镇"},{"code":"220581110","name":"康大营镇"},{"code":"220581111","name":"牛心顶镇"},{"code":"220581112","name":"杏岭镇"},{"code":"220581113","name":"湾龙镇"},{"code":"220581114","name":"兴华镇"},{"code":"220581115","name":"双兴镇"},{"code":"220581201","name":"李炉乡"},{"code":"220581205","name":"小杨满族朝鲜族乡"},{"code":"220581206","name":"吉乐乡"}]},{"code":"220582","name":"集安市","children":[{"code":"220582001","name":"团结街道"},{"code":"220582002","name":"黎明街道"},{"code":"220582003","name":"通胜街道"},{"code":"220582004","name":"城东街道"},{"code":"220582100","name":"青石镇"},{"code":"220582101","name":"榆林镇"},{"code":"220582102","name":"花甸镇"},{"code":"220582103","name":"头道镇"},{"code":"220582104","name":"清河镇"},{"code":"220582105","name":"台上镇"},{"code":"220582106","name":"财源镇"},{"code":"220582107","name":"大路镇"},{"code":"220582108","name":"太王镇"},{"code":"220582200","name":"麻线乡"},{"code":"220582201","name":"凉水朝鲜族乡"}]}]},{"code":"2206","name":"白山市","children":[{"code":"220602","name":"浑江区","children":[{"code":"220602001","name":"新建街道"},{"code":"220602002","name":"通沟街道"},{"code":"220602003","name":"东兴街道"},{"code":"220602004","name":"红旗街道"},{"code":"220602005","name":"城南街道"},{"code":"220602006","name":"江北街道"},{"code":"220602007","name":"河口街道"},{"code":"220602008","name":"板石街道"},{"code":"220602100","name":"七道江镇"},{"code":"220602101","name":"六道江镇"},{"code":"220602102","name":"红土崖镇"},{"code":"220602103","name":"三道沟镇"}]},{"code":"220605","name":"江源区","children":[{"code":"220605001","name":"孙家堡子街道"},{"code":"220605002","name":"江源街道"},{"code":"220605003","name":"正岔街道"},{"code":"220605004","name":"城墙街道"},{"code":"220605102","name":"湾沟镇"},{"code":"220605103","name":"松树镇"},{"code":"220605104","name":"砟子镇"},{"code":"220605105","name":"石人镇"},{"code":"220605106","name":"大阳岔镇"},{"code":"220605107","name":"大石人镇"}]},{"code":"220621","name":"抚松县","children":[{"code":"220621100","name":"抚松镇"},{"code":"220621101","name":"松江河镇"},{"code":"220621102","name":"泉阳镇"},{"code":"220621103","name":"露水河镇"},{"code":"220621104","name":"仙人桥镇"},{"code":"220621105","name":"万良镇"},{"code":"220621106","name":"新屯子镇"},{"code":"220621107","name":"东岗镇"},{"code":"220621108","name":"漫江镇"},{"code":"220621109","name":"北岗镇"},{"code":"220621110","name":"兴参镇"},{"code":"220621120","name":"长白山保护开发区池西区特殊乡镇"},{"code":"220621121","name":"长白山保护开发区池南区特殊乡镇"},{"code":"220621200","name":"兴隆乡"},{"code":"220621201","name":"抽水乡"},{"code":"220621202","name":"沿江乡"}]},{"code":"220622","name":"靖宇县","children":[{"code":"220622100","name":"靖宇镇"},{"code":"220622101","name":"三道湖镇"},{"code":"220622102","name":"龙泉镇"},{"code":"220622103","name":"那尔轰镇"},{"code":"220622104","name":"花园口镇"},{"code":"220622105","name":"景山镇"},{"code":"220622106","name":"赤松镇"},{"code":"220622201","name":"濛江乡"}]},{"code":"220623","name":"长白朝鲜族自治县","children":[{"code":"220623100","name":"长白镇"},{"code":"220623101","name":"八道沟镇"},{"code":"220623102","name":"十四道沟镇"},{"code":"220623103","name":"马鹿沟镇"},{"code":"220623104","name":"宝泉山镇"},{"code":"220623105","name":"新房子镇"},{"code":"220623106","name":"十二道沟镇"},{"code":"220623200","name":"金华乡"}]},{"code":"220681","name":"临江市","children":[{"code":"220681001","name":"建国街道"},{"code":"220681002","name":"新市街道"},{"code":"220681003","name":"兴隆街道"},{"code":"220681004","name":"大湖街道"},{"code":"220681005","name":"森工街道"},{"code":"220681006","name":"大栗子街道"},{"code":"220681100","name":"桦树镇"},{"code":"220681101","name":"六道沟镇"},{"code":"220681102","name":"苇沙河镇"},{"code":"220681103","name":"花山镇"},{"code":"220681104","name":"闹枝镇"},{"code":"220681105","name":"四道沟镇"},{"code":"220681200","name":"蚂蚁河乡"}]}]},{"code":"2207","name":"松原市","children":[{"code":"220702","name":"宁江区","children":[{"code":"220702001","name":"团结街道"},{"code":"220702002","name":"文化街道"},{"code":"220702003","name":"民主街道"},{"code":"220702004","name":"临江街道"},{"code":"220702005","name":"新区街道"},{"code":"220702006","name":"前进街道"},{"code":"220702007","name":"和平街道"},{"code":"220702008","name":"工农街道"},{"code":"220702009","name":"沿江街道"},{"code":"220702010","name":"铁西街道"},{"code":"220702011","name":"繁荣街道"},{"code":"220702012","name":"建设街道"},{"code":"220702013","name":"石化街道"},{"code":"220702014","name":"伯都讷街道"},{"code":"220702015","name":"长宁街道"},{"code":"220702016","name":"滨江街道"},{"code":"220702017","name":"镜湖街道"},{"code":"220702100","name":"大洼镇"},{"code":"220702101","name":"善友镇"},{"code":"220702102","name":"毛都站镇"},{"code":"220702103","name":"哈达山镇"},{"code":"220702200","name":"新城乡"},{"code":"220702202","name":"伯都乡"},{"code":"220702400","name":"华侨农场"},{"code":"220702401","name":"大洼商业渔场"},{"code":"220702402","name":"国营善友林场"},{"code":"220702403","name":"国营八家子苗圃"},{"code":"220702404","name":"良种繁育场"},{"code":"220702405","name":"哈达山林场"},{"code":"220702406","name":"雅达虹工业集中区"}]},{"code":"220721","name":"前郭尔罗斯蒙古族自治县","children":[{"code":"220721100","name":"前郭尔罗斯镇"},{"code":"220721101","name":"长山镇"},{"code":"220721102","name":"海渤日戈镇"},{"code":"220721103","name":"乌兰图嘎镇"},{"code":"220721104","name":"查干花镇"},{"code":"220721105","name":"王府站镇"},{"code":"220721106","name":"八郎镇"},{"code":"220721107","name":"哈拉毛都镇"},{"code":"220721108","name":"查干湖镇"},{"code":"220721200","name":"宝甸乡"},{"code":"220721201","name":"平凤乡"},{"code":"220721203","name":"达里巴乡"},{"code":"220721204","name":"吉拉吐乡"},{"code":"220721205","name":"白依拉嘎乡"},{"code":"220721206","name":"洪泉乡"},{"code":"220721207","name":"额如乡"},{"code":"220721208","name":"套浩太乡"},{"code":"220721209","name":"长龙乡"},{"code":"220721210","name":"乌兰塔拉乡"},{"code":"220721211","name":"东三家子乡"},{"code":"220721212","name":"浩特芒哈乡"},{"code":"220721213","name":"乌兰敖都乡"},{"code":"220721400","name":"红旗农场"},{"code":"220721401","name":"红光农场"},{"code":"220721402","name":"红星牧场"},{"code":"220721403","name":"查干花种畜场"},{"code":"220721404","name":"莲花泡农场"},{"code":"220721405","name":"深井子牧场"},{"code":"220721406","name":"前郭尔罗斯蒙古族自治县国有林总场"},{"code":"220721407","name":"查干湖旅游经济开发区"},{"code":"220721408","name":"八郎农场"},{"code":"220721409","name":"查干湖渔场"},{"code":"220721411","name":"长山余热鱼苗繁殖场"},{"code":"220721412","name":"库里渔场"},{"code":"220721413","name":"哈拉毛都良种场"},{"code":"220721415","name":"新庙泡渔场"},{"code":"220721417","name":"吉林前郭经济技术开发区"}]},{"code":"220722","name":"长岭县","children":[{"code":"220722001","name":"长盛街道"},{"code":"220722002","name":"长治街道"},{"code":"220722003","name":"长久街道"},{"code":"220722100","name":"长岭镇"},{"code":"220722101","name":"太平川镇"},{"code":"220722102","name":"巨宝山镇"},{"code":"220722103","name":"太平山镇"},{"code":"220722104","name":"前七号镇"},{"code":"220722105","name":"新安镇"},{"code":"220722106","name":"三青山镇"},{"code":"220722107","name":"大兴镇"},{"code":"220722108","name":"北正镇"},{"code":"220722109","name":"流水镇"},{"code":"220722110","name":"永久镇"},{"code":"220722111","name":"利发盛镇"},{"code":"220722200","name":"集体乡"},{"code":"220722201","name":"光明乡"},{"code":"220722202","name":"三县堡乡"},{"code":"220722203","name":"海青乡"},{"code":"220722204","name":"前进乡"},{"code":"220722205","name":"东岭乡"},{"code":"220722206","name":"腰坨子乡"},{"code":"220722207","name":"八十八乡"},{"code":"220722208","name":"三团乡"},{"code":"220722209","name":"三十号乡"},{"code":"220722400","name":"长岭种马场"},{"code":"220722401","name":"长岭环城工业集中区"},{"code":"220722405","name":"太平川机械林场"},{"code":"220722406","name":"三团机械林场"},{"code":"220722407","name":"东岭机械林场"},{"code":"220722408","name":"十四号种畜场"},{"code":"220722409","name":"良种繁育场"},{"code":"220722410","name":"前七号机械林场"}]},{"code":"220723","name":"乾安县","children":[{"code":"220723001","name":"荣业街道"},{"code":"220723002","name":"驰誉街道"},{"code":"220723003","name":"如松街道"},{"code":"220723100","name":"乾安镇"},{"code":"220723101","name":"大布苏镇"},{"code":"220723102","name":"水字镇"},{"code":"220723103","name":"让字镇"},{"code":"220723104","name":"所字镇"},{"code":"220723105","name":"安字镇"},{"code":"220723200","name":"余字乡"},{"code":"220723201","name":"道字乡"},{"code":"220723202","name":"严字乡"},{"code":"220723203","name":"赞字乡"},{"code":"220723400","name":"国营林场"},{"code":"220723401","name":"腾字种畜场"},{"code":"220723402","name":"大遐畜牧场"},{"code":"220723403","name":"乾安鹿场"},{"code":"220723404","name":"来字良种繁育基地"},{"code":"220723405","name":"地字种畜场"}]},{"code":"220771","name":"吉林松原经济开发区","children":[{"code":"220771200","name":"兴原乡"},{"code":"220771599","name":"松原经济技术开发区特殊乡镇"}]},{"code":"220781","name":"扶余市","children":[{"code":"220781001","name":"和兴街道"},{"code":"220781002","name":"育才街道"},{"code":"220781003","name":"联盟街道"},{"code":"220781004","name":"士英街道"},{"code":"220781005","name":"铁西街道"},{"code":"220781100","name":"三岔河镇"},{"code":"220781101","name":"长春岭镇"},{"code":"220781102","name":"五家站镇"},{"code":"220781103","name":"陶赖昭镇"},{"code":"220781104","name":"蔡家沟镇"},{"code":"220781105","name":"弓棚子镇"},{"code":"220781106","name":"三井子镇"},{"code":"220781107","name":"增盛镇"},{"code":"220781108","name":"新万发镇"},{"code":"220781109","name":"大林子镇"},{"code":"220781110","name":"新源镇"},{"code":"220781111","name":"得胜镇"},{"code":"220781200","name":"三骏满族蒙古族锡伯族乡"},{"code":"220781201","name":"永平乡"},{"code":"220781203","name":"新站乡"},{"code":"220781204","name":"更新乡"},{"code":"220781206","name":"肖家乡"},{"code":"220781401","name":"拉林灌区管理局"},{"code":"220781402","name":"下岱吉灌区管理局"}]}]},{"code":"2208","name":"白城市","children":[{"code":"220802","name":"洮北区","children":[{"code":"220802001","name":"海明街道"},{"code":"220802002","name":"长庆街道"},{"code":"220802003","name":"瑞光街道"},{"code":"220802004","name":"明仁街道"},{"code":"220802005","name":"铁东街道"},{"code":"220802006","name":"(工业园区)城南街道"},{"code":"220802007","name":"新立街道"},{"code":"220802009","name":"新华街道"},{"code":"220802100","name":"平安镇"},{"code":"220802101","name":"青山镇"},{"code":"220802102","name":"林海镇"},{"code":"220802103","name":"洮河镇"},{"code":"220802104","name":"平台镇"},{"code":"220802105","name":"到保镇"},{"code":"220802170","name":"(查干浩特旅游经济开发区)岭下镇"},{"code":"220802200","name":"东风乡"},{"code":"220802201","name":"三合乡"},{"code":"220802202","name":"东胜乡"},{"code":"220802203","name":"金祥乡"},{"code":"220802204","name":"德顺蒙古族乡"},{"code":"220802402","name":"镇南种羊场"},{"code":"220802403","name":"白城牧场"},{"code":"220802404","name":"洮儿河农场"},{"code":"220802405","name":"保民农场"},{"code":"220802407","name":"白城市生态新区"}]},{"code":"220821","name":"镇赉县","children":[{"code":"220821100","name":"镇赉镇"},{"code":"220821101","name":"坦途镇"},{"code":"220821102","name":"东屏镇"},{"code":"220821103","name":"大屯镇"},{"code":"220821104","name":"沿江镇"},{"code":"220821105","name":"五棵树镇"},{"code":"220821106","name":"黑鱼泡镇"},{"code":"220821200","name":"哈吐气蒙古族乡"},{"code":"220821201","name":"莫莫格蒙古族乡"},{"code":"220821202","name":"建平乡"},{"code":"220821203","name":"嘎什根乡"},{"code":"220821400","name":"四方坨子农场"},{"code":"220821402","name":"良种繁育场"},{"code":"220821403","name":"九龙山马场"},{"code":"220821406","name":"国营渔场"}]},{"code":"220822","name":"通榆县","children":[{"code":"220822001","name":"树满街道"},{"code":"220822002","name":"八区街道"},{"code":"220822003","name":"迎新街道"},{"code":"220822100","name":"开通镇"},{"code":"220822101","name":"瞻榆镇"},{"code":"220822102","name":"双岗镇"},{"code":"220822103","name":"兴隆山镇"},{"code":"220822104","name":"边昭镇"},{"code":"220822105","name":"鸿兴镇"},{"code":"220822106","name":"新华镇"},{"code":"220822107","name":"乌兰花镇"},{"code":"220822200","name":"新发乡"},{"code":"220822201","name":"新兴乡"},{"code":"220822202","name":"向海蒙古族乡"},{"code":"220822203","name":"包拉温都蒙古族乡"},{"code":"220822204","name":"团结乡"},{"code":"220822205","name":"十花道乡"},{"code":"220822206","name":"八面乡"},{"code":"220822207","name":"苏公坨乡"},{"code":"220822400","name":"通榆经济开发区"},{"code":"220822401","name":"三家子种牛场"},{"code":"220822405","name":"新华牛场"}]},{"code":"220871","name":"吉林白城经济开发区","children":[{"code":"220871001","name":"幸福街道"},{"code":"220871002","name":"保平街道"},{"code":"220871003","name":"西郊街道"}]},{"code":"220881","name":"洮南市","children":[{"code":"220881001","name":"团结街道"},{"code":"220881002","name":"富文街道"},{"code":"220881003","name":"光明街道"},{"code":"220881004","name":"兴隆街道"},{"code":"220881005","name":"永康街道"},{"code":"220881006","name":"通达街道"},{"code":"220881007","name":"洮府街道"},{"code":"220881008","name":"向阳街道"},{"code":"220881100","name":"瓦房镇"},{"code":"220881101","name":"万宝镇"},{"code":"220881102","name":"黑水镇"},{"code":"220881103","name":"那金镇"},{"code":"220881104","name":"安定镇"},{"code":"220881105","name":"福顺镇"},{"code":"220881200","name":"胡力吐蒙古族乡"},{"code":"220881201","name":"万宝乡"},{"code":"220881202","name":"聚宝乡"},{"code":"220881203","name":"东升乡"},{"code":"220881204","name":"野马乡"},{"code":"220881205","name":"永茂乡"},{"code":"220881206","name":"蛟流河乡"},{"code":"220881207","name":"大通乡"},{"code":"220881209","name":"二龙乡"},{"code":"220881210","name":"呼和车力蒙古族乡"},{"code":"220881402","name":"市原种场"}]},{"code":"220882","name":"大安市","children":[{"code":"220882001","name":"慧阳街道"},{"code":"220882002","name":"临江街道"},{"code":"220882003","name":"长虹街道"},{"code":"220882004","name":"锦华街道"},{"code":"220882005","name":"安北街道"},{"code":"220882100","name":"月亮泡镇"},{"code":"220882101","name":"安广镇"},{"code":"220882102","name":"丰收镇"},{"code":"220882103","name":"新平安镇"},{"code":"220882104","name":"两家子镇"},{"code":"220882105","name":"舍力镇"},{"code":"220882106","name":"大岗子镇"},{"code":"220882107","name":"叉干镇"},{"code":"220882108","name":"龙沼镇"},{"code":"220882109","name":"太山镇"},{"code":"220882200","name":"四棵树乡"},{"code":"220882201","name":"联合乡"},{"code":"220882202","name":"大赉乡"},{"code":"220882203","name":"红岗子乡"},{"code":"220882204","name":"海坨乡"},{"code":"220882205","name":"新艾里蒙古族乡"},{"code":"220882206","name":"烧锅镇乡"},{"code":"220882207","name":"乐胜乡"},{"code":"220882400","name":"大安经济开发区(省级)"},{"code":"220882401","name":"新荒渔场"},{"code":"220882402","name":"东方红农场"},{"code":"220882404","name":"五间房水库"},{"code":"220882406","name":"风水山牧场"},{"code":"220882407","name":"东风马场"},{"code":"220882408","name":"良种繁育场"},{"code":"220882409","name":"大安马场"},{"code":"220882410","name":"安广猪场"},{"code":"220882411","name":"红旗饲养场"}]}]},{"code":"2224","name":"延边朝鲜族自治州","children":[{"code":"222401","name":"延吉市","children":[{"code":"222401001","name":"进学街道"},{"code":"222401002","name":"北山街道"},{"code":"222401003","name":"新兴街道"},{"code":"222401004","name":"公园街道"},{"code":"222401005","name":"河南街道"},{"code":"222401006","name":"建工街道"},{"code":"222401100","name":"小营镇"},{"code":"222401101","name":"依兰镇"},{"code":"222401102","name":"三道湾镇"},{"code":"222401105","name":"朝阳川镇"},{"code":"222401400","name":"延吉市林业局"},{"code":"222401401","name":"东山农场"},{"code":"222401402","name":"延边原种场"},{"code":"222401404","name":"延边新兴工业集中区"}]},{"code":"222402","name":"图们市","children":[{"code":"222402001","name":"向上街道"},{"code":"222402002","name":"新华街道"},{"code":"222402003","name":"月宫街道"},{"code":"222402100","name":"月晴镇"},{"code":"222402101","name":"石岘镇"},{"code":"222402102","name":"长安镇"},{"code":"222402103","name":"凉水镇"}]},{"code":"222403","name":"敦化市","children":[{"code":"222403001","name":"渤海街道"},{"code":"222403002","name":"胜利街道"},{"code":"222403003","name":"民主街道"},{"code":"222403004","name":"丹江街道"},{"code":"222403100","name":"大石头镇"},{"code":"222403101","name":"黄泥河镇"},{"code":"222403102","name":"官地镇"},{"code":"222403103","name":"沙河沿镇"},{"code":"222403104","name":"秋梨沟镇"},{"code":"222403105","name":"额穆镇"},{"code":"222403106","name":"贤儒镇"},{"code":"222403107","name":"大蒲柴河镇"},{"code":"222403108","name":"雁鸣湖镇"},{"code":"222403109","name":"江源镇"},{"code":"222403110","name":"江南镇"},{"code":"222403200","name":"大桥乡"},{"code":"222403201","name":"黑石乡"},{"code":"222403202","name":"青沟子乡"},{"code":"222403203","name":"翰章乡"},{"code":"222403204","name":"红石乡"},{"code":"222403400","name":"长白山森工集团敦化林业有限公司"},{"code":"222403401","name":"长白山森工集团黄泥河林业有限公司"},{"code":"222403402","name":"长白山森工集团大石头林业有限公司"},{"code":"222403403","name":"敦化市林业局"},{"code":"222403404","name":"敖东鹿场"}]},{"code":"222404","name":"珲春市","children":[{"code":"222404001","name":"靖和街道"},{"code":"222404002","name":"新安街道"},{"code":"222404003","name":"河南街道"},{"code":"222404060","name":"近海街道"},{"code":"222404100","name":"春化镇"},{"code":"222404101","name":"敬信镇"},{"code":"222404102","name":"板石镇"},{"code":"222404103","name":"英安镇"},{"code":"222404200","name":"马川子乡"},{"code":"222404201","name":"杨泡满族乡"},{"code":"222404202","name":"三家子满族乡"},{"code":"222404203","name":"密江乡"},{"code":"222404204","name":"哈达门乡"},{"code":"222404400","name":"珲春林业局"}]},{"code":"222405","name":"龙井市","children":[{"code":"222405001","name":"安民街道"},{"code":"222405002","name":"龙门街道"},{"code":"222405100","name":"开山屯镇"},{"code":"222405102","name":"老头沟镇"},{"code":"222405103","name":"三合镇"},{"code":"222405104","name":"东盛涌镇"},{"code":"222405105","name":"智新镇"},{"code":"222405200","name":"德新乡"},{"code":"222405201","name":"白金乡"},{"code":"222405400","name":"龙井市林业局"},{"code":"222405401","name":"龙井大苏果树农场"}]},{"code":"222406","name":"和龙市","children":[{"code":"222406001","name":"民慧街道"},{"code":"222406002","name":"光明街道"},{"code":"222406003","name":"文化街道"},{"code":"222406100","name":"八家子镇"},{"code":"222406101","name":"福洞镇"},{"code":"222406102","name":"头道镇"},{"code":"222406103","name":"西城镇"},{"code":"222406104","name":"南坪镇"},{"code":"222406105","name":"东城镇"},{"code":"222406106","name":"崇善镇"},{"code":"222406107","name":"龙城镇"},{"code":"222406400","name":"和龙林业局"},{"code":"222406401","name":"八家子林业局"},{"code":"222406402","name":"和龙市林业局"}]},{"code":"222424","name":"汪清县","children":[{"code":"222424011","name":"大川街道"},{"code":"222424012","name":"新民街道"},{"code":"222424013","name":"长荣街道"},{"code":"222424100","name":"汪清镇"},{"code":"222424101","name":"大兴沟镇"},{"code":"222424102","name":"天桥岭镇"},{"code":"222424103","name":"罗子沟镇"},{"code":"222424104","name":"百草沟镇"},{"code":"222424105","name":"春阳镇"},{"code":"222424106","name":"复兴镇"},{"code":"222424107","name":"东光镇"},{"code":"222424200","name":"鸡冠乡"},{"code":"222424400","name":"汪清林业局"},{"code":"222424401","name":"天桥岭林业局"},{"code":"222424402","name":"大兴沟林业局"}]},{"code":"222426","name":"安图县","children":[{"code":"222426001","name":"长兴街道"},{"code":"222426002","name":"瓮声街道"},{"code":"222426003","name":"九龙街道"},{"code":"222426100","name":"明月镇"},{"code":"222426101","name":"松江镇"},{"code":"222426102","name":"二道白河镇"},{"code":"222426103","name":"两江镇"},{"code":"222426104","name":"石门镇"},{"code":"222426105","name":"万宝镇"},{"code":"222426106","name":"亮兵镇"},{"code":"222426120","name":"长白山保护开发区池北区特殊乡镇"},{"code":"222426200","name":"新合乡"},{"code":"222426201","name":"永庆乡"},{"code":"222426400","name":"白河林业局"},{"code":"222426401","name":"安图林业有限公司"},{"code":"222426402","name":"安图县林业局"}]}]}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市","children":[{"code":"230102","name":"道里区","children":[{"code":"230102001","name":"兆麟街道"},{"code":"230102002","name":"新阳路街道"},{"code":"230102003","name":"抚顺街道"},{"code":"230102004","name":"共乐街道"},{"code":"230102005","name":"新华街道"},{"code":"230102006","name":"城乡路街道"},{"code":"230102007","name":"工农街道"},{"code":"230102008","name":"尚志街道"},{"code":"230102009","name":"斯大林街道"},{"code":"230102010","name":"通江街道"},{"code":"230102011","name":"经纬街道"},{"code":"230102012","name":"工程街道"},{"code":"230102013","name":"安静街道"},{"code":"230102014","name":"安和街道"},{"code":"230102015","name":"正阳河街道"},{"code":"230102016","name":"建国街道"},{"code":"230102017","name":"康安街道"},{"code":"230102018","name":"爱建街道"},{"code":"230102019","name":"群力街道"},{"code":"230102101","name":"太平镇"},{"code":"230102102","name":"新发镇"},{"code":"230102103","name":"新农镇"},{"code":"230102104","name":"榆树镇"}]},{"code":"230103","name":"南岗区","children":[{"code":"230103001","name":"花园街道"},{"code":"230103002","name":"奋斗路街道"},{"code":"230103003","name":"革新街道"},{"code":"230103004","name":"文化街道"},{"code":"230103005","name":"大成街道"},{"code":"230103006","name":"芦家街道"},{"code":"230103007","name":"荣市街道"},{"code":"230103009","name":"燎原街道"},{"code":"230103010","name":"松花江街道"},{"code":"230103011","name":"曲线街道"},{"code":"230103012","name":"通达街道"},{"code":"230103013","name":"七政街道"},{"code":"230103015","name":"和兴路街道"},{"code":"230103016","name":"哈西街道"},{"code":"230103017","name":"保健路街道"},{"code":"230103018","name":"先锋路街道"},{"code":"230103019","name":"新春街道"},{"code":"230103020","name":"跃进街道"},{"code":"230103101","name":"王岗镇"},{"code":"230103201","name":"红旗满族乡"},{"code":"230103500","name":"红旗农场"},{"code":"230103579","name":"南岗区农垦"}]},{"code":"230104","name":"道外区","children":[{"code":"230104001","name":"靖宇街道"},{"code":"230104002","name":"太古街道"},{"code":"230104003","name":"东莱街道"},{"code":"230104004","name":"滨江街道"},{"code":"230104005","name":"仁里街道"},{"code":"230104006","name":"南市街道"},{"code":"230104007","name":"崇俭街道"},{"code":"230104008","name":"振江街道"},{"code":"230104009","name":"东原街道"},{"code":"230104010","name":"大兴街道"},{"code":"230104011","name":"胜利街道"},{"code":"230104012","name":"南马街道"},{"code":"230104021","name":"民强街道"},{"code":"230104022","name":"大有坊街道"},{"code":"230104023","name":"南直路街道"},{"code":"230104024","name":"化工街道"},{"code":"230104025","name":"火车头街道"},{"code":"230104026","name":"新一街道"},{"code":"230104027","name":"三棵树大街街道"},{"code":"230104028","name":"水泥路街道"},{"code":"230104029","name":"太平大街街道"},{"code":"230104030","name":"黎华街道"},{"code":"230104031","name":"新乐街道"},{"code":"230104102","name":"永源镇"},{"code":"230104109","name":"巨源镇"},{"code":"230104111","name":"团结镇"},{"code":"230104112","name":"民主镇"},{"code":"230104500","name":"青年农场"},{"code":"230104579","name":"道外农垦"}]},{"code":"230108","name":"平房区","children":[{"code":"230108001","name":"兴建街道"},{"code":"230108002","name":"保国街道"},{"code":"230108003","name":"联盟街道"},{"code":"230108004","name":"友协街道"},{"code":"230108005","name":"新疆街道"},{"code":"230108006","name":"新伟街道"},{"code":"230108007","name":"平新街道"},{"code":"230108008","name":"建安街道"},{"code":"230108009","name":"平盛街道"},{"code":"230108101","name":"平房镇"},{"code":"230108579","name":"平房农垦"}]},{"code":"230109","name":"松北区","children":[{"code":"230109002","name":"太阳岛街道"},{"code":"230109003","name":"松浦街道"},{"code":"230109004","name":"万宝街道"},{"code":"230109005","name":"松北街道"},{"code":"230109006","name":"松安街道"},{"code":"230109007","name":"松祥街道"},{"code":"230109008","name":"船口街道"},{"code":"230109101","name":"对青山镇"},{"code":"230109102","name":"乐业镇"}]},{"code":"230110","name":"香坊区","children":[{"code":"230110001","name":"香坊大街街道"},{"code":"230110002","name":"安埠街道"},{"code":"230110003","name":"通天街道"},{"code":"230110004","name":"新香坊街道"},{"code":"230110005","name":"铁东街道"},{"code":"230110006","name":"新成街道"},{"code":"230110007","name":"红旗街道"},{"code":"230110008","name":"六顺街道"},{"code":"230110009","name":"建筑街道"},{"code":"230110010","name":"哈平路街道"},{"code":"230110011","name":"安乐街道"},{"code":"230110012","name":"健康路街道"},{"code":"230110013","name":"大庆路街道"},{"code":"230110014","name":"进乡街道"},{"code":"230110015","name":"通乡街道"},{"code":"230110016","name":"和平路街道"},{"code":"230110017","name":"民生路街道"},{"code":"230110018","name":"文政街道"},{"code":"230110019","name":"王兆街道"},{"code":"230110020","name":"黎明街道"},{"code":"230110101","name":"成高子镇"},{"code":"230110102","name":"幸福镇"},{"code":"230110103","name":"朝阳镇"},{"code":"230110104","name":"向阳镇"},{"code":"230110400","name":"哈尔滨综合保税区地区"},{"code":"230110500","name":"香坊实验农场地区"},{"code":"230110579","name":"香坊区农垦地区"}]},{"code":"230111","name":"呼兰区","children":[{"code":"230111001","name":"呼兰街道"},{"code":"230111002","name":"兰河街道"},{"code":"230111003","name":"腰堡街道"},{"code":"230111004","name":"利民街道"},{"code":"230111005","name":"康金街道"},{"code":"230111006","name":"双井街道"},{"code":"230111007","name":"建设路街道"},{"code":"230111008","name":"学院路街道"},{"code":"230111009","name":"长岭街道"},{"code":"230111010","name":"沈家街道"},{"code":"230111011","name":"南京路街道"},{"code":"230111012","name":"裕民街道"},{"code":"230111013","name":"裕田街道"},{"code":"230111014","name":"裕强街道"},{"code":"230111015","name":"萧乡街道"},{"code":"230111016","name":"公园路街道"},{"code":"230111105","name":"二八镇"},{"code":"230111106","name":"石人镇"},{"code":"230111107","name":"白奎镇"},{"code":"230111109","name":"方台镇"},{"code":"230111110","name":"莲花镇"},{"code":"230111111","name":"大用镇"},{"code":"230111114","name":"利业镇"},{"code":"230111201","name":"杨林乡"},{"code":"230111203","name":"许堡乡"},{"code":"230111205","name":"孟家乡"},{"code":"230111579","name":"呼兰农垦"}]},{"code":"230112","name":"阿城区","children":[{"code":"230112001","name":"金城街道"},{"code":"230112002","name":"金都街道"},{"code":"230112003","name":"通城街道"},{"code":"230112004","name":"河东街道"},{"code":"230112005","name":"阿什河街道"},{"code":"230112006","name":"玉泉街道"},{"code":"230112007","name":"新利街道"},{"code":"230112008","name":"双丰街道"},{"code":"230112009","name":"舍利街道"},{"code":"230112010","name":"小岭街道"},{"code":"230112011","name":"亚沟街道"},{"code":"230112012","name":"交界街道"},{"code":"230112013","name":"料甸街道"},{"code":"230112014","name":"蜚克图街道"},{"code":"230112015","name":"杨树街道"},{"code":"230112107","name":"平山镇"},{"code":"230112108","name":"松峰山镇"},{"code":"230112109","name":"红星镇"},{"code":"230112112","name":"金龙山镇"},{"code":"230112503","name":"阿城原种场"}]},{"code":"230113","name":"双城区","children":[{"code":"230113002","name":"五家街道"},{"code":"230113003","name":"新兴街道"},{"code":"230113004","name":"兰棱街道"},{"code":"230113005","name":"周家街道"},{"code":"230113006","name":"公正街道"},{"code":"230113007","name":"承旭街道"},{"code":"230113008","name":"承恩街道"},{"code":"230113009","name":"永治街道"},{"code":"230113010","name":"永和街道"},{"code":"230113011","name":"幸福街道"},{"code":"230113104","name":"韩甸镇"},{"code":"230113105","name":"单城镇"},{"code":"230113106","name":"东官镇"},{"code":"230113107","name":"农丰满族锡伯族镇"},{"code":"230113108","name":"杏山镇"},{"code":"230113109","name":"西官镇"},{"code":"230113110","name":"联兴镇"},{"code":"230113111","name":"永胜镇"},{"code":"230113112","name":"胜丰镇"},{"code":"230113201","name":"金城乡"},{"code":"230113203","name":"青岭满族乡"},{"code":"230113209","name":"临江乡"},{"code":"230113210","name":"水泉乡"},{"code":"230113211","name":"乐群满族乡"},{"code":"230113214","name":"万隆乡"},{"code":"230113216","name":"希勤满族乡"},{"code":"230113217","name":"同心满族乡"}]},{"code":"230123","name":"依兰县","children":[{"code":"230123100","name":"依兰镇"},{"code":"230123101","name":"达连河镇"},{"code":"230123102","name":"江湾镇"},{"code":"230123103","name":"三道岗镇"},{"code":"230123104","name":"道台桥镇"},{"code":"230123105","name":"宏克利镇"},{"code":"230123200","name":"团山子乡"},{"code":"230123201","name":"愚公乡"},{"code":"230123202","name":"迎兰朝鲜族乡"},{"code":"230123400","name":"依兰县林业局"},{"code":"230123500","name":"依兰农场"},{"code":"230123501","name":"松花江农场"}]},{"code":"230124","name":"方正县","children":[{"code":"230124100","name":"方正镇"},{"code":"230124101","name":"会发镇"},{"code":"230124102","name":"大罗密镇"},{"code":"230124103","name":"得莫利镇"},{"code":"230124200","name":"天门乡"},{"code":"230124201","name":"松南乡"},{"code":"230124202","name":"德善乡"},{"code":"230124204","name":"宝兴乡"},{"code":"230124400","name":"方正林业局"},{"code":"230124500","name":"沙河农场"}]},{"code":"230125","name":"宾县","children":[{"code":"230125100","name":"宾州镇"},{"code":"230125101","name":"居仁镇"},{"code":"230125102","name":"宾西镇"},{"code":"230125103","name":"糖坊镇"},{"code":"230125104","name":"宾安镇"},{"code":"230125105","name":"新甸镇"},{"code":"230125106","name":"胜利镇"},{"code":"230125107","name":"宁远镇"},{"code":"230125109","name":"摆渡镇"},{"code":"230125110","name":"平坊镇"},{"code":"230125111","name":"满井镇"},{"code":"230125112","name":"常安镇"},{"code":"230125201","name":"永和乡"},{"code":"230125203","name":"鸟河乡"},{"code":"230125204","name":"民和乡"},{"code":"230125205","name":"经建乡"},{"code":"230125210","name":"三宝乡"},{"code":"230125500","name":"九龙山柞蚕育种场"},{"code":"230125579","name":"农垦农业职业学院"}]},{"code":"230126","name":"巴彦县","children":[{"code":"230126100","name":"巴彦镇"},{"code":"230126101","name":"兴隆镇"},{"code":"230126102","name":"西集镇"},{"code":"230126103","name":"洼兴镇"},{"code":"230126104","name":"龙泉镇"},{"code":"230126105","name":"巴彦港镇"},{"code":"230126106","name":"龙庙镇"},{"code":"230126107","name":"万发镇"},{"code":"230126108","name":"天增镇"},{"code":"230126110","name":"黑山镇"},{"code":"230126200","name":"松花江乡"},{"code":"230126202","name":"富江乡"},{"code":"230126204","name":"华山乡"},{"code":"230126205","name":"丰乐乡"},{"code":"230126209","name":"德祥乡"},{"code":"230126210","name":"红光乡"},{"code":"230126212","name":"山后乡"},{"code":"230126214","name":"镇东乡"},{"code":"230126400","name":"兴隆林业局"},{"code":"230126401","name":"工业园区"}]},{"code":"230127","name":"木兰县","children":[{"code":"230127100","name":"木兰镇"},{"code":"230127101","name":"东兴镇"},{"code":"230127102","name":"大贵镇"},{"code":"230127103","name":"利东镇"},{"code":"230127104","name":"柳河镇"},{"code":"230127105","name":"新民镇"},{"code":"230127200","name":"建国乡"},{"code":"230127203","name":"吉兴乡"},{"code":"230127400","name":"兴隆林业局"}]},{"code":"230128","name":"通河县","children":[{"code":"230128100","name":"通河镇"},{"code":"230128101","name":"乌鸦泡镇"},{"code":"230128102","name":"清河镇"},{"code":"230128103","name":"浓河镇"},{"code":"230128104","name":"凤山镇"},{"code":"230128105","name":"祥顺镇"},{"code":"230128106","name":"富林镇"},{"code":"230128107","name":"三站镇"},{"code":"230128400","name":"清河林业局"},{"code":"230128401","name":"兴隆林业局"},{"code":"230128500","name":"岔林河农场"}]},{"code":"230129","name":"延寿县","children":[{"code":"230129100","name":"延寿镇"},{"code":"230129101","name":"六团镇"},{"code":"230129102","name":"中和镇"},{"code":"230129103","name":"加信镇"},{"code":"230129104","name":"延河镇"},{"code":"230129105","name":"玉河镇"},{"code":"230129204","name":"安山乡"},{"code":"230129205","name":"寿山乡"},{"code":"230129209","name":"青川乡"},{"code":"230129400","name":"太平川"},{"code":"230129500","name":"庆阳农场"}]},{"code":"230183","name":"尚志市","children":[{"code":"230183100","name":"尚志镇"},{"code":"230183101","name":"一面坡镇"},{"code":"230183102","name":"苇河镇"},{"code":"230183103","name":"亚布力镇"},{"code":"230183104","name":"帽儿山镇"},{"code":"230183105","name":"亮河镇"},{"code":"230183106","name":"庆阳镇"},{"code":"230183107","name":"石头河子镇"},{"code":"230183108","name":"元宝镇"},{"code":"230183109","name":"黑龙宫镇"},{"code":"230183202","name":"长寿乡"},{"code":"230183204","name":"乌吉密乡"},{"code":"230183206","name":"鱼池乡"},{"code":"230183207","name":"珍珠山乡"},{"code":"230183208","name":"老街基乡"},{"code":"230183209","name":"马延乡"},{"code":"230183211","name":"河东乡"},{"code":"230183400","name":"苇河林业局"},{"code":"230183401","name":"亚布力林业局"},{"code":"230183402","name":"哈尔滨市政府亚布力滑雪旅游度假区管理委员会"}]},{"code":"230184","name":"五常市","children":[{"code":"230184100","name":"五常镇"},{"code":"230184101","name":"拉林满族镇"},{"code":"230184102","name":"山河镇"},{"code":"230184103","name":"小山子镇"},{"code":"230184104","name":"安家镇"},{"code":"230184105","name":"牛家满族镇"},{"code":"230184106","name":"杜家镇"},{"code":"230184107","name":"背荫河镇"},{"code":"230184108","name":"冲河镇"},{"code":"230184109","name":"沙河子镇"},{"code":"230184110","name":"向阳镇"},{"code":"230184111","name":"龙凤山镇"},{"code":"230184200","name":"兴盛乡"},{"code":"230184201","name":"志广乡"},{"code":"230184202","name":"卫国乡"},{"code":"230184203","name":"常堡乡"},{"code":"230184206","name":"民意乡"},{"code":"230184209","name":"红旗满族乡"},{"code":"230184210","name":"八家子乡"},{"code":"230184211","name":"民乐朝鲜族乡"},{"code":"230184212","name":"营城子满族乡"},{"code":"230184214","name":"长山乡"},{"code":"230184215","name":"兴隆乡"},{"code":"230184216","name":"二河乡"},{"code":"230184400","name":"山河屯林业局"}]}]},{"code":"2302","name":"齐齐哈尔市","children":[{"code":"230202","name":"龙沙区","children":[{"code":"230202001","name":"五龙街道"},{"code":"230202002","name":"湖滨街道"},{"code":"230202003","name":"江安街道"},{"code":"230202004","name":"正阳街道"},{"code":"230202005","name":"彩虹街道"},{"code":"230202006","name":"南航街道"},{"code":"230202007","name":"大民街道"},{"code":"230202579","name":"齐齐哈尔局直"}]},{"code":"230203","name":"建华区","children":[{"code":"230203002","name":"中华街道"},{"code":"230203004","name":"西大桥街道"},{"code":"230203005","name":"卜奎街道"},{"code":"230203006","name":"建设街道"},{"code":"230203007","name":"文化街道"},{"code":"230203198","name":"区直辖村级区划"}]},{"code":"230204","name":"铁锋区","children":[{"code":"230204001","name":"站前街道"},{"code":"230204002","name":"南浦街道"},{"code":"230204003","name":"通东街道"},{"code":"230204004","name":"光荣街道"},{"code":"230204005","name":"龙华街道"},{"code":"230204006","name":"北局宅街道"},{"code":"230204008","name":"东湖街道"},{"code":"230204100","name":"扎龙镇"},{"code":"230204500","name":"齐齐哈尔种畜场"}]},{"code":"230205","name":"昂昂溪区","children":[{"code":"230205001","name":"新兴街道"},{"code":"230205002","name":"新建街道"},{"code":"230205005","name":"林机街道"},{"code":"230205006","name":"道北街道"},{"code":"230205100","name":"水师营满族镇"},{"code":"230205101","name":"榆树屯镇"}]},{"code":"230206","name":"富拉尔基区","children":[{"code":"230206001","name":"红岸街道"},{"code":"230206003","name":"沿江街道"},{"code":"230206004","name":"电力街道"},{"code":"230206005","name":"幸福街道"},{"code":"230206006","name":"红宝石街道"},{"code":"230206007","name":"北兴街道"},{"code":"230206008","name":"铁北街道"},{"code":"230206009","name":"和平街道"},{"code":"230206200","name":"长青乡"},{"code":"230206202","name":"杜尔门沁达斡尔族乡"}]},{"code":"230207","name":"碾子山区","children":[{"code":"230207001","name":"东安街道"},{"code":"230207002","name":"富强街道"},{"code":"230207003","name":"跃进街道"},{"code":"230207004","name":"繁荣街道"}]},{"code":"230208","name":"梅里斯达斡尔族区","children":[{"code":"230208001","name":"梅里斯街道"},{"code":"230208101","name":"雅尔塞镇"},{"code":"230208102","name":"卧牛吐达斡尔族镇"},{"code":"230208103","name":"达呼店镇"},{"code":"230208104","name":"共和镇"},{"code":"230208105","name":"梅里斯镇"},{"code":"230208200","name":"莽格吐达斡尔族乡"}]},{"code":"230221","name":"龙江县","children":[{"code":"230221100","name":"龙江镇"},{"code":"230221101","name":"景星镇"},{"code":"230221102","name":"龙兴镇"},{"code":"230221103","name":"山泉镇"},{"code":"230221104","name":"七棵树镇"},{"code":"230221105","name":"杏山镇"},{"code":"230221106","name":"白山镇"},{"code":"230221107","name":"头站镇"},{"code":"230221201","name":"黑岗乡"},{"code":"230221202","name":"广厚乡"},{"code":"230221203","name":"华民乡"},{"code":"230221204","name":"哈拉海乡"},{"code":"230221215","name":"鲁河乡"},{"code":"230221217","name":"济沁河乡"}]},{"code":"230223","name":"依安县","children":[{"code":"230223100","name":"依安镇"},{"code":"230223101","name":"依龙镇"},{"code":"230223102","name":"双阳镇"},{"code":"230223103","name":"三兴镇"},{"code":"230223104","name":"中心镇"},{"code":"230223105","name":"新兴镇"},{"code":"230223200","name":"富饶乡"},{"code":"230223201","name":"解放乡"},{"code":"230223202","name":"阳春乡"},{"code":"230223203","name":"新发乡"},{"code":"230223204","name":"太东乡"},{"code":"230223205","name":"上游乡"},{"code":"230223206","name":"红星乡"},{"code":"230223207","name":"先锋乡"},{"code":"230223208","name":"新屯乡"}]},{"code":"230224","name":"泰来县","children":[{"code":"230224100","name":"泰来镇"},{"code":"230224101","name":"平洋镇"},{"code":"230224102","name":"汤池镇"},{"code":"230224103","name":"江桥蒙古族镇"},{"code":"230224104","name":"塔子城镇"},{"code":"230224105","name":"大兴镇"},{"code":"230224106","name":"和平镇"},{"code":"230224107","name":"克利镇"},{"code":"230224200","name":"胜利蒙古族乡"},{"code":"230224209","name":"宁姜蒙古族乡"},{"code":"230224400","name":"葡萄场"},{"code":"230224401","name":"果树场"},{"code":"230224402","name":"泰来县一苗圃"},{"code":"230224403","name":"泰来县二苗圃"},{"code":"230224404","name":"东方红机械林场"},{"code":"230224480","name":"六三监狱"},{"code":"230224580","name":"第一良种场"},{"code":"230224581","name":"第二良种场"},{"code":"230224582","name":"宏胜种畜场"},{"code":"230224583","name":"二龙涛农场"}]},{"code":"230225","name":"甘南县","children":[{"code":"230225100","name":"甘南镇"},{"code":"230225101","name":"兴十四镇"},{"code":"230225102","name":"平阳镇"},{"code":"230225103","name":"东阳镇"},{"code":"230225104","name":"巨宝镇"},{"code":"230225201","name":"长山乡"},{"code":"230225202","name":"中兴乡"},{"code":"230225203","name":"兴隆乡"},{"code":"230225204","name":"宝山乡"},{"code":"230225206","name":"查哈阳乡"},{"code":"230225500","name":"查哈阳农场"},{"code":"230225580","name":"北京市双河农场"}]},{"code":"230227","name":"富裕县","children":[{"code":"230227100","name":"富裕镇"},{"code":"230227101","name":"富路镇"},{"code":"230227102","name":"富海镇"},{"code":"230227103","name":"二道湾镇"},{"code":"230227104","name":"龙安桥镇"},{"code":"230227105","name":"塔哈镇"},{"code":"230227200","name":"繁荣乡"},{"code":"230227201","name":"绍文乡"},{"code":"230227202","name":"忠厚乡"},{"code":"230227203","name":"友谊达斡尔族满族柯尔克孜族乡"}]},{"code":"230229","name":"克山县","children":[{"code":"230229100","name":"克山镇"},{"code":"230229101","name":"北兴镇"},{"code":"230229102","name":"西城镇"},{"code":"230229103","name":"古城镇"},{"code":"230229104","name":"北联镇"},{"code":"230229105","name":"西河镇"},{"code":"230229106","name":"双河镇"},{"code":"230229200","name":"河南乡"},{"code":"230229203","name":"河北乡"},{"code":"230229204","name":"古北乡"},{"code":"230229205","name":"西联乡"},{"code":"230229206","name":"发展乡"},{"code":"230229207","name":"西建乡"},{"code":"230229208","name":"向华乡"},{"code":"230229210","name":"曙光乡"},{"code":"230229400","name":"克山县河北林场"},{"code":"230229401","name":"克山县涌泉林场"},{"code":"230229402","name":"克山县北联林场"},{"code":"230229580","name":"克山县第一良种场"},{"code":"230229581","name":"克山县第二良种场"},{"code":"230229583","name":"克山县种猪场"},{"code":"230229584","name":"克山县种畜场"}]},{"code":"230230","name":"克东县","children":[{"code":"230230100","name":"克东镇"},{"code":"230230101","name":"宝泉镇"},{"code":"230230102","name":"乾丰镇"},{"code":"230230103","name":"玉岗镇"},{"code":"230230104","name":"蒲峪路镇"},{"code":"230230202","name":"润津乡"},{"code":"230230204","name":"昌盛乡"},{"code":"230230400","name":"第一苗圃"},{"code":"230230401","name":"第二苗圃"},{"code":"230230402","name":"爱华林场"},{"code":"230230403","name":"发展林场"},{"code":"230230404","name":"东兴林场"},{"code":"230230580","name":"红旗奶山羊场"},{"code":"230230581","name":"第一良种场"},{"code":"230230582","name":"第二良种繁殖场"},{"code":"230230583","name":"果树繁殖场"},{"code":"230230584","name":"种猪场"},{"code":"230230585","name":"黑龙江省社会救助安置中心"}]},{"code":"230231","name":"拜泉县","children":[{"code":"230231100","name":"拜泉镇"},{"code":"230231101","name":"三道镇"},{"code":"230231102","name":"兴农镇"},{"code":"230231103","name":"长春镇"},{"code":"230231104","name":"龙泉镇"},{"code":"230231105","name":"国富镇"},{"code":"230231106","name":"富强镇"},{"code":"230231200","name":"新生乡"},{"code":"230231201","name":"兴国乡"},{"code":"230231203","name":"上升乡"},{"code":"230231204","name":"兴华乡"},{"code":"230231206","name":"大众乡"},{"code":"230231209","name":"丰产乡"},{"code":"230231210","name":"永勤乡"},{"code":"230231212","name":"爱农乡"},{"code":"230231214","name":"时中乡"}]},{"code":"230281","name":"讷河市","children":[{"code":"230281001","name":"雨亭街道"},{"code":"230281002","name":"通江街道"},{"code":"230281101","name":"拉哈镇"},{"code":"230281102","name":"二克浅镇"},{"code":"230281103","name":"学田镇"},{"code":"230281104","name":"龙河镇"},{"code":"230281105","name":"讷南镇"},{"code":"230281106","name":"六合镇"},{"code":"230281107","name":"长发镇"},{"code":"230281108","name":"通南镇"},{"code":"230281109","name":"同义镇"},{"code":"230281110","name":"九井镇"},{"code":"230281111","name":"老莱镇"},{"code":"230281201","name":"孔国乡"},{"code":"230281207","name":"和盛乡"},{"code":"230281208","name":"同心乡"},{"code":"230281210","name":"兴旺鄂温克族乡"},{"code":"230281400","name":"龙河镇保安林场"},{"code":"230281401","name":"龙河镇茂山林场"},{"code":"230281402","name":"龙河镇国庆林场"},{"code":"230281403","name":"学田镇富源林场"},{"code":"230281404","name":"老莱镇宽余林场"},{"code":"230281405","name":"新江林场"},{"code":"230281406","name":"一良苗圃"},{"code":"230281480","name":"黑龙江省老莱农场"},{"code":"230281581","name":"六合镇黎明奶牛场"},{"code":"230281582","name":"孔国乡进化种猪场"},{"code":"230281583","name":"二克浅镇二里种畜场"},{"code":"230281584","name":"龙河镇青色草原种畜场"},{"code":"230281585","name":"第一良种场"},{"code":"230281586","name":"第二良种场"},{"code":"230281587","name":"第三良种场"},{"code":"230281588","name":"第四良种场"}]}]},{"code":"2303","name":"鸡西市","children":[{"code":"230302","name":"鸡冠区","children":[{"code":"230302001","name":"向阳街道"},{"code":"230302002","name":"南山街道"},{"code":"230302003","name":"立新街道"},{"code":"230302004","name":"东风街道"},{"code":"230302005","name":"红军路街道"},{"code":"230302006","name":"西鸡西街道"},{"code":"230302007","name":"西山街道"},{"code":"230302200","name":"红星乡"},{"code":"230302201","name":"西郊乡"}]},{"code":"230303","name":"恒山区","children":[{"code":"230303001","name":"桦木林街道"},{"code":"230303002","name":"大恒山街道"},{"code":"230303003","name":"小恒山街道"},{"code":"230303004","name":"二道河子街道"},{"code":"230303005","name":"张新街道"},{"code":"230303006","name":"奋斗街道"},{"code":"230303007","name":"柳毛街道"},{"code":"230303200","name":"红旗乡"},{"code":"230303201","name":"柳毛乡"}]},{"code":"230304","name":"滴道区","children":[{"code":"230304001","name":"东兴街道"},{"code":"230304002","name":"矿里街道"},{"code":"230304003","name":"洗煤街道"},{"code":"230304004","name":"大通沟街道"},{"code":"230304200","name":"滴道河乡"},{"code":"230304201","name":"兰岭乡"}]},{"code":"230305","name":"梨树区","children":[{"code":"230305001","name":"街里街道"},{"code":"230305002","name":"穆棱街道"},{"code":"230305003","name":"平岗街道"},{"code":"230305101","name":"梨树镇"}]},{"code":"230306","name":"城子河区","children":[{"code":"230306001","name":"城子河街道"},{"code":"230306002","name":"正阳街道"},{"code":"230306003","name":"东海街道"},{"code":"230306004","name":"城西街道"},{"code":"230306005","name":"杏花街道"},{"code":"230306200","name":"长青乡"},{"code":"230306201","name":"永丰乡"}]},{"code":"230307","name":"麻山区","children":[{"code":"230307001","name":"麻山街道"},{"code":"230307101","name":"麻山镇"}]},{"code":"230321","name":"鸡东县","children":[{"code":"230321100","name":"鸡东镇"},{"code":"230321101","name":"平阳镇"},{"code":"230321102","name":"向阳镇"},{"code":"230321103","name":"哈达镇"},{"code":"230321104","name":"永安镇"},{"code":"230321105","name":"永和镇"},{"code":"230321106","name":"东海镇"},{"code":"230321107","name":"兴农镇"},{"code":"230321200","name":"鸡林乡"},{"code":"230321205","name":"明德乡"},{"code":"230321206","name":"下亮子乡"},{"code":"230321400","name":"林业局"},{"code":"230321500","name":"八五一零农场"}]},{"code":"230381","name":"虎林市","children":[{"code":"230381100","name":"虎林镇"},{"code":"230381101","name":"东方红镇"},{"code":"230381102","name":"迎春镇"},{"code":"230381103","name":"虎头镇"},{"code":"230381104","name":"杨岗镇"},{"code":"230381105","name":"东诚镇"},{"code":"230381106","name":"宝东镇"},{"code":"230381203","name":"新乐乡"},{"code":"230381204","name":"伟光乡"},{"code":"230381206","name":"珍宝岛乡"},{"code":"230381207","name":"阿北乡"},{"code":"230381400","name":"东方红林业局"},{"code":"230381401","name":"迎春林业局"},{"code":"230381500","name":"八五〇农场"},{"code":"230381501","name":"八五四农场"},{"code":"230381502","name":"八五六农场"},{"code":"230381503","name":"八五八农场"},{"code":"230381504","name":"庆丰农场"},{"code":"230381505","name":"云山农场"}]},{"code":"230382","name":"密山市","children":[{"code":"230382001","name":"中心街道"},{"code":"230382100","name":"密山镇"},{"code":"230382101","name":"连珠山镇"},{"code":"230382102","name":"当壁镇"},{"code":"230382103","name":"知一镇"},{"code":"230382104","name":"黑台镇"},{"code":"230382105","name":"兴凯镇"},{"code":"230382106","name":"裴德镇"},{"code":"230382107","name":"白鱼湾镇"},{"code":"230382200","name":"柳毛乡"},{"code":"230382201","name":"杨木乡"},{"code":"230382202","name":"兴凯湖乡"},{"code":"230382203","name":"承紫河乡"},{"code":"230382206","name":"二人班乡"},{"code":"230382208","name":"太平乡"},{"code":"230382210","name":"和平乡"},{"code":"230382212","name":"富源乡"},{"code":"230382400","name":"林业局"},{"code":"230382480","name":"青年水库"},{"code":"230382481","name":"煤炭工业局"},{"code":"230382482","name":"经济开发区管理委员会"},{"code":"230382501","name":"牡丹江管理局局直"},{"code":"230382502","name":"八五五农场"},{"code":"230382503","name":"八五七农场"},{"code":"230382504","name":"八五一一农场"},{"code":"230382505","name":"兴凯湖农场"},{"code":"230382506","name":"牡丹江管理局北大营管委会"},{"code":"230382507","name":"牡丹江管理局双峰农场"},{"code":"230382580","name":"水产养殖有限公司"},{"code":"230382581","name":"种畜场"},{"code":"230382582","name":"水田良种场"},{"code":"230382583","name":"市良种场"},{"code":"230382584","name":"校办企业公司"},{"code":"230382585","name":"蜂蜜山粮库有限公司"}]}]},{"code":"2304","name":"鹤岗市","children":[{"code":"230402","name":"向阳区","children":[{"code":"230402001","name":"北山街道"},{"code":"230402002","name":"红军街道"},{"code":"230402003","name":"光明街道"},{"code":"230402004","name":"胜利街道"},{"code":"230402005","name":"南翼街道"}]},{"code":"230403","name":"工农区","children":[{"code":"230403001","name":"育才街道"},{"code":"230403002","name":"红旗街道"},{"code":"230403003","name":"新南街道"},{"code":"230403004","name":"湖滨街道"},{"code":"230403005","name":"解放街道"},{"code":"230403006","name":"团结街道"}]},{"code":"230404","name":"南山区","children":[{"code":"230404001","name":"铁西街道"},{"code":"230404002","name":"铁东街道"},{"code":"230404003","name":"六号街道"},{"code":"230404004","name":"大陆街道"},{"code":"230404005","name":"富力街道"},{"code":"230404006","name":"麓林山街道"}]},{"code":"230405","name":"兴安区","children":[{"code":"230405001","name":"兴安路街道"},{"code":"230405002","name":"兴建路街道"},{"code":"230405003","name":"兴长路街道"},{"code":"230405004","name":"峻德路街道"},{"code":"230405005","name":"河东路街道"},{"code":"230405006","name":"光宇街道"},{"code":"230405100","name":"红旗镇"}]},{"code":"230406","name":"东山区","children":[{"code":"230406001","name":"工人村办街道"},{"code":"230406002","name":"新一办街道"},{"code":"230406004","name":"东山办街道"},{"code":"230406005","name":"鹤兴办街道"},{"code":"230406100","name":"新华镇"},{"code":"230406201","name":"蔬园乡"},{"code":"230406202","name":"东方红乡"},{"code":"230406400","name":"鹤岗市林业局生活区"},{"code":"230406501","name":"新华农场"}]},{"code":"230407","name":"兴山区","children":[{"code":"230407001","name":"岭北街道"},{"code":"230407002","name":"岭南街道"},{"code":"230407003","name":"沟北街道"},{"code":"230407004","name":"沟南街道"}]},{"code":"230421","name":"萝北县","children":[{"code":"230421100","name":"凤翔镇"},{"code":"230421101","name":"鹤北镇"},{"code":"230421102","name":"名山镇"},{"code":"230421103","name":"团结镇"},{"code":"230421104","name":"肇兴镇"},{"code":"230421105","name":"云山镇"},{"code":"230421200","name":"东明朝鲜族乡"},{"code":"230421203","name":"太平沟乡"},{"code":"230421400","name":"萝北县林业局"},{"code":"230421401","name":"鹤北林业局"},{"code":"230421500","name":"宝泉岭管理局局直"},{"code":"230421501","name":"江滨农场"},{"code":"230421502","name":"军川农场"},{"code":"230421503","name":"名山农场"},{"code":"230421504","name":"延军农场"},{"code":"230421505","name":"共青农场"},{"code":"230421506","name":"宝泉岭农场"},{"code":"230421580","name":"萝北县农业局"}]},{"code":"230422","name":"绥滨县","children":[{"code":"230422100","name":"绥滨镇"},{"code":"230422101","name":"绥东镇"},{"code":"230422102","name":"忠仁镇"},{"code":"230422200","name":"连生乡"},{"code":"230422201","name":"北岗乡"},{"code":"230422202","name":"富强乡"},{"code":"230422203","name":"北山乡"},{"code":"230422204","name":"福兴乡"},{"code":"230422205","name":"新富乡"},{"code":"230422400","name":"绥滨西林场"},{"code":"230422401","name":"国营中兴边防林场"},{"code":"230422480","name":"忠仁镇良种场"},{"code":"230422481","name":"绥东镇种畜场"},{"code":"230422500","name":"二九〇农场"},{"code":"230422501","name":"绥滨农场"},{"code":"230422503","name":"普阳农场"}]}]},{"code":"2305","name":"双鸭山市","children":[{"code":"230502","name":"尖山区","children":[{"code":"230502001","name":"二马路街道"},{"code":"230502002","name":"八马路街道"},{"code":"230502003","name":"中心站街道"},{"code":"230502004","name":"富安街道"},{"code":"230502006","name":"长安街道"},{"code":"230502007","name":"铁西街道"},{"code":"230502008","name":"学府街道"},{"code":"230502200","name":"安邦乡"}]},{"code":"230503","name":"岭东区","children":[{"code":"230503001","name":"中山街道"},{"code":"230503002","name":"北山街道"},{"code":"230503003","name":"南山街道"},{"code":"230503004","name":"东山街道"},{"code":"230503005","name":"中心街道"},{"code":"230503006","name":"西山街道"},{"code":"230503200","name":"长胜乡"},{"code":"230503400","name":"岭东区青山旅游公司"},{"code":"230503401","name":"岭东区岭东经营所"}]},{"code":"230505","name":"四方台区","children":[{"code":"230505001","name":"振兴中路街道"},{"code":"230505002","name":"振兴东路街道"},{"code":"230505004","name":"集贤街道"},{"code":"230505005","name":"东荣街道"},{"code":"230505101","name":"太保镇"}]},{"code":"230506","name":"宝山区","children":[{"code":"230506001","name":"红旗街道"},{"code":"230506002","name":"跃进街道"},{"code":"230506003","name":"东保卫街道"},{"code":"230506004","name":"七星街道"},{"code":"230506005","name":"双阳街道"},{"code":"230506006","name":"新安街道"},{"code":"230506007","name":"电厂街道"},{"code":"230506008","name":"农场街道"},{"code":"230506101","name":"七星镇"},{"code":"230506401","name":"双鸭山林业局宝山经营所"},{"code":"230506402","name":"双鸭山林业局大叶沟林场"}]},{"code":"230521","name":"集贤县","children":[{"code":"230521100","name":"福利镇"},{"code":"230521101","name":"集贤镇"},{"code":"230521102","name":"升昌镇"},{"code":"230521103","name":"丰乐镇"},{"code":"230521104","name":"太平镇"},{"code":"230521201","name":"腰屯乡"},{"code":"230521202","name":"兴安乡"},{"code":"230521204","name":"永安乡"},{"code":"230521401","name":"太平林场"},{"code":"230521402","name":"丰乐林场"},{"code":"230521403","name":"七星林场"},{"code":"230521404","name":"峻山林场"},{"code":"230521405","name":"爱林林场"},{"code":"230521406","name":"腰屯林场"},{"code":"230521407","name":"升平煤矿"},{"code":"230521480","name":"黑龙江省双鸭山监狱"},{"code":"230521500","name":"二九一农场"},{"code":"230521581","name":"良种场"},{"code":"230521582","name":"种畜场"},{"code":"230521583","name":"果树示范场"}]},{"code":"230522","name":"友谊县","children":[{"code":"230522100","name":"友谊镇"},{"code":"230522101","name":"兴隆镇"},{"code":"230522102","name":"龙山镇"},{"code":"230522103","name":"凤岗镇"},{"code":"230522200","name":"兴盛乡"},{"code":"230522201","name":"东建乡"},{"code":"230522202","name":"庆丰乡"},{"code":"230522203","name":"建设乡"},{"code":"230522204","name":"友邻乡"},{"code":"230522205","name":"新镇乡"},{"code":"230522206","name":"成富朝鲜族满族乡"},{"code":"230522501","name":"红兴隆管理局局直"},{"code":"230522502","name":"友谊农场"}]},{"code":"230523","name":"宝清县","children":[{"code":"230523100","name":"宝清镇"},{"code":"230523101","name":"七星泡镇"},{"code":"230523102","name":"青原镇"},{"code":"230523103","name":"夹信子镇"},{"code":"230523104","name":"龙头镇"},{"code":"230523105","name":"小城子镇"},{"code":"230523106","name":"朝阳镇"},{"code":"230523203","name":"万金山乡"},{"code":"230523204","name":"尖山子乡"},{"code":"230523209","name":"七星河乡"},{"code":"230523400","name":"双鸭山林业局上游经营所"},{"code":"230523401","name":"双鸭山林业局南瓮泉经营所"},{"code":"230523402","name":"双鸭山林业局七一林场"},{"code":"230523403","name":"双鸭山林业局七星河林场"},{"code":"230523404","name":"双鸭山林业局红旗林场"},{"code":"230523405","name":"双鸭山林业局三岔河林场"},{"code":"230523406","name":"双鸭山林业局青龙林场"},{"code":"230523407","name":"双鸭山林业局宝石经营所"},{"code":"230523408","name":"双鸭山林业局七星河金矿"},{"code":"230523409","name":"桦南林业局岚峰林场"},{"code":"230523500","name":"五九七农场"},{"code":"230523501","name":"八五二农场"},{"code":"230523502","name":"八五三农场"}]},{"code":"230524","name":"饶河县","children":[{"code":"230524100","name":"饶河镇"},{"code":"230524101","name":"小佳河镇"},{"code":"230524102","name":"西丰镇"},{"code":"230524103","name":"五林洞镇"},{"code":"230524200","name":"西林子乡"},{"code":"230524201","name":"四排乡"},{"code":"230524203","name":"大佳河乡"},{"code":"230524204","name":"山里乡"},{"code":"230524207","name":"大通河乡"},{"code":"230524400","name":"小佳河林场"},{"code":"230524401","name":"威山林场"},{"code":"230524402","name":"西丰林场"},{"code":"230524403","name":"大牙克林场"},{"code":"230524404","name":"石场林场"},{"code":"230524405","name":"宝马山林场"},{"code":"230524406","name":"大岱林场"},{"code":"230524407","name":"永幸林场"},{"code":"230524408","name":"奇源林场"},{"code":"230524409","name":"芦源林场"},{"code":"230524410","name":"五林洞林场"},{"code":"230524500","name":"饶河农场"},{"code":"230524501","name":"红旗岭农场"},{"code":"230524502","name":"八五九农场"},{"code":"230524503","name":"胜利农场"},{"code":"230524504","name":"红卫农场"}]}]},{"code":"2306","name":"大庆市","children":[{"code":"230602","name":"萨尔图区","children":[{"code":"230602013","name":"萨尔图街道"},{"code":"230602014","name":"会战街道"},{"code":"230602015","name":"友谊街道"},{"code":"230602016","name":"东安街道"},{"code":"230602017","name":"东风街道"},{"code":"230602018","name":"铁人街道"},{"code":"230602019","name":"火炬街道"},{"code":"230602020","name":"拥军街道"},{"code":"230602021","name":"万宝街道"},{"code":"230602022","name":"格林街道"},{"code":"230602023","name":"绿园街道"}]},{"code":"230603","name":"龙凤区","children":[{"code":"230603011","name":"兴化街道"},{"code":"230603012","name":"卧里屯街道"},{"code":"230603013","name":"东光街道"},{"code":"230603014","name":"龙凤街道"},{"code":"230603015","name":"三永街道"},{"code":"230603016","name":"龙政街道"},{"code":"230603017","name":"湿地街道"},{"code":"230603100","name":"龙凤镇"}]},{"code":"230604","name":"让胡路区","children":[{"code":"230604001","name":"龙岗街道"},{"code":"230604002","name":"银浪街道"},{"code":"230604004","name":"奋斗街道"},{"code":"230604005","name":"庆新街道"},{"code":"230604007","name":"西宾街道"},{"code":"230604009","name":"乘风街道"},{"code":"230604010","name":"旭园街道"},{"code":"230604011","name":"北湖街道"},{"code":"230604012","name":"怡园街道"},{"code":"230604013","name":"东湖街道"},{"code":"230604014","name":"创业城街道"},{"code":"230604101","name":"喇嘛甸镇"}]},{"code":"230605","name":"红岗区","children":[{"code":"230605008","name":"杏南街道"},{"code":"230605009","name":"创业街道"},{"code":"230605010","name":"红岗街道"},{"code":"230605011","name":"八百垧街道"},{"code":"230605012","name":"银河街道"},{"code":"230605013","name":"解放街道"},{"code":"230605100","name":"杏树岗镇"},{"code":"230605480","name":"黑龙江红岗经济开发区"}]},{"code":"230606","name":"大同区","children":[{"code":"230606007","name":"和平街道"},{"code":"230606008","name":"庆葡街道"},{"code":"230606009","name":"新华街道"},{"code":"230606010","name":"高平街道"},{"code":"230606011","name":"林源街道"},{"code":"230606012","name":"和苑街道"},{"code":"230606013","name":"同福街道"},{"code":"230606100","name":"大同镇"},{"code":"230606101","name":"高台子镇"},{"code":"230606102","name":"太阳升镇"},{"code":"230606103","name":"林源镇"},{"code":"230606200","name":"祝三乡"},{"code":"230606203","name":"老山头乡"},{"code":"230606205","name":"八井子乡"},{"code":"230606206","name":"双榆树乡"}]},{"code":"230621","name":"肇州县","children":[{"code":"230621100","name":"肇州镇"},{"code":"230621101","name":"永乐镇"},{"code":"230621102","name":"丰乐镇"},{"code":"230621103","name":"朝阳沟镇"},{"code":"230621104","name":"兴城镇"},{"code":"230621105","name":"二井镇"},{"code":"230621202","name":"双发乡"},{"code":"230621203","name":"托古乡"},{"code":"230621205","name":"朝阳乡"},{"code":"230621206","name":"永胜乡"},{"code":"230621208","name":"榆树乡"},{"code":"230621211","name":"新福乡"},{"code":"230621580","name":"乐园良种场"},{"code":"230621581","name":"卫星种畜场"}]},{"code":"230622","name":"肇源县","children":[{"code":"230622100","name":"肇源镇"},{"code":"230622101","name":"三站镇"},{"code":"230622102","name":"二站镇"},{"code":"230622103","name":"茂兴镇"},{"code":"230622104","name":"古龙镇"},{"code":"230622105","name":"新站镇"},{"code":"230622106","name":"头台镇"},{"code":"230622107","name":"古恰镇"},{"code":"230622200","name":"福兴乡"},{"code":"230622201","name":"薄荷台乡"},{"code":"230622203","name":"和平乡"},{"code":"230622207","name":"超等乡"},{"code":"230622208","name":"民意乡"},{"code":"230622210","name":"义顺乡"},{"code":"230622211","name":"浩德乡"},{"code":"230622212","name":"大兴乡"},{"code":"230622500","name":"肇源农场"},{"code":"230622581","name":"种畜场"},{"code":"230622583","name":"新立良种繁育场"},{"code":"230622584","name":"立陡山良种场"},{"code":"230622586","name":"果树示范场"},{"code":"230622587","name":"经济作物示范场"},{"code":"230622588","name":"茂兴湖水产养殖场"}]},{"code":"230623","name":"林甸县","children":[{"code":"230623100","name":"林甸镇"},{"code":"230623101","name":"红旗镇"},{"code":"230623102","name":"花园镇"},{"code":"230623103","name":"四季青镇"},{"code":"230623104","name":"鹤鸣湖镇"},{"code":"230623200","name":"东兴乡"},{"code":"230623201","name":"宏伟乡"},{"code":"230623204","name":"四合乡"},{"code":"230623400","name":"林甸县长青林场"},{"code":"230623500","name":"巨浪牧场"},{"code":"230623580","name":"国营苇场"},{"code":"230623581","name":"新兴畜牧场"}]},{"code":"230624","name":"杜尔伯特蒙古族自治县","children":[{"code":"230624100","name":"杜尔伯特镇"},{"code":"230624101","name":"胡吉吐莫镇"},{"code":"230624102","name":"烟筒屯镇"},{"code":"230624103","name":"他拉哈镇"},{"code":"230624104","name":"连环湖镇"},{"code":"230624200","name":"一心乡"},{"code":"230624201","name":"克尔台乡"},{"code":"230624203","name":"敖林西伯乡"},{"code":"230624204","name":"巴彦查干乡"},{"code":"230624205","name":"腰新乡"},{"code":"230624206","name":"江湾乡"},{"code":"230624500","name":"绿色草原牧场"},{"code":"230624501","name":"大山种羊场"}]},{"code":"230671","name":"大庆高新技术产业开发区","children":[{"code":"230671010","name":"开发区黎明街道"},{"code":"230671580","name":"高新区农场"}]}]},{"code":"2307","name":"伊春市","children":[{"code":"230717","name":"伊美区","children":[{"code":"230717001","name":"朝阳街道"},{"code":"230717002","name":"前进街道"},{"code":"230717003","name":"红升街道"},{"code":"230717004","name":"旭日街道"},{"code":"230717005","name":"新欣街道"},{"code":"230717006","name":"南郡街道"},{"code":"230717100","name":"东升镇"},{"code":"230717101","name":"美溪镇"}]},{"code":"230718","name":"乌翠区","children":[{"code":"230718001","name":"乌马河街道"},{"code":"230718002","name":"锦山街道"},{"code":"230718003","name":"曙光街道"},{"code":"230718004","name":"向阳街道"}]},{"code":"230719","name":"友好区","children":[{"code":"230719001","name":"双子河街道"},{"code":"230719002","name":"铁林街道"},{"code":"230719003","name":"友好街道"},{"code":"230719100","name":"上甘岭镇"}]},{"code":"230722","name":"嘉荫县","children":[{"code":"230722100","name":"朝阳镇"},{"code":"230722101","name":"乌云镇"},{"code":"230722102","name":"乌拉嘎镇"},{"code":"230722103","name":"保兴镇"},{"code":"230722200","name":"常胜乡"},{"code":"230722201","name":"向阳乡"},{"code":"230722202","name":"沪嘉乡"},{"code":"230722203","name":"红光乡"},{"code":"230722205","name":"青山乡"},{"code":"230722400","name":"太平林场"},{"code":"230722402","name":"清河林场"},{"code":"230722404","name":"马连林场"}]},{"code":"230723","name":"汤旺县","children":[{"code":"230723100","name":"乌伊岭镇"},{"code":"230723101","name":"汤旺河镇"}]},{"code":"230724","name":"丰林县","children":[{"code":"230724100","name":"新青镇"},{"code":"230724101","name":"红星镇"},{"code":"230724102","name":"五营镇"}]},{"code":"230725","name":"大箐山县","children":[{"code":"230725100","name":"带岭镇"},{"code":"230725101","name":"朗乡镇"}]},{"code":"230726","name":"南岔县","children":[{"code":"230726100","name":"南岔镇"},{"code":"230726101","name":"晨明镇"},{"code":"230726102","name":"浩良河镇"},{"code":"230726200","name":"迎春乡"}]},{"code":"230751","name":"金林区","children":[{"code":"230751100","name":"西林镇"},{"code":"230751101","name":"金山屯镇"}]},{"code":"230781","name":"铁力市","children":[{"code":"230781100","name":"铁力镇"},{"code":"230781101","name":"双丰镇"},{"code":"230781102","name":"桃山镇"},{"code":"230781105","name":"神树镇"},{"code":"230781106","name":"日月峡镇"},{"code":"230781200","name":"年丰朝鲜族乡"},{"code":"230781201","name":"工农乡"},{"code":"230781202","name":"王杨乡"},{"code":"230781400","name":"铁力林业局"},{"code":"230781401","name":"双丰林业局"},{"code":"230781402","name":"桃山林业局"}]}]},{"code":"2308","name":"佳木斯市","children":[{"code":"230803","name":"向阳区","children":[{"code":"230803007","name":"西林街道"},{"code":"230803008","name":"建设街道"},{"code":"230803009","name":"长安街道"},{"code":"230803010","name":"学府街道"},{"code":"230803011","name":"桥南街道"},{"code":"230803198","name":"向阳区直辖村级区划"}]},{"code":"230804","name":"前进区","children":[{"code":"230804007","name":"永安街道"},{"code":"230804008","name":"港湾街道"},{"code":"230804009","name":"和平街道"},{"code":"230804010","name":"山水街道"},{"code":"230804579","name":"前进区农垦"}]},{"code":"230805","name":"东风区","children":[{"code":"230805007","name":"晓云街道"},{"code":"230805008","name":"佳东街道"},{"code":"230805009","name":"建国街道"},{"code":"230805010","name":"佳南街道"},{"code":"230805100","name":"建国镇"},{"code":"230805200","name":"松江乡"}]},{"code":"230811","name":"郊区","children":[{"code":"230811008","name":"云环街道"},{"code":"230811009","name":"英俊街道"},{"code":"230811010","name":"红旗街道"},{"code":"230811011","name":"友谊街道"},{"code":"230811101","name":"大来镇"},{"code":"230811102","name":"敖其镇"},{"code":"230811103","name":"望江镇"},{"code":"230811104","name":"长发镇"},{"code":"230811105","name":"莲江口镇"},{"code":"230811106","name":"西格木镇"},{"code":"230811107","name":"沿江镇"},{"code":"230811108","name":"四丰镇"},{"code":"230811200","name":"长青乡"},{"code":"230811208","name":"平安乡"},{"code":"230811211","name":"群胜乡"},{"code":"230811480","name":"莲江口监狱"},{"code":"230811579","name":"郊区农垦"}]},{"code":"230822","name":"桦南县","children":[{"code":"230822103","name":"驼腰子镇"},{"code":"230822104","name":"石头河子镇"},{"code":"230822106","name":"桦南镇"},{"code":"230822107","name":"土龙山镇"},{"code":"230822108","name":"孟家岗镇"},{"code":"230822109","name":"闫家镇"},{"code":"230822110","name":"柳毛河镇"},{"code":"230822205","name":"金沙乡"},{"code":"230822213","name":"梨树乡"},{"code":"230822214","name":"明义乡"},{"code":"230822215","name":"大八浪乡"},{"code":"230822216","name":"五道岗乡"},{"code":"230822400","name":"桦南林业局"},{"code":"230822480","name":"黑龙江桦南经济开发区"},{"code":"230822500","name":"曙光农场"},{"code":"230822580","name":"桦南种畜场"}]},{"code":"230826","name":"桦川县","children":[{"code":"230826101","name":"横头山镇"},{"code":"230826103","name":"苏家店镇"},{"code":"230826104","name":"悦来镇"},{"code":"230826105","name":"新城镇"},{"code":"230826106","name":"四马架镇"},{"code":"230826201","name":"东河乡"},{"code":"230826202","name":"梨丰乡"},{"code":"230826205","name":"创业乡"},{"code":"230826207","name":"星火乡"},{"code":"230826500","name":"江川农场"},{"code":"230826501","name":"宝山农场"}]},{"code":"230828","name":"汤原县","children":[{"code":"230828101","name":"香兰镇"},{"code":"230828102","name":"鹤立镇"},{"code":"230828103","name":"竹帘镇"},{"code":"230828104","name":"汤原镇"},{"code":"230828201","name":"汤旺乡"},{"code":"230828203","name":"胜利乡"},{"code":"230828208","name":"吉祥乡"},{"code":"230828209","name":"振兴乡"},{"code":"230828210","name":"太平川乡"},{"code":"230828211","name":"永发乡"},{"code":"230828400","name":"鹤立林业局"},{"code":"230828480","name":"香兰监狱"},{"code":"230828500","name":"汤原农场"},{"code":"230828501","name":"梧桐河农场"}]},{"code":"230881","name":"同江市","children":[{"code":"230881001","name":"繁荣街道"},{"code":"230881002","name":"兴华街道"},{"code":"230881100","name":"同江镇"},{"code":"230881101","name":"乐业镇"},{"code":"230881102","name":"三村镇"},{"code":"230881103","name":"临江镇"},{"code":"230881104","name":"向阳镇"},{"code":"230881105","name":"青河镇"},{"code":"230881204","name":"街津口乡"},{"code":"230881205","name":"八岔乡"},{"code":"230881206","name":"金川乡"},{"code":"230881207","name":"银川乡"},{"code":"230881400","name":"街津口林场"},{"code":"230881401","name":"鸭北林场"},{"code":"230881500","name":"勤得利农场"},{"code":"230881501","name":"青龙山农场"},{"code":"230881502","name":"前进农场"},{"code":"230881503","name":"洪河农场"},{"code":"230881504","name":"鸭绿河农场"},{"code":"230881505","name":"浓江农场"},{"code":"230881580","name":"良种场"},{"code":"230881581","name":"畜牧场"},{"code":"230881582","name":"知青农场"}]},{"code":"230882","name":"富锦市","children":[{"code":"230882001","name":"城东街道"},{"code":"230882003","name":"城西街道"},{"code":"230882102","name":"富锦镇"},{"code":"230882103","name":"长安镇"},{"code":"230882106","name":"砚山镇"},{"code":"230882107","name":"头林镇"},{"code":"230882108","name":"兴隆岗镇"},{"code":"230882109","name":"宏胜镇"},{"code":"230882110","name":"向阳川镇"},{"code":"230882111","name":"二龙山镇"},{"code":"230882112","name":"上街基镇"},{"code":"230882113","name":"锦山镇"},{"code":"230882114","name":"大榆树镇"},{"code":"230882400","name":"石砬山林场"},{"code":"230882401","name":"东风岗林场"},{"code":"230882402","name":"太东林场"},{"code":"230882403","name":"工农林场"},{"code":"230882404","name":"富锦市国营原种场"},{"code":"230882405","name":"富锦市国营果树示范场"},{"code":"230882406","name":"富锦市科研所"},{"code":"230882407","name":"工业园区"},{"code":"230882500","name":"建三江管理局局直"},{"code":"230882501","name":"七星农场"},{"code":"230882502","name":"大兴农场"},{"code":"230882503","name":"创业农场"},{"code":"230882580","name":"种猪场"},{"code":"230882581","name":"种畜场"}]},{"code":"230883","name":"抚远市","children":[{"code":"230883100","name":"抚远镇"},{"code":"230883101","name":"寒葱沟镇"},{"code":"230883102","name":"浓桥镇"},{"code":"230883103","name":"乌苏镇"},{"code":"230883104","name":"黑瞎子岛镇"},{"code":"230883105","name":"通江镇"},{"code":"230883106","name":"海青镇"},{"code":"230883201","name":"浓江乡"},{"code":"230883203","name":"别拉洪乡"},{"code":"230883204","name":"鸭南乡"},{"code":"230883500","name":"前哨农场"},{"code":"230883501","name":"前锋农场"},{"code":"230883502","name":"二道河农场"}]}]},{"code":"2309","name":"七台河市","children":[{"code":"230902","name":"新兴区","children":[{"code":"230902031","name":"兴安街道"},{"code":"230902032","name":"兴富街道"},{"code":"230902033","name":"兴和街道"},{"code":"230902034","name":"兴盛街道"},{"code":"230902035","name":"欣源街道"},{"code":"230902036","name":"北山街道"},{"code":"230902037","name":"兴华街道"},{"code":"230902038","name":"金沙街道"},{"code":"230902100","name":"红旗镇"},{"code":"230902200","name":"长兴乡"},{"code":"230902400","name":"七台河经济开发区管理委员会"},{"code":"230902480","name":"金沙农场"}]},{"code":"230903","name":"桃山区","children":[{"code":"230903011","name":"桃东街道"},{"code":"230903012","name":"桃南街道"},{"code":"230903013","name":"桃西街道"},{"code":"230903014","name":"桃北街道"},{"code":"230903015","name":"桃源街道"},{"code":"230903016","name":"桃山街道"},{"code":"230903100","name":"万宝河镇"}]},{"code":"230904","name":"茄子河区","children":[{"code":"230904001","name":"东风街道"},{"code":"230904003","name":"富强街道"},{"code":"230904005","name":"龙湖街道"},{"code":"230904006","name":"东胜街道"},{"code":"230904007","name":"湖东街道"},{"code":"230904008","name":"通达街道"},{"code":"230904100","name":"茄子河镇"},{"code":"230904101","name":"宏伟镇"},{"code":"230904200","name":"铁山乡"},{"code":"230904201","name":"中心河乡"},{"code":"230904500","name":"北兴农场"},{"code":"230904579","name":"黑龙江红兴隆农垦宝利采金"}]},{"code":"230921","name":"勃利县","children":[{"code":"230921001","name":"新起街道"},{"code":"230921002","name":"新华街道"},{"code":"230921003","name":"元明街道"},{"code":"230921004","name":"铁西街道"},{"code":"230921005","name":"城西街道"},{"code":"230921100","name":"勃利镇"},{"code":"230921101","name":"小五站镇"},{"code":"230921102","name":"大四站镇"},{"code":"230921103","name":"双河镇"},{"code":"230921104","name":"倭肯镇"},{"code":"230921200","name":"青山乡"},{"code":"230921202","name":"永恒乡"},{"code":"230921203","name":"抢垦乡"},{"code":"230921204","name":"杏树朝鲜族乡"},{"code":"230921205","name":"吉兴朝鲜族满族乡"}]}]},{"code":"2310","name":"牡丹江市","children":[{"code":"231002","name":"东安区","children":[{"code":"231002001","name":"新安街道"},{"code":"231002002","name":"长安街道"},{"code":"231002003","name":"七星街道"},{"code":"231002004","name":"五星街道"},{"code":"231002008","name":"东兴街道"},{"code":"231002009","name":"振兴街道"},{"code":"231002101","name":"兴隆镇"}]},{"code":"231003","name":"阳明区","children":[{"code":"231003001","name":"阳明街道"},{"code":"231003002","name":"前进街道"},{"code":"231003003","name":"新兴街道"},{"code":"231003004","name":"桦林橡胶厂街道"},{"code":"231003100","name":"铁岭镇"},{"code":"231003101","name":"桦林镇"},{"code":"231003102","name":"磨刀石镇"},{"code":"231003103","name":"五林镇"}]},{"code":"231004","name":"爱民区","children":[{"code":"231004001","name":"向阳街道"},{"code":"231004002","name":"黄花街道"},{"code":"231004003","name":"铁北街道"},{"code":"231004004","name":"新华街道"},{"code":"231004005","name":"大庆街道"},{"code":"231004006","name":"兴平街道"},{"code":"231004007","name":"北山街道"},{"code":"231004100","name":"三道关镇"}]},{"code":"231005","name":"西安区","children":[{"code":"231005001","name":"先锋街道"},{"code":"231005002","name":"火炬街道"},{"code":"231005003","name":"立新街道"},{"code":"231005004","name":"牡丹街道"},{"code":"231005005","name":"江滨街道"},{"code":"231005006","name":"沿江街道"},{"code":"231005100","name":"温春镇"},{"code":"231005201","name":"海南朝鲜族乡"}]},{"code":"231025","name":"林口县","children":[{"code":"231025100","name":"林口镇"},{"code":"231025101","name":"古城镇"},{"code":"231025102","name":"刁翎镇"},{"code":"231025104","name":"朱家镇"},{"code":"231025105","name":"柳树镇"},{"code":"231025106","name":"三道通镇"},{"code":"231025107","name":"龙爪镇"},{"code":"231025108","name":"莲花镇"},{"code":"231025110","name":"青山镇"},{"code":"231025111","name":"建堂镇"},{"code":"231025112","name":"奎山镇"},{"code":"231025400","name":"林口林业局"}]},{"code":"231071","name":"牡丹江经济技术开发区","children":[{"code":"231071002","name":"牡丹江经开区城乡街道"}]},{"code":"231081","name":"绥芬河市","children":[{"code":"231081100","name":"绥芬河镇"},{"code":"231081101","name":"阜宁镇"}]},{"code":"231083","name":"海林市","children":[{"code":"231083100","name":"海林镇"},{"code":"231083101","name":"长汀镇"},{"code":"231083102","name":"横道镇"},{"code":"231083103","name":"山市镇"},{"code":"231083104","name":"柴河镇"},{"code":"231083105","name":"二道镇"},{"code":"231083106","name":"新安朝鲜族镇"},{"code":"231083107","name":"三道镇"},{"code":"231083400","name":"牡林工程公司街道"},{"code":"231083401","name":"柴河林机厂街道"},{"code":"231083402","name":"大海林林业局"},{"code":"231083403","name":"海林林业局"},{"code":"231083404","name":"柴河林业局"},{"code":"231083500","name":"海林农场"},{"code":"231083501","name":"山市种奶牛场"}]},{"code":"231084","name":"宁安市","children":[{"code":"231084001","name":"城区街道"},{"code":"231084100","name":"宁安镇"},{"code":"231084101","name":"东京城镇"},{"code":"231084102","name":"渤海镇"},{"code":"231084103","name":"石岩镇"},{"code":"231084104","name":"沙兰镇"},{"code":"231084105","name":"海浪镇"},{"code":"231084106","name":"兰岗镇"},{"code":"231084107","name":"镜泊镇"},{"code":"231084202","name":"江南朝鲜族满族乡"},{"code":"231084206","name":"卧龙朝鲜族乡"},{"code":"231084208","name":"马河乡"},{"code":"231084211","name":"三陵乡"},{"code":"231084400","name":"东京城林业局"},{"code":"231084500","name":"宁安农场"}]},{"code":"231085","name":"穆棱市","children":[{"code":"231085100","name":"八面通镇"},{"code":"231085101","name":"穆棱镇"},{"code":"231085102","name":"下城子镇"},{"code":"231085103","name":"马桥河镇"},{"code":"231085104","name":"兴源镇"},{"code":"231085105","name":"河西镇"},{"code":"231085200","name":"福录乡"},{"code":"231085202","name":"共和乡"},{"code":"231085400","name":"八面通林业局"},{"code":"231085401","name":"穆棱林业局"}]},{"code":"231086","name":"东宁市","children":[{"code":"231086100","name":"东宁镇"},{"code":"231086101","name":"三岔口镇"},{"code":"231086102","name":"大肚川镇"},{"code":"231086103","name":"老黑山镇"},{"code":"231086104","name":"道河镇"},{"code":"231086105","name":"绥阳镇"},{"code":"231086400","name":"绥阳林业局"}]}]},{"code":"2311","name":"黑河市","children":[{"code":"231102","name":"爱辉区","children":[{"code":"231102001","name":"花园街道"},{"code":"231102002","name":"兴安街道"},{"code":"231102003","name":"海兰街道"},{"code":"231102004","name":"西兴街道"},{"code":"231102101","name":"西岗子镇"},{"code":"231102102","name":"瑷珲镇"},{"code":"231102103","name":"罕达汽镇"},{"code":"231102104","name":"上马厂镇"},{"code":"231102200","name":"幸福乡"},{"code":"231102201","name":"四嘉子乡"},{"code":"231102202","name":"坤河乡"},{"code":"231102204","name":"张地营子乡"},{"code":"231102205","name":"西峰山乡"},{"code":"231102206","name":"新生乡"},{"code":"231102207","name":"二站乡"},{"code":"231102407","name":"大平林场"},{"code":"231102408","name":"七二七林场"},{"code":"231102409","name":"望峰林场"},{"code":"231102410","name":"卡伦山林场"},{"code":"231102411","name":"胜山林场"},{"code":"231102412","name":"二站林场"},{"code":"231102413","name":"三站林场"},{"code":"231102414","name":"大岭林场"},{"code":"231102415","name":"桦皮窑林场"},{"code":"231102416","name":"滨南林场"},{"code":"231102417","name":"江防林场"},{"code":"231102418","name":"河南屯林场"},{"code":"231102421","name":"西岗子试验林场"},{"code":"231102425","name":"大新屯储木场"},{"code":"231102480","name":"宋集屯煤矿"},{"code":"231102481","name":"西岗子煤矿"},{"code":"231102482","name":"东方红煤矿"},{"code":"231102500","name":"锦河农场"},{"code":"231102501","name":"红色边疆农场"},{"code":"231102580","name":"奶牛场"},{"code":"231102581","name":"种畜场"},{"code":"231102582","name":"第二良种场"},{"code":"231102583","name":"第一良种场"}]},{"code":"231123","name":"逊克县","children":[{"code":"231123100","name":"奇克镇"},{"code":"231123101","name":"逊河镇"},{"code":"231123103","name":"克林镇"},{"code":"231123201","name":"干岔子乡"},{"code":"231123202","name":"松树沟乡"},{"code":"231123203","name":"车陆乡"},{"code":"231123204","name":"新鄂乡"},{"code":"231123205","name":"新兴乡"},{"code":"231123207","name":"宝山乡"},{"code":"231123402","name":"道干林场"},{"code":"231123403","name":"干岔子林场"},{"code":"231123404","name":"新立林场"},{"code":"231123405","name":"三间房林场"},{"code":"231123406","name":"良种场"},{"code":"231123407","name":"种畜场"},{"code":"231123500","name":"逊克农场"}]},{"code":"231124","name":"孙吴县","children":[{"code":"231124100","name":"孙吴镇"},{"code":"231124101","name":"辰清镇"},{"code":"231124201","name":"西兴乡"},{"code":"231124202","name":"沿江满族乡"},{"code":"231124203","name":"腰屯乡"},{"code":"231124204","name":"卧牛河乡"},{"code":"231124205","name":"群山乡"},{"code":"231124206","name":"奋斗乡"},{"code":"231124207","name":"红旗乡"},{"code":"231124208","name":"正阳山乡"},{"code":"231124210","name":"清溪乡"},{"code":"231124402","name":"前进林场"},{"code":"231124403","name":"大河口林场"},{"code":"231124404","name":"正阳林场"},{"code":"231124405","name":"平山林场"},{"code":"231124406","name":"沿江林场"},{"code":"231124407","name":"辰清林场"},{"code":"231124408","name":"红旗林场"},{"code":"231124409","name":"向阳林场"},{"code":"231124410","name":"良种场"},{"code":"231124411","name":"种畜场"}]},{"code":"231181","name":"北安市","children":[{"code":"231181001","name":"兆麟街道地区"},{"code":"231181002","name":"和平街道地区"},{"code":"231181003","name":"北岗街道地区"},{"code":"231181004","name":"庆华街道地区"},{"code":"231181005","name":"铁西街道地区"},{"code":"231181006","name":"铁南街道地区"},{"code":"231181101","name":"通北镇"},{"code":"231181102","name":"赵光镇"},{"code":"231181103","name":"海星镇"},{"code":"231181104","name":"石泉镇"},{"code":"231181105","name":"二井镇"},{"code":"231181200","name":"城郊乡"},{"code":"231181201","name":"东胜乡"},{"code":"231181203","name":"杨家乡"},{"code":"231181207","name":"主星乡"},{"code":"231181400","name":"通北林业局"},{"code":"231181500","name":"北安管理局局直"},{"code":"231181501","name":"长水河农场"},{"code":"231181502","name":"赵光农场"},{"code":"231181503","name":"红星农场"},{"code":"231181504","name":"建设农场"}]},{"code":"231182","name":"五大连池市","children":[{"code":"231182001","name":"青山街道"},{"code":"231182101","name":"龙镇"},{"code":"231182102","name":"和平镇"},{"code":"231182103","name":"五大连池镇"},{"code":"231182104","name":"双泉镇"},{"code":"231182105","name":"新发镇"},{"code":"231182106","name":"团结镇"},{"code":"231182107","name":"兴隆镇"},{"code":"231182108","name":"朝阳山镇"},{"code":"231182203","name":"建设乡"},{"code":"231182205","name":"太平乡"},{"code":"231182208","name":"兴安乡"},{"code":"231182406","name":"元青山林场"},{"code":"231182407","name":"三九六林场"},{"code":"231182408","name":"小兴安林场"},{"code":"231182409","name":"二龙山林场"},{"code":"231182410","name":"朝阳林场"},{"code":"231182411","name":"引龙河林场"},{"code":"231182412","name":"焦得布林场"},{"code":"231182414","name":"小孤山林场"},{"code":"231182415","name":"药泉林场"},{"code":"231182417","name":"沾河林业局"},{"code":"231182418","name":"莲花管理委员会"},{"code":"231182427","name":"二龙山蚕种场"},{"code":"231182429","name":"畜牧场"},{"code":"231182430","name":"第二良种场"},{"code":"231182480","name":"花园劳教所"},{"code":"231182481","name":"永丰监狱"},{"code":"231182482","name":"华山监狱"},{"code":"231182483","name":"凤凰山监狱"},{"code":"231182501","name":"龙门农场"},{"code":"231182502","name":"襄河农场"},{"code":"231182503","name":"龙镇农场"},{"code":"231182504","name":"二龙山农场"},{"code":"231182505","name":"引龙河农场"},{"code":"231182506","name":"尾山农场"},{"code":"231182507","name":"格球山农场"},{"code":"231182508","name":"五大连池农场"}]},{"code":"231183","name":"嫩江市","children":[{"code":"231183100","name":"嫩江镇"},{"code":"231183101","name":"伊拉哈镇"},{"code":"231183102","name":"双山镇"},{"code":"231183103","name":"多宝山镇"},{"code":"231183104","name":"海江镇"},{"code":"231183105","name":"前进镇"},{"code":"231183106","name":"长福镇"},{"code":"231183107","name":"科洛镇"},{"code":"231183108","name":"霍龙门镇"},{"code":"231183202","name":"临江乡"},{"code":"231183206","name":"联兴乡"},{"code":"231183207","name":"白云乡"},{"code":"231183208","name":"塔溪乡"},{"code":"231183211","name":"长江乡"},{"code":"231183400","name":"多宝山铜矿"},{"code":"231183500","name":"九三管理局局直"},{"code":"231183501","name":"鹤山农场"},{"code":"231183502","name":"大西江农场"},{"code":"231183503","name":"尖山农场"},{"code":"231183504","name":"荣军农场"},{"code":"231183506","name":"七星泡农场"},{"code":"231183507","name":"嫩江农场"},{"code":"231183508","name":"山河农场"},{"code":"231183509","name":"嫩北农场"},{"code":"231183510","name":"建边农场"},{"code":"231183581","name":"马铃薯原种繁殖场"}]}]},{"code":"2312","name":"绥化市","children":[{"code":"231202","name":"北林区","children":[{"code":"231202001","name":"紫来街道"},{"code":"231202002","name":"爱路街道"},{"code":"231202003","name":"大有街道"},{"code":"231202004","name":"吉泰街道"},{"code":"231202005","name":"东兴街道"},{"code":"231202006","name":"北林街道"},{"code":"231202007","name":"朝旭街道"},{"code":"231202008","name":"春雷街道"},{"code":"231202009","name":"北辰街道"},{"code":"231202010","name":"康庄街道"},{"code":"231202011","name":"先锋街道"},{"code":"231202012","name":"东城街道"},{"code":"231202101","name":"宝山镇"},{"code":"231202102","name":"绥胜满族镇"},{"code":"231202103","name":"西长发镇"},{"code":"231202104","name":"永安满族镇"},{"code":"231202105","name":"太平川镇"},{"code":"231202106","name":"秦家镇"},{"code":"231202107","name":"双河镇"},{"code":"231202108","name":"三河镇"},{"code":"231202109","name":"四方台镇"},{"code":"231202110","name":"津河镇"},{"code":"231202111","name":"张维镇"},{"code":"231202113","name":"东津镇"},{"code":"231202114","name":"东富镇"},{"code":"231202115","name":"兴福镇"},{"code":"231202116","name":"三井镇"},{"code":"231202201","name":"红旗满族乡"},{"code":"231202202","name":"连岗乡"},{"code":"231202203","name":"新华乡"},{"code":"231202212","name":"五营乡"},{"code":"231202213","name":"兴和朝鲜族乡"},{"code":"231202579","name":"绥化局直"}]},{"code":"231221","name":"望奎县","children":[{"code":"231221001","name":"东风街道"},{"code":"231221002","name":"前进街道"},{"code":"231221003","name":"东胜街道"},{"code":"231221004","name":"兴安街道"},{"code":"231221100","name":"望奎镇"},{"code":"231221101","name":"通江镇"},{"code":"231221102","name":"卫星镇"},{"code":"231221103","name":"海丰镇"},{"code":"231221104","name":"莲花镇"},{"code":"231221105","name":"惠七满族镇"},{"code":"231221106","name":"先锋镇"},{"code":"231221107","name":"火箭镇"},{"code":"231221108","name":"东郊镇"},{"code":"231221109","name":"灯塔镇"},{"code":"231221202","name":"灵山满族乡"},{"code":"231221203","name":"后三乡"},{"code":"231221209","name":"东升乡"},{"code":"231221210","name":"恭六乡"},{"code":"231221211","name":"厢白满族乡"},{"code":"231221400","name":"白四林场"},{"code":"231221580","name":"种畜场"},{"code":"231221581","name":"第一良种场"},{"code":"231221582","name":"第二良种场"}]},{"code":"231222","name":"兰西县","children":[{"code":"231222001","name":"颜河街道"},{"code":"231222002","name":"顺达街道"},{"code":"231222003","name":"兰亚街道"},{"code":"231222004","name":"正阳街道"},{"code":"231222101","name":"兰西镇"},{"code":"231222102","name":"榆林镇"},{"code":"231222103","name":"临江镇"},{"code":"231222104","name":"平山镇"},{"code":"231222105","name":"红光镇"},{"code":"231222106","name":"远大镇"},{"code":"231222107","name":"康荣镇"},{"code":"231222108","name":"燎原镇"},{"code":"231222109","name":"奋斗镇"},{"code":"231222202","name":"北安乡"},{"code":"231222203","name":"长江乡"},{"code":"231222204","name":"兰河乡"},{"code":"231222205","name":"红星乡"},{"code":"231222207","name":"长岗乡"},{"code":"231222210","name":"星火乡"},{"code":"231222580","name":"第一原种场"},{"code":"231222581","name":"第二原种场"},{"code":"231222582","name":"兰西县畜牧技术推广服务中心"}]},{"code":"231223","name":"青冈县","children":[{"code":"231223001","name":"北城街道"},{"code":"231223002","name":"西城街道"},{"code":"231223003","name":"靖城街道"},{"code":"231223004","name":"东城街道"},{"code":"231223100","name":"青冈镇"},{"code":"231223101","name":"中和镇"},{"code":"231223102","name":"祯祥镇"},{"code":"231223103","name":"兴华镇"},{"code":"231223104","name":"永丰镇"},{"code":"231223105","name":"芦河镇"},{"code":"231223106","name":"民政镇"},{"code":"231223107","name":"柞岗镇"},{"code":"231223108","name":"劳动镇"},{"code":"231223109","name":"迎春镇"},{"code":"231223110","name":"德胜镇"},{"code":"231223111","name":"昌盛镇"},{"code":"231223202","name":"建设乡"},{"code":"231223203","name":"新村乡"},{"code":"231223212","name":"连丰乡"},{"code":"231223400","name":"青冈县林场"},{"code":"231223401","name":"青冈县互利营林站"},{"code":"231223402","name":"青冈县果树场"},{"code":"231223580","name":"青冈县种马场"},{"code":"231223581","name":"青冈县种羊场"},{"code":"231223582","name":"青冈县原种场"}]},{"code":"231224","name":"庆安县","children":[{"code":"231224001","name":"吉康街道"},{"code":"231224002","name":"庆瑞街道"},{"code":"231224003","name":"平顺街道"},{"code":"231224004","name":"安泰街道"},{"code":"231224101","name":"庆安镇"},{"code":"231224102","name":"民乐镇"},{"code":"231224103","name":"大罗镇"},{"code":"231224104","name":"平安镇"},{"code":"231224105","name":"勤劳镇"},{"code":"231224106","name":"久胜镇"},{"code":"231224107","name":"同乐镇"},{"code":"231224108","name":"柳河镇"},{"code":"231224201","name":"建民乡"},{"code":"231224202","name":"巨宝山乡"},{"code":"231224206","name":"丰收乡"},{"code":"231224208","name":"发展乡"},{"code":"231224210","name":"致富乡"},{"code":"231224211","name":"欢胜乡"},{"code":"231224400","name":"国有林场管理局"},{"code":"231224500","name":"柳河农场"}]},{"code":"231225","name":"明水县","children":[{"code":"231225001","name":"明阳街道"},{"code":"231225002","name":"明源街道"},{"code":"231225003","name":"明新街道"},{"code":"231225004","name":"明泉街道"},{"code":"231225100","name":"明水镇"},{"code":"231225101","name":"兴仁镇"},{"code":"231225102","name":"永兴镇"},{"code":"231225103","name":"崇德镇"},{"code":"231225104","name":"通达镇"},{"code":"231225106","name":"双兴镇"},{"code":"231225203","name":"永久乡"},{"code":"231225204","name":"树人乡"},{"code":"231225205","name":"光荣乡"},{"code":"231225206","name":"繁荣乡"},{"code":"231225207","name":"通泉乡"},{"code":"231225208","name":"育林乡"},{"code":"231225400","name":"国营林场"},{"code":"231225580","name":"县联社马场"},{"code":"231225581","name":"明水种畜场"},{"code":"231225582","name":"育林畜牧场"},{"code":"231225583","name":"国营第一良种"},{"code":"231225584","name":"国营第二良种"},{"code":"231225585","name":"国营第三良种"}]},{"code":"231226","name":"绥棱县","children":[{"code":"231226001","name":"车站街道"},{"code":"231226002","name":"建设街道"},{"code":"231226003","name":"西北街道"},{"code":"231226004","name":"东南街道"},{"code":"231226100","name":"绥棱镇"},{"code":"231226101","name":"上集镇"},{"code":"231226102","name":"四海店镇"},{"code":"231226103","name":"双岔河镇"},{"code":"231226104","name":"阁山镇"},{"code":"231226105","name":"长山镇"},{"code":"231226200","name":"靠山乡"},{"code":"231226201","name":"后头乡"},{"code":"231226205","name":"克音河乡"},{"code":"231226206","name":"绥中乡"},{"code":"231226207","name":"泥尔河乡"},{"code":"231226400","name":"绥棱县国有林场阁山林场"},{"code":"231226401","name":"绥棱县国有林场四海店林场"},{"code":"231226402","name":"绥棱县国有林场三吉台林场"},{"code":"231226403","name":"绥棱县国有林场半截河林场"},{"code":"231226404","name":"黑龙江省绥棱林业局有限公司"},{"code":"231226500","name":"黑龙江北大荒农垦集团绥棱农场有限公司"},{"code":"231226580","name":"种马场"},{"code":"231226581","name":"良种场"},{"code":"231226582","name":"绥棱县猪场"}]},{"code":"231281","name":"安达市","children":[{"code":"231281001","name":"铁西街道"},{"code":"231281002","name":"新兴街道"},{"code":"231281003","name":"安虹街道"},{"code":"231281004","name":"东城街道"},{"code":"231281100","name":"安达镇"},{"code":"231281101","name":"任民镇"},{"code":"231281103","name":"万宝山镇"},{"code":"231281104","name":"昌德镇"},{"code":"231281105","name":"升平镇"},{"code":"231281106","name":"羊草镇"},{"code":"231281107","name":"老虎岗镇"},{"code":"231281108","name":"中本镇"},{"code":"231281109","name":"太平庄镇"},{"code":"231281110","name":"吉兴岗镇"},{"code":"231281111","name":"卧里屯镇"},{"code":"231281112","name":"火石山镇"},{"code":"231281113","name":"古大湖镇"},{"code":"231281209","name":"先源乡"},{"code":"231281500","name":"安达畜牧场"},{"code":"231281581","name":"原种场"},{"code":"231281583","name":"红旗泡水库管理所"},{"code":"231281584","name":"东湖水库管理站"}]},{"code":"231282","name":"肇东市","children":[{"code":"231282001","name":"朝阳区街道"},{"code":"231282002","name":"东升区街道"},{"code":"231282003","name":"西园区街道"},{"code":"231282004","name":"正阳区街道"},{"code":"231282100","name":"肇东镇"},{"code":"231282101","name":"昌五镇"},{"code":"231282102","name":"宋站镇"},{"code":"231282103","name":"五站镇"},{"code":"231282104","name":"尚家镇"},{"code":"231282105","name":"姜家镇"},{"code":"231282106","name":"里木店镇"},{"code":"231282107","name":"四站镇"},{"code":"231282108","name":"涝洲镇"},{"code":"231282109","name":"五里明镇"},{"code":"231282110","name":"黎明镇"},{"code":"231282111","name":"西八里镇"},{"code":"231282112","name":"海城镇"},{"code":"231282201","name":"太平乡"},{"code":"231282204","name":"向阳乡"},{"code":"231282205","name":"洪河乡"},{"code":"231282206","name":"跃进乡"},{"code":"231282212","name":"德昌乡"},{"code":"231282213","name":"宣化乡"},{"code":"231282214","name":"安民乡"},{"code":"231282215","name":"明久乡"},{"code":"231282500","name":"四方山农场"},{"code":"231282501","name":"涝洲鱼种场"}]},{"code":"231283","name":"海伦市","children":[{"code":"231283100","name":"海伦镇"},{"code":"231283101","name":"海北镇"},{"code":"231283102","name":"伦河镇"},{"code":"231283103","name":"共合镇"},{"code":"231283104","name":"海兴镇"},{"code":"231283105","name":"祥富镇"},{"code":"231283106","name":"东风镇"},{"code":"231283107","name":"百祥镇"},{"code":"231283108","name":"向荣镇"},{"code":"231283109","name":"永富镇"},{"code":"231283110","name":"长发镇"},{"code":"231283111","name":"联发镇"},{"code":"231283112","name":"前进镇"},{"code":"231283113","name":"共荣镇"},{"code":"231283114","name":"东林镇"},{"code":"231283115","name":"永和镇"},{"code":"231283208","name":"海南乡"},{"code":"231283210","name":"乐业乡"},{"code":"231283211","name":"福民乡"},{"code":"231283212","name":"丰山乡"},{"code":"231283218","name":"爱民乡"},{"code":"231283220","name":"扎音河乡"},{"code":"231283221","name":"双录乡"},{"code":"231283400","name":"海伦市森林资源保护中心"},{"code":"231283401","name":"东方红水库地区"},{"code":"231283500","name":"海伦农场"},{"code":"231283501","name":"红光农场"},{"code":"231283581","name":"海伦市董家农作物种植场"},{"code":"231283582","name":"海伦市东方农牧场"}]}]},{"code":"2327","name":"大兴安岭地区","children":[{"code":"232701","name":"漠河市","children":[{"code":"232701100","name":"西林吉镇"},{"code":"232701101","name":"图强镇"},{"code":"232701102","name":"阿木尔镇"},{"code":"232701103","name":"兴安镇"},{"code":"232701104","name":"北极镇"},{"code":"232701105","name":"古莲镇"}]},{"code":"232721","name":"呼玛县","children":[{"code":"232721100","name":"呼玛镇"},{"code":"232721101","name":"韩家园镇"},{"code":"232721200","name":"三卡乡"},{"code":"232721201","name":"金山乡"},{"code":"232721202","name":"兴华乡"},{"code":"232721203","name":"鸥浦乡"},{"code":"232721204","name":"白银纳鄂伦春族民族乡"},{"code":"232721205","name":"北疆乡"}]},{"code":"232722","name":"塔河县","children":[{"code":"232722100","name":"塔河镇"},{"code":"232722101","name":"瓦拉干镇"},{"code":"232722102","name":"盘古镇"},{"code":"232722103","name":"古驿镇"},{"code":"232722200","name":"十八站鄂伦春族乡"},{"code":"232722201","name":"依西肯乡"},{"code":"232722202","name":"开库康乡"}]},{"code":"232761","name":"加格达奇区","children":[{"code":"232761001","name":"东山街道"},{"code":"232761002","name":"卫东街道"},{"code":"232761003","name":"红旗街道"},{"code":"232761004","name":"长虹街道"},{"code":"232761005","name":"曙光街道"},{"code":"232761006","name":"光明街道"},{"code":"232761200","name":"加北乡"},{"code":"232761201","name":"白桦乡"}]},{"code":"232762","name":"松岭区","children":[{"code":"232762100","name":"小扬气镇"},{"code":"232762101","name":"劲松镇"},{"code":"232762102","name":"古源镇"}]},{"code":"232763","name":"新林区","children":[{"code":"232763100","name":"新林镇"},{"code":"232763101","name":"翠岗镇"},{"code":"232763102","name":"塔源镇"},{"code":"232763103","name":"大乌苏镇"},{"code":"232763104","name":"塔尔根镇"},{"code":"232763105","name":"碧洲镇"},{"code":"232763106","name":"宏图镇"}]},{"code":"232764","name":"呼中区","children":[{"code":"232764100","name":"呼中镇"},{"code":"232764101","name":"碧水镇"},{"code":"232764102","name":"呼源镇"},{"code":"232764103","name":"宏伟镇"}]}]}]},{"code":"31","name":"上海市","children":[{"code":"3101","name":"市辖区","children":[{"code":"310101","name":"黄浦区","children":[{"code":"310101002","name":"南京东路街道"},{"code":"310101013","name":"外滩街道"},{"code":"310101015","name":"半淞园路街道"},{"code":"310101017","name":"小东门街道"},{"code":"310101018","name":"豫园街道"},{"code":"310101019","name":"老西门街道"},{"code":"310101020","name":"五里桥街道"},{"code":"310101021","name":"打浦桥街道"},{"code":"310101022","name":"淮海中路街道"},{"code":"310101023","name":"瑞金二路街道"}]},{"code":"310104","name":"徐汇区","children":[{"code":"310104003","name":"天平路街道"},{"code":"310104004","name":"湖南路街道"},{"code":"310104007","name":"斜土路街道"},{"code":"310104008","name":"枫林路街道"},{"code":"310104010","name":"长桥街道"},{"code":"310104011","name":"田林街道"},{"code":"310104012","name":"虹梅路街道"},{"code":"310104013","name":"康健新村街道"},{"code":"310104014","name":"徐家汇街道"},{"code":"310104015","name":"凌云路街道"},{"code":"310104016","name":"龙华街道"},{"code":"310104017","name":"漕河泾街道"},{"code":"310104103","name":"华泾镇"},{"code":"310104501","name":"漕河泾新兴技术开发区"}]},{"code":"310105","name":"长宁区","children":[{"code":"310105001","name":"华阳路街道"},{"code":"310105002","name":"江苏路街道"},{"code":"310105004","name":"新华路街道"},{"code":"310105005","name":"周家桥街道"},{"code":"310105006","name":"天山路街道"},{"code":"310105008","name":"仙霞新村街道"},{"code":"310105009","name":"虹桥街道"},{"code":"310105010","name":"程家桥街道"},{"code":"310105011","name":"北新泾街道"},{"code":"310105102","name":"新泾镇"}]},{"code":"310106","name":"静安区","children":[{"code":"310106006","name":"江宁路街道"},{"code":"310106011","name":"石门二路街道"},{"code":"310106012","name":"南京西路街道"},{"code":"310106013","name":"静安寺街道"},{"code":"310106014","name":"曹家渡街道"},{"code":"310106015","name":"天目西路街道"},{"code":"310106016","name":"北站街道"},{"code":"310106017","name":"宝山路街道"},{"code":"310106018","name":"共和新路街道"},{"code":"310106019","name":"大宁路街道"},{"code":"310106020","name":"彭浦新村街道"},{"code":"310106021","name":"临汾路街道"},{"code":"310106022","name":"芷江西路街道"},{"code":"310106101","name":"彭浦镇"}]},{"code":"310107","name":"普陀区","children":[{"code":"310107005","name":"曹杨新村街道"},{"code":"310107014","name":"长风新村街道"},{"code":"310107015","name":"长寿路街道"},{"code":"310107016","name":"甘泉路街道"},{"code":"310107017","name":"石泉路街道"},{"code":"310107020","name":"宜川路街道"},{"code":"310107021","name":"万里街道"},{"code":"310107022","name":"真如镇街道"},{"code":"310107102","name":"长征镇"},{"code":"310107103","name":"桃浦镇"}]},{"code":"310109","name":"虹口区","children":[{"code":"310109009","name":"欧阳路街道"},{"code":"310109010","name":"曲阳路街道"},{"code":"310109011","name":"广中路街道"},{"code":"310109014","name":"嘉兴路街道"},{"code":"310109016","name":"凉城新村街道"},{"code":"310109017","name":"四川北路街道"},{"code":"310109018","name":"北外滩街道"},{"code":"310109019","name":"江湾镇街道"}]},{"code":"310110","name":"杨浦区","children":[{"code":"310110001","name":"定海路街道"},{"code":"310110006","name":"平凉路街道"},{"code":"310110008","name":"江浦路街道"},{"code":"310110009","name":"四平路街道"},{"code":"310110012","name":"控江路街道"},{"code":"310110013","name":"长白新村街道"},{"code":"310110015","name":"延吉新村街道"},{"code":"310110016","name":"殷行街道"},{"code":"310110018","name":"大桥街道"},{"code":"310110019","name":"五角场街道"},{"code":"310110020","name":"新江湾城街道"},{"code":"310110021","name":"长海路街道"}]},{"code":"310112","name":"闵行区","children":[{"code":"310112001","name":"江川路街道"},{"code":"310112006","name":"古美街道"},{"code":"310112008","name":"新虹街道"},{"code":"310112009","name":"浦锦街道"},{"code":"310112101","name":"莘庄镇"},{"code":"310112102","name":"七宝镇"},{"code":"310112103","name":"颛桥镇"},{"code":"310112106","name":"华漕镇"},{"code":"310112107","name":"虹桥镇"},{"code":"310112108","name":"梅陇镇"},{"code":"310112110","name":"吴泾镇"},{"code":"310112112","name":"马桥镇"},{"code":"310112114","name":"浦江镇"},{"code":"310112501","name":"莘庄工业区"}]},{"code":"310113","name":"宝山区","children":[{"code":"310113003","name":"友谊路街道"},{"code":"310113007","name":"吴淞街道"},{"code":"310113008","name":"张庙街道"},{"code":"310113101","name":"罗店镇"},{"code":"310113102","name":"大场镇"},{"code":"310113103","name":"杨行镇"},{"code":"310113104","name":"月浦镇"},{"code":"310113106","name":"罗泾镇"},{"code":"310113109","name":"顾村镇"},{"code":"310113111","name":"高境镇"},{"code":"310113112","name":"庙行镇"},{"code":"310113113","name":"淞南镇"},{"code":"310113501","name":"宝山城市工业园区"}]},{"code":"310114","name":"嘉定区","children":[{"code":"310114001","name":"新成路街道"},{"code":"310114002","name":"真新街道"},{"code":"310114004","name":"嘉定镇街道"},{"code":"310114102","name":"南翔镇"},{"code":"310114103","name":"安亭镇"},{"code":"310114106","name":"马陆镇"},{"code":"310114109","name":"徐行镇"},{"code":"310114111","name":"华亭镇"},{"code":"310114114","name":"外冈镇"},{"code":"310114118","name":"江桥镇"},{"code":"310114401","name":"菊园新区"},{"code":"310114501","name":"嘉定工业区"}]},{"code":"310115","name":"浦东新区","children":[{"code":"310115004","name":"潍坊新村街道"},{"code":"310115005","name":"陆家嘴街道"},{"code":"310115007","name":"周家渡街道"},{"code":"310115008","name":"塘桥街道"},{"code":"310115009","name":"上钢新村街道"},{"code":"310115010","name":"南码头路街道"},{"code":"310115011","name":"沪东新村街道"},{"code":"310115012","name":"金杨新村街道"},{"code":"310115013","name":"洋泾街道"},{"code":"310115014","name":"浦兴路街道"},{"code":"310115015","name":"东明路街道"},{"code":"310115016","name":"花木街道"},{"code":"310115103","name":"川沙新镇"},{"code":"310115104","name":"高桥镇"},{"code":"310115105","name":"北蔡镇"},{"code":"310115110","name":"合庆镇"},{"code":"310115114","name":"唐镇"},{"code":"310115117","name":"曹路镇"},{"code":"310115120","name":"金桥镇"},{"code":"310115121","name":"高行镇"},{"code":"310115123","name":"高东镇"},{"code":"310115125","name":"张江镇"},{"code":"310115130","name":"三林镇"},{"code":"310115131","name":"惠南镇"},{"code":"310115132","name":"周浦镇"},{"code":"310115133","name":"新场镇"},{"code":"310115134","name":"大团镇"},{"code":"310115136","name":"康桥镇"},{"code":"310115137","name":"航头镇"},{"code":"310115139","name":"祝桥镇"},{"code":"310115140","name":"泥城镇"},{"code":"310115141","name":"宣桥镇"},{"code":"310115142","name":"书院镇"},{"code":"310115143","name":"万祥镇"},{"code":"310115144","name":"老港镇"},{"code":"310115145","name":"南汇新城镇"},{"code":"310115401","name":"芦潮港农场"},{"code":"310115402","name":"东海农场"},{"code":"310115403","name":"朝阳农场"},{"code":"310115501","name":"中国(上海)自由贸易试验区(保税片区)"},{"code":"310115502","name":"金桥经济技术开发区"},{"code":"310115503","name":"张江高科技园区"}]},{"code":"310116","name":"金山区","children":[{"code":"310116001","name":"石化街道"},{"code":"310116101","name":"朱泾镇"},{"code":"310116102","name":"枫泾镇"},{"code":"310116103","name":"张堰镇"},{"code":"310116104","name":"亭林镇"},{"code":"310116105","name":"吕巷镇"},{"code":"310116107","name":"廊下镇"},{"code":"310116109","name":"金山卫镇"},{"code":"310116112","name":"漕泾镇"},{"code":"310116113","name":"山阳镇"},{"code":"310116503","name":"金山工业区"}]},{"code":"310117","name":"松江区","children":[{"code":"310117001","name":"岳阳街道"},{"code":"310117002","name":"永丰街道"},{"code":"310117003","name":"方松街道"},{"code":"310117004","name":"中山街道"},{"code":"310117005","name":"广富林街道"},{"code":"310117006","name":"九里亭街道"},{"code":"310117102","name":"泗泾镇"},{"code":"310117103","name":"佘山镇"},{"code":"310117104","name":"车墩镇"},{"code":"310117105","name":"新桥镇"},{"code":"310117106","name":"洞泾镇"},{"code":"310117107","name":"九亭镇"},{"code":"310117109","name":"泖港镇"},{"code":"310117116","name":"石湖荡镇"},{"code":"310117117","name":"新浜镇"},{"code":"310117120","name":"叶榭镇"},{"code":"310117121","name":"小昆山镇"},{"code":"310117501","name":"松江工业区"},{"code":"310117504","name":"佘山度假区"},{"code":"310117507","name":"上海松江出口加工区"}]},{"code":"310118","name":"青浦区","children":[{"code":"310118001","name":"夏阳街道"},{"code":"310118002","name":"盈浦街道"},{"code":"310118003","name":"香花桥街道"},{"code":"310118102","name":"朱家角镇"},{"code":"310118103","name":"练塘镇"},{"code":"310118104","name":"金泽镇"},{"code":"310118105","name":"赵巷镇"},{"code":"310118106","name":"徐泾镇"},{"code":"310118107","name":"华新镇"},{"code":"310118109","name":"重固镇"},{"code":"310118110","name":"白鹤镇"}]},{"code":"310120","name":"奉贤区","children":[{"code":"310120001","name":"西渡街道"},{"code":"310120002","name":"奉浦街道"},{"code":"310120003","name":"金海街道"},{"code":"310120101","name":"南桥镇"},{"code":"310120102","name":"奉城镇"},{"code":"310120104","name":"庄行镇"},{"code":"310120106","name":"金汇镇"},{"code":"310120109","name":"四团镇"},{"code":"310120111","name":"青村镇"},{"code":"310120118","name":"柘林镇"},{"code":"310120123","name":"海湾镇"},{"code":"310120503","name":"海湾旅游区"}]},{"code":"310151","name":"崇明区","children":[{"code":"310151101","name":"城桥镇"},{"code":"310151102","name":"堡镇"},{"code":"310151103","name":"新河镇"},{"code":"310151104","name":"庙镇"},{"code":"310151105","name":"竖新镇"},{"code":"310151106","name":"向化镇"},{"code":"310151107","name":"三星镇"},{"code":"310151108","name":"港沿镇"},{"code":"310151109","name":"中兴镇"},{"code":"310151110","name":"陈家镇"},{"code":"310151111","name":"绿华镇"},{"code":"310151112","name":"港西镇"},{"code":"310151113","name":"建设镇"},{"code":"310151114","name":"新海镇"},{"code":"310151115","name":"东平镇"},{"code":"310151116","name":"长兴镇"},{"code":"310151201","name":"新村乡"},{"code":"310151202","name":"横沙乡"},{"code":"310151401","name":"前卫农场"},{"code":"310151402","name":"东平林场"},{"code":"310151501","name":"上实现代农业园区"}]}]}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市","children":[{"code":"320102","name":"玄武区","children":[{"code":"320102002","name":"梅园新村街道"},{"code":"320102003","name":"新街口街道"},{"code":"320102005","name":"玄武门街道"},{"code":"320102007","name":"锁金村街道"},{"code":"320102008","name":"红山街道"},{"code":"320102009","name":"孝陵卫街道"},{"code":"320102010","name":"玄武湖街道"},{"code":"320102400","name":"徐庄高新技术产业开发区"}]},{"code":"320104","name":"秦淮区","children":[{"code":"320104001","name":"秦虹街道"},{"code":"320104002","name":"夫子庙街道"},{"code":"320104003","name":"红花街道"},{"code":"320104004","name":"双塘街道"},{"code":"320104005","name":"中华门街道"},{"code":"320104006","name":"五老村街道"},{"code":"320104007","name":"洪武路街道"},{"code":"320104008","name":"大光路街道"},{"code":"320104009","name":"瑞金路街道"},{"code":"320104010","name":"月牙湖街道"},{"code":"320104011","name":"光华路街道"},{"code":"320104012","name":"朝天宫街道"},{"code":"320104400","name":"夫子庙秦淮风光带"},{"code":"320104401","name":"高新园区"},{"code":"320104402","name":"新城发展服务"},{"code":"320104403","name":"新街口商务商贸街区"}]},{"code":"320105","name":"建邺区","children":[{"code":"320105001","name":"莫愁湖街道"},{"code":"320105002","name":"沙洲街道"},{"code":"320105003","name":"双闸街道"},{"code":"320105004","name":"江心洲街道"},{"code":"320105006","name":"兴隆街道"},{"code":"320105007","name":"南苑街道"},{"code":"320105400","name":"建邺区新城科技园"},{"code":"320105401","name":"建邺区河西中央商务区"},{"code":"320105402","name":"建邺区江东商业文化旅游中心区"},{"code":"320105403","name":"中新南京生态科技岛"}]},{"code":"320106","name":"鼓楼区","children":[{"code":"320106001","name":"宁海路街道"},{"code":"320106002","name":"华侨路街道"},{"code":"320106003","name":"湖南路街道"},{"code":"320106004","name":"中央门街道"},{"code":"320106005","name":"挹江门街道"},{"code":"320106006","name":"江东街道"},{"code":"320106007","name":"凤凰街道"},{"code":"320106008","name":"下关街道"},{"code":"320106009","name":"热河南路街道"},{"code":"320106010","name":"幕府山街道"},{"code":"320106011","name":"建宁路街道"},{"code":"320106012","name":"宝塔桥街道"},{"code":"320106013","name":"小市街道"}]},{"code":"320111","name":"浦口区","children":[{"code":"320111001","name":"泰山街道"},{"code":"320111002","name":"顶山街道"},{"code":"320111003","name":"沿江街道"},{"code":"320111004","name":"江浦街道"},{"code":"320111005","name":"桥林街道"},{"code":"320111006","name":"汤泉街道"},{"code":"320111007","name":"盘城街道"},{"code":"320111008","name":"星甸街道"},{"code":"320111009","name":"永宁街道"},{"code":"320111400","name":"老山林场"},{"code":"320111401","name":"汤泉农场"},{"code":"320111402","name":"珍珠泉旅游度假区"},{"code":"320111403","name":"浦口经济开发区"},{"code":"320111404","name":"南京浦口高新技术产业开发区"},{"code":"320111450","name":"高新技术开发区"}]},{"code":"320113","name":"栖霞区","children":[{"code":"320113001","name":"尧化街道"},{"code":"320113002","name":"马群街道"},{"code":"320113003","name":"迈皋桥街道"},{"code":"320113004","name":"燕子矶街道"},{"code":"320113005","name":"栖霞街道"},{"code":"320113006","name":"龙潭街道"},{"code":"320113007","name":"仙林街道"},{"code":"320113009","name":"八卦洲街道"},{"code":"320113010","name":"西岗街道"},{"code":"320113400","name":"龙潭监狱"},{"code":"320113401","name":"栖霞经济开发区"},{"code":"320113402","name":"南京龙潭物流园"},{"code":"320113403","name":"南京市靖安三江口工业园"},{"code":"320113405","name":"南京市马群科技园"},{"code":"320113406","name":"南京仙林大学城"},{"code":"320113407","name":"江苏生命科技创新园"},{"code":"320113409","name":"南大科学园"},{"code":"320113410","name":"南京紫东国际创意园"},{"code":"320113411","name":"南京金港科技创业中心"},{"code":"320113413","name":"仙林智谷"},{"code":"320113450","name":"南京经济技术开发区"}]},{"code":"320114","name":"雨花台区","children":[{"code":"320114001","name":"雨花街道"},{"code":"320114002","name":"赛虹桥街道"},{"code":"320114004","name":"西善桥街道"},{"code":"320114005","name":"板桥街道"},{"code":"320114006","name":"铁心桥街道"},{"code":"320114007","name":"梅山街道"},{"code":"320114008","name":"古雄街道"},{"code":"320114400","name":"雨花经济开发区"},{"code":"320114402","name":"中国(南京)软件谷"}]},{"code":"320115","name":"江宁区","children":[{"code":"320115001","name":"东山街道"},{"code":"320115002","name":"秣陵街道"},{"code":"320115003","name":"汤山街道"},{"code":"320115004","name":"淳化街道"},{"code":"320115005","name":"禄口街道"},{"code":"320115006","name":"江宁街道"},{"code":"320115007","name":"谷里街道"},{"code":"320115008","name":"湖熟街道"},{"code":"320115009","name":"横溪街道"},{"code":"320115010","name":"麒麟街道"},{"code":"320115401","name":"青龙山林场"},{"code":"320115402","name":"江宁开发区"},{"code":"320115403","name":"江宁滨江开发区"},{"code":"320115404","name":"江宁高新技术产业园"},{"code":"320115405","name":"麒麟科技创新园(生态科技城)"}]},{"code":"320116","name":"六合区","children":[{"code":"320116001","name":"大厂街道"},{"code":"320116004","name":"葛塘街道"},{"code":"320116005","name":"长芦街道"},{"code":"320116006","name":"雄州街道"},{"code":"320116007","name":"龙池街道"},{"code":"320116008","name":"程桥街道"},{"code":"320116009","name":"金牛湖街道"},{"code":"320116010","name":"横梁街道"},{"code":"320116011","name":"龙袍街道"},{"code":"320116012","name":"马鞍街道"},{"code":"320116013","name":"冶山街道"},{"code":"320116110","name":"竹镇镇"},{"code":"320116400","name":"六合开发区"},{"code":"320116401","name":"新材料产业园"},{"code":"320116450","name":"化工园区"}]},{"code":"320117","name":"溧水区","children":[{"code":"320117001","name":"永阳街道"},{"code":"320117002","name":"柘塘街道"},{"code":"320117003","name":"东屏街道"},{"code":"320117004","name":"石湫街道"},{"code":"320117005","name":"洪蓝街道"},{"code":"320117101","name":"白马镇"},{"code":"320117106","name":"晶桥镇"},{"code":"320117107","name":"和凤镇"},{"code":"320117400","name":"溧水开发区"}]},{"code":"320118","name":"高淳区","children":[{"code":"320118001","name":"淳溪街道"},{"code":"320118002","name":"古柏街道"},{"code":"320118003","name":"漆桥街道"},{"code":"320118004","name":"固城街道"},{"code":"320118005","name":"东坝街道"},{"code":"320118006","name":"桠溪街道"},{"code":"320118101","name":"阳江镇"},{"code":"320118102","name":"砖墙镇"},{"code":"320118400","name":"高淳县团结圩良种繁育场"},{"code":"320118401","name":"高淳县茶叶实验场"},{"code":"320118402","name":"高淳监狱"},{"code":"320118403","name":"高淳县傅家坛林场"}]}]},{"code":"3202","name":"无锡市","children":[{"code":"320205","name":"锡山区","children":[{"code":"320205001","name":"东亭街道"},{"code":"320205002","name":"安镇街道"},{"code":"320205003","name":"东北塘街道"},{"code":"320205102","name":"羊尖镇"},{"code":"320205103","name":"鹅湖镇"},{"code":"320205105","name":"锡北镇"},{"code":"320205106","name":"东港镇"},{"code":"320205400","name":"无锡锡山开发区"},{"code":"320205401","name":"锡山台湾农民创业园"}]},{"code":"320206","name":"惠山区","children":[{"code":"320206001","name":"堰桥街道"},{"code":"320206002","name":"长安街道"},{"code":"320206003","name":"钱桥街道"},{"code":"320206004","name":"前洲街道"},{"code":"320206005","name":"玉祁街道"},{"code":"320206102","name":"洛社镇"},{"code":"320206103","name":"阳山镇"},{"code":"320206401","name":"无锡惠山经济开发区"},{"code":"320206500","name":"无锡惠山工业转型集聚区"}]},{"code":"320211","name":"滨湖区","children":[{"code":"320211001","name":"河埒街道"},{"code":"320211002","name":"荣巷街道"},{"code":"320211003","name":"蠡园街道"},{"code":"320211004","name":"蠡湖街道"},{"code":"320211006","name":"华庄街道"},{"code":"320211007","name":"太湖街道"},{"code":"320211008","name":"雪浪街道"},{"code":"320211009","name":"马山街道"},{"code":"320211101","name":"胡埭镇"}]},{"code":"320213","name":"梁溪区","children":[{"code":"320213021","name":"崇安寺街道"},{"code":"320213022","name":"清名桥街道"},{"code":"320213023","name":"惠山街道"},{"code":"320213024","name":"北大街街道"},{"code":"320213025","name":"广益街道"},{"code":"320213026","name":"扬名街道"},{"code":"320213027","name":"山北街道"},{"code":"320213028","name":"黄巷街道"},{"code":"320213029","name":"瞻江街道"}]},{"code":"320214","name":"新吴区","children":[{"code":"320214050","name":"旺庄街道"},{"code":"320214051","name":"硕放街道"},{"code":"320214052","name":"江溪街道"},{"code":"320214053","name":"新安街道"},{"code":"320214054","name":"梅村街道"},{"code":"320214055","name":"鸿山街道"},{"code":"320214450","name":"无锡新加坡工业园"},{"code":"320214451","name":"无锡高新技术产业开发区"},{"code":"320214452","name":"无锡高新区综合保税区"},{"code":"320214453","name":"无锡太湖国际科技园"}]},{"code":"320281","name":"江阴市","children":[{"code":"320281001","name":"澄江街道"},{"code":"320281004","name":"南闸街道"},{"code":"320281005","name":"云亭街道"},{"code":"320281007","name":"申港街道"},{"code":"320281008","name":"利港街道"},{"code":"320281009","name":"夏港街道"},{"code":"320281100","name":"璜土镇"},{"code":"320281102","name":"月城镇"},{"code":"320281103","name":"青阳镇"},{"code":"320281104","name":"徐霞客镇"},{"code":"320281107","name":"华士镇"},{"code":"320281108","name":"周庄镇"},{"code":"320281109","name":"新桥镇"},{"code":"320281110","name":"长泾镇"},{"code":"320281111","name":"顾山镇"},{"code":"320281112","name":"祝塘镇"},{"code":"320281400","name":"江阴高新技术产业开发区"},{"code":"320281403","name":"江苏江阴靖江工业园区"},{"code":"320281404","name":"临港经济开发区"},{"code":"320281405","name":"青阳园区"},{"code":"320281406","name":"月城园区"}]},{"code":"320282","name":"宜兴市","children":[{"code":"320282001","name":"宜城街道"},{"code":"320282002","name":"屺亭街道"},{"code":"320282003","name":"新庄街道"},{"code":"320282004","name":"新街街道"},{"code":"320282005","name":"芳桥街道"},{"code":"320282100","name":"张渚镇"},{"code":"320282101","name":"西渚镇"},{"code":"320282102","name":"太华镇"},{"code":"320282103","name":"徐舍镇"},{"code":"320282104","name":"官林镇"},{"code":"320282105","name":"杨巷镇"},{"code":"320282106","name":"新建镇"},{"code":"320282107","name":"和桥镇"},{"code":"320282108","name":"高塍镇"},{"code":"320282109","name":"万石镇"},{"code":"320282110","name":"周铁镇"},{"code":"320282112","name":"丁蜀镇"},{"code":"320282113","name":"湖父镇"},{"code":"320282400","name":"环科园"},{"code":"320282401","name":"宜兴经济开发区"}]}]},{"code":"3203","name":"徐州市","children":[{"code":"320302","name":"鼓楼区","children":[{"code":"320302001","name":"黄楼街道"},{"code":"320302002","name":"丰财街道"},{"code":"320302003","name":"琵琶街道"},{"code":"320302004","name":"牌楼街道"},{"code":"320302005","name":"铜沛街道"},{"code":"320302006","name":"环城街道"},{"code":"320302007","name":"九里街道"},{"code":"320302008","name":"拾屯街道"}]},{"code":"320303","name":"云龙区","children":[{"code":"320303001","name":"彭城街道"},{"code":"320303002","name":"子房街道"},{"code":"320303003","name":"黄山街道"},{"code":"320303004","name":"骆驼山街道"},{"code":"320303005","name":"大郭庄街道"},{"code":"320303006","name":"翠屏山街道"},{"code":"320303007","name":"大龙湖街道"},{"code":"320303008","name":"潘塘街道"},{"code":"320303009","name":"汉风街道"},{"code":"320303400","name":"淮海食品城"},{"code":"320303401","name":"户部山回龙窝历史文化街区管理中心"}]},{"code":"320305","name":"贾汪区","children":[{"code":"320305001","name":"老矿街道"},{"code":"320305003","name":"大泉街道"},{"code":"320305004","name":"大吴街道"},{"code":"320305005","name":"潘安湖街道"},{"code":"320305006","name":"茱萸山街道"},{"code":"320305102","name":"青山泉镇"},{"code":"320305104","name":"紫庄镇"},{"code":"320305105","name":"塔山镇"},{"code":"320305106","name":"汴塘镇"},{"code":"320305107","name":"江庄镇"},{"code":"320305401","name":"鹿庄粮棉原种场"},{"code":"320305402","name":"工业园区管委会"}]},{"code":"320311","name":"泉山区","children":[{"code":"320311001","name":"王陵街道"},{"code":"320311002","name":"七里沟街道"},{"code":"320311003","name":"永安街道"},{"code":"320311004","name":"湖滨街道"},{"code":"320311005","name":"段庄街道"},{"code":"320311006","name":"翟山街道"},{"code":"320311007","name":"奎山街道"},{"code":"320311008","name":"和平街道"},{"code":"320311009","name":"金山街道"},{"code":"320311010","name":"泰山街道"},{"code":"320311011","name":"庞庄街道"},{"code":"320311012","name":"火花街道"},{"code":"320311013","name":"桃园街道"},{"code":"320311014","name":"苏山街道"},{"code":"320311401","name":"徐州泉山经济开发区"},{"code":"320311402","name":"徐州软件园管理委员会"}]},{"code":"320312","name":"铜山区","children":[{"code":"320312001","name":"三河尖街道"},{"code":"320312002","name":"张双楼街道"},{"code":"320312003","name":"垞城街道"},{"code":"320312004","name":"张集街道"},{"code":"320312006","name":"利国街道"},{"code":"320312007","name":"电厂街道"},{"code":"320312009","name":"铜山街道"},{"code":"320312010","name":"沿湖街道"},{"code":"320312051","name":"新区街道"},{"code":"320312052","name":"三堡街道"},{"code":"320312102","name":"何桥镇"},{"code":"320312103","name":"黄集镇"},{"code":"320312104","name":"马坡镇"},{"code":"320312105","name":"郑集镇"},{"code":"320312106","name":"柳新镇"},{"code":"320312107","name":"刘集镇"},{"code":"320312108","name":"大彭镇"},{"code":"320312109","name":"汉王镇"},{"code":"320312111","name":"棠张镇"},{"code":"320312112","name":"张集镇"},{"code":"320312113","name":"房村镇"},{"code":"320312114","name":"伊庄镇"},{"code":"320312115","name":"单集镇"},{"code":"320312116","name":"利国镇"},{"code":"320312118","name":"大许镇"},{"code":"320312119","name":"茅村镇"},{"code":"320312120","name":"柳泉镇"},{"code":"320312402","name":"徐州高新技术产业开发区"},{"code":"320312403","name":"江苏铜山经济开发区"}]},{"code":"320321","name":"丰县","children":[{"code":"320321001","name":"中阳里街道"},{"code":"320321002","name":"凤城街道"},{"code":"320321003","name":"孙楼街道"},{"code":"320321102","name":"首羡镇"},{"code":"320321103","name":"顺河镇"},{"code":"320321104","name":"常店镇"},{"code":"320321105","name":"欢口镇"},{"code":"320321106","name":"师寨镇"},{"code":"320321107","name":"华山镇"},{"code":"320321108","name":"梁寨镇"},{"code":"320321109","name":"范楼镇"},{"code":"320321111","name":"宋楼镇"},{"code":"320321112","name":"大沙河镇"},{"code":"320321113","name":"王沟镇"},{"code":"320321114","name":"赵庄镇"},{"code":"320321401","name":"大沙河林场"}]},{"code":"320322","name":"沛县","children":[{"code":"320322001","name":"沛城街道"},{"code":"320322002","name":"大屯街道"},{"code":"320322003","name":"汉源街道"},{"code":"320322004","name":"汉兴街道"},{"code":"320322101","name":"龙固镇"},{"code":"320322102","name":"杨屯镇"},{"code":"320322105","name":"胡寨镇"},{"code":"320322106","name":"魏庙镇"},{"code":"320322107","name":"五段镇"},{"code":"320322108","name":"张庄镇"},{"code":"320322109","name":"张寨镇"},{"code":"320322110","name":"敬安镇"},{"code":"320322111","name":"河口镇"},{"code":"320322112","name":"栖山镇"},{"code":"320322113","name":"鹿楼镇"},{"code":"320322114","name":"朱寨镇"},{"code":"320322115","name":"安国镇"},{"code":"320322403","name":"沛县湖西农场管理委员会"}]},{"code":"320324","name":"睢宁县","children":[{"code":"320324001","name":"睢城街道"},{"code":"320324002","name":"金城街道"},{"code":"320324003","name":"睢河街道"},{"code":"320324102","name":"王集镇"},{"code":"320324103","name":"双沟镇"},{"code":"320324104","name":"岚山镇"},{"code":"320324105","name":"李集镇"},{"code":"320324106","name":"桃园镇"},{"code":"320324107","name":"官山镇"},{"code":"320324108","name":"高作镇"},{"code":"320324109","name":"沙集镇"},{"code":"320324110","name":"凌城镇"},{"code":"320324111","name":"邱集镇"},{"code":"320324112","name":"古邳镇"},{"code":"320324113","name":"姚集镇"},{"code":"320324114","name":"魏集镇"},{"code":"320324115","name":"梁集镇"},{"code":"320324116","name":"庆安镇"},{"code":"320324401","name":"经济开发区"},{"code":"320324405","name":"空港经济开发区"}]},{"code":"320371","name":"徐州经济技术开发区","children":[{"code":"320371001","name":"金山桥街道"},{"code":"320371002","name":"东环街道"},{"code":"320371003","name":"大黄山街道"},{"code":"320371004","name":"大庙街道"},{"code":"320371005","name":"金龙湖街道"},{"code":"320371101","name":"徐庄镇"}]},{"code":"320381","name":"新沂市","children":[{"code":"320381001","name":"新安街道"},{"code":"320381002","name":"北沟街道"},{"code":"320381003","name":"墨河街道"},{"code":"320381004","name":"唐店街道"},{"code":"320381005","name":"钟吾街道"},{"code":"320381102","name":"瓦窑镇"},{"code":"320381103","name":"港头镇"},{"code":"320381105","name":"合沟镇"},{"code":"320381106","name":"草桥镇"},{"code":"320381107","name":"窑湾镇"},{"code":"320381108","name":"棋盘镇"},{"code":"320381109","name":"马陵山镇"},{"code":"320381110","name":"新店镇"},{"code":"320381111","name":"邵店镇"},{"code":"320381113","name":"时集镇"},{"code":"320381114","name":"高流镇"},{"code":"320381115","name":"阿湖镇"},{"code":"320381116","name":"双塘镇"},{"code":"320381401","name":"经济开发区"},{"code":"320381402","name":"锡沂高新技术产业开发区"},{"code":"320381403","name":"马陵山风景名胜区"}]},{"code":"320382","name":"邳州市","children":[{"code":"320382001","name":"东湖街道"},{"code":"320382002","name":"运河街道"},{"code":"320382003","name":"戴圩街道"},{"code":"320382004","name":"炮车街道"},{"code":"320382102","name":"邳城镇"},{"code":"320382103","name":"官湖镇"},{"code":"320382104","name":"四户镇"},{"code":"320382105","name":"宿羊山镇"},{"code":"320382106","name":"八义集镇"},{"code":"320382107","name":"土山镇"},{"code":"320382108","name":"碾庄镇"},{"code":"320382109","name":"港上镇"},{"code":"320382110","name":"邹庄镇"},{"code":"320382111","name":"占城镇"},{"code":"320382112","name":"新河镇"},{"code":"320382113","name":"八路镇"},{"code":"320382115","name":"铁富镇"},{"code":"320382116","name":"岔河镇"},{"code":"320382118","name":"陈楼镇"},{"code":"320382119","name":"邢楼镇"},{"code":"320382120","name":"戴庄镇"},{"code":"320382121","name":"车辐山镇"},{"code":"320382122","name":"燕子埠镇"},{"code":"320382123","name":"赵墩镇"},{"code":"320382124","name":"议堂镇"},{"code":"320382401","name":"邳城农场"},{"code":"320382402","name":"张楼农场"},{"code":"320382403","name":"江苏邳州经济开发区"}]}]},{"code":"3204","name":"常州市","children":[{"code":"320402","name":"天宁区","children":[{"code":"320402001","name":"雕庄街道"},{"code":"320402002","name":"青龙街道"},{"code":"320402003","name":"茶山街道"},{"code":"320402004","name":"红梅街道"},{"code":"320402005","name":"天宁街道"},{"code":"320402006","name":"兰陵街道"},{"code":"320402109","name":"郑陆镇"}]},{"code":"320404","name":"钟楼区","children":[{"code":"320404001","name":"五星街道"},{"code":"320404002","name":"永红街道"},{"code":"320404003","name":"北港街道"},{"code":"320404004","name":"西林街道"},{"code":"320404005","name":"南大街街道"},{"code":"320404006","name":"荷花池街道"},{"code":"320404007","name":"新闸街道"},{"code":"320404116","name":"邹区镇"}]},{"code":"320411","name":"新北区","children":[{"code":"320411002","name":"三井街道"},{"code":"320411003","name":"龙虎塘街道"},{"code":"320411004","name":"春江街道"},{"code":"320411005","name":"魏村街道"},{"code":"320411006","name":"新桥街道"},{"code":"320411101","name":"孟河镇"},{"code":"320411103","name":"薛家镇"},{"code":"320411104","name":"罗溪镇"},{"code":"320411105","name":"西夏墅镇"},{"code":"320411122","name":"奔牛镇"}]},{"code":"320412","name":"武进区","children":[{"code":"320412001","name":"戚墅堰街道"},{"code":"320412002","name":"丁堰街道"},{"code":"320412003","name":"潞城街道"},{"code":"320412100","name":"湖塘镇"},{"code":"320412102","name":"牛塘镇"},{"code":"320412103","name":"洛阳镇"},{"code":"320412104","name":"遥观镇"},{"code":"320412105","name":"横林镇"},{"code":"320412106","name":"横山桥镇"},{"code":"320412110","name":"雪堰镇"},{"code":"320412113","name":"前黄镇"},{"code":"320412114","name":"礼嘉镇"},{"code":"320412119","name":"嘉泽镇"},{"code":"320412120","name":"湟里镇"},{"code":"320412400","name":"武进经济开发区"},{"code":"320412411","name":"高新区"},{"code":"320412412","name":"西太湖生态休闲区"},{"code":"320412413","name":"太湖旅游度假区管委会"}]},{"code":"320413","name":"金坛区","children":[{"code":"320413001","name":"西城街道"},{"code":"320413100","name":"金城镇"},{"code":"320413104","name":"儒林镇"},{"code":"320413106","name":"直溪镇"},{"code":"320413108","name":"朱林镇"},{"code":"320413109","name":"薛埠镇"},{"code":"320413112","name":"指前镇"},{"code":"320413400","name":"经济开发区"},{"code":"320413401","name":"茅山旅游度假区"},{"code":"320413402","name":"华罗庚高新区"}]},{"code":"320481","name":"溧阳市","children":[{"code":"320481001","name":"昆仑街道"},{"code":"320481002","name":"溧城街道"},{"code":"320481003","name":"古县街道"},{"code":"320481101","name":"埭头镇"},{"code":"320481102","name":"上黄镇"},{"code":"320481103","name":"戴埠镇"},{"code":"320481106","name":"天目湖镇"},{"code":"320481107","name":"别桥镇"},{"code":"320481109","name":"上兴镇"},{"code":"320481111","name":"竹箦镇"},{"code":"320481114","name":"南渡镇"},{"code":"320481116","name":"社渚镇"},{"code":"320481400","name":"常州监狱"},{"code":"320481401","name":"溧阳监狱"}]}]},{"code":"3205","name":"苏州市","children":[{"code":"320505","name":"虎丘区","children":[{"code":"320505001","name":"横塘街道"},{"code":"320505002","name":"狮山街道"},{"code":"320505003","name":"枫桥街道"},{"code":"320505004","name":"镇湖街道"},{"code":"320505101","name":"通安镇"},{"code":"320505400","name":"浒墅关经开区(镇)"},{"code":"320505405","name":"苏州高新技术创业服务中心"},{"code":"320505407","name":"科技城(东渚街道)"},{"code":"320505408","name":"苏州高新区综合保税区"}]},{"code":"320506","name":"吴中区","children":[{"code":"320506001","name":"长桥街道"},{"code":"320506003","name":"越溪街道"},{"code":"320506004","name":"郭巷街道"},{"code":"320506005","name":"横泾街道"},{"code":"320506006","name":"香山街道"},{"code":"320506009","name":"城南街道"},{"code":"320506010","name":"太湖街道"},{"code":"320506100","name":"甪直镇"},{"code":"320506103","name":"木渎镇"},{"code":"320506104","name":"胥口镇"},{"code":"320506107","name":"东山镇"},{"code":"320506108","name":"光福镇"},{"code":"320506109","name":"金庭镇"},{"code":"320506110","name":"临湖镇"},{"code":"320506400","name":"江苏省太湖采石公司"},{"code":"320506401","name":"吴中区林场"},{"code":"320506402","name":"西山农业园区"},{"code":"320506403","name":"穹窿山风景区"},{"code":"320506404","name":"开发区"},{"code":"320506405","name":"国家苏州太湖旅游度假区"}]},{"code":"320507","name":"相城区","children":[{"code":"320507001","name":"元和街道"},{"code":"320507002","name":"太平街道"},{"code":"320507003","name":"黄桥街道"},{"code":"320507004","name":"北桥街道"},{"code":"320507005","name":"北河泾街道"},{"code":"320507006","name":"漕湖街道"},{"code":"320507007","name":"澄阳街道"},{"code":"320507100","name":"望亭镇"},{"code":"320507102","name":"黄埭镇"},{"code":"320507105","name":"渭塘镇"},{"code":"320507109","name":"阳澄湖镇"},{"code":"320507401","name":"阳澄湖生态休闲旅游度假区"},{"code":"320507402","name":"苏州高铁新城"}]},{"code":"320508","name":"姑苏区","children":[{"code":"320508017","name":"白洋湾街道"},{"code":"320508018","name":"平江街道"},{"code":"320508019","name":"金阊街道"},{"code":"320508020","name":"沧浪街道"},{"code":"320508021","name":"双塔街道"},{"code":"320508022","name":"虎丘街道"},{"code":"320508023","name":"苏锦街道"},{"code":"320508024","name":"吴门桥街道"}]},{"code":"320509","name":"吴江区","children":[{"code":"320509001","name":"松陵街道"},{"code":"320509002","name":"横扇街道"},{"code":"320509003","name":"八坼街道"},{"code":"320509004","name":"江陵街道"},{"code":"320509104","name":"平望镇"},{"code":"320509105","name":"盛泽镇"},{"code":"320509107","name":"七都镇"},{"code":"320509108","name":"震泽镇"},{"code":"320509109","name":"桃源镇"},{"code":"320509110","name":"黎里镇"},{"code":"320509111","name":"同里镇"},{"code":"320509400","name":"吴江经济技术开发区"},{"code":"320509401","name":"东方丝绸市场"},{"code":"320509402","name":"东太湖生态旅游度假区"}]},{"code":"320571","name":"苏州工业园区","children":[{"code":"320571050","name":"娄葑街道"},{"code":"320571051","name":"斜塘街道"},{"code":"320571052","name":"唯亭街道"},{"code":"320571053","name":"胜浦街道"},{"code":"320571400","name":"湖西社区工作委员会"},{"code":"320571401","name":"湖东社区工作委员会"},{"code":"320571402","name":"月亮湾社区工作委员会"},{"code":"320571403","name":"东沙湖社区工作委员会"}]},{"code":"320581","name":"常熟市","children":[{"code":"320581001","name":"虞山街道"},{"code":"320581002","name":"常福街道"},{"code":"320581003","name":"琴川街道"},{"code":"320581004","name":"莫城街道"},{"code":"320581005","name":"碧溪街道"},{"code":"320581006","name":"东南街道"},{"code":"320581101","name":"梅李镇"},{"code":"320581102","name":"海虞镇"},{"code":"320581104","name":"古里镇"},{"code":"320581105","name":"沙家浜镇"},{"code":"320581106","name":"支塘镇"},{"code":"320581107","name":"董浜镇"},{"code":"320581110","name":"辛庄镇"},{"code":"320581111","name":"尚湖镇"},{"code":"320581401","name":"常熟经济技术开发区"},{"code":"320581402","name":"常熟高新技术产业开发区"},{"code":"320581406","name":"常熟昆承湖管理委员会"},{"code":"320581407","name":"常熟国家大学科技园"}]},{"code":"320582","name":"张家港市","children":[{"code":"320582001","name":"金港街道"},{"code":"320582002","name":"后塍街道"},{"code":"320582003","name":"德积街道"},{"code":"320582100","name":"杨舍镇"},{"code":"320582101","name":"塘桥镇"},{"code":"320582103","name":"锦丰镇"},{"code":"320582104","name":"乐余镇"},{"code":"320582105","name":"凤凰镇"},{"code":"320582106","name":"南丰镇"},{"code":"320582107","name":"大新镇"},{"code":"320582400","name":"张家港市现代农业示范园区"},{"code":"320582401","name":"张家港经济技术开发区"},{"code":"320582403","name":"张家港保税区"},{"code":"320582406","name":"张家港市冶金工业园"},{"code":"320582407","name":"双山岛旅游度假区"}]},{"code":"320583","name":"昆山市","children":[{"code":"320583100","name":"玉山镇"},{"code":"320583101","name":"巴城镇"},{"code":"320583102","name":"周市镇"},{"code":"320583103","name":"陆家镇"},{"code":"320583104","name":"花桥镇"},{"code":"320583106","name":"张浦镇"},{"code":"320583108","name":"千灯镇"},{"code":"320583400","name":"昆山开发区"},{"code":"320583401","name":"昆山旅游度假区"}]},{"code":"320585","name":"太仓市","children":[{"code":"320585100","name":"城厢镇"},{"code":"320585101","name":"沙溪镇"},{"code":"320585102","name":"浏河镇"},{"code":"320585103","name":"浮桥镇"},{"code":"320585104","name":"璜泾镇"},{"code":"320585105","name":"双凤镇"},{"code":"320585400","name":"经济开发区"},{"code":"320585403","name":"科教新城"}]}]},{"code":"3206","name":"南通市","children":[{"code":"320612","name":"通州区","children":[{"code":"320612001","name":"金沙街道"},{"code":"320612002","name":"兴东街道"},{"code":"320612003","name":"先锋街道"},{"code":"320612004","name":"金新街道"},{"code":"320612101","name":"西亭镇"},{"code":"320612102","name":"二甲镇"},{"code":"320612103","name":"东社镇"},{"code":"320612104","name":"三余镇"},{"code":"320612107","name":"十总镇"},{"code":"320612110","name":"石港镇"},{"code":"320612112","name":"刘桥镇"},{"code":"320612114","name":"平潮镇"},{"code":"320612116","name":"五接镇"},{"code":"320612117","name":"兴仁镇"},{"code":"320612119","name":"张芝山镇"},{"code":"320612120","name":"川姜镇"},{"code":"320612401","name":"环本农场"}]},{"code":"320613","name":"崇川区","children":[{"code":"320613001","name":"城东街道"},{"code":"320613002","name":"和平桥街道"},{"code":"320613003","name":"任港街道"},{"code":"320613004","name":"新城桥街道"},{"code":"320613005","name":"虹桥街道"},{"code":"320613006","name":"学田街道"},{"code":"320613007","name":"钟秀街道"},{"code":"320613008","name":"文峰街道"},{"code":"320613009","name":"观音山街道"},{"code":"320613010","name":"狼山镇街道"},{"code":"320613016","name":"永兴街道"},{"code":"320613017","name":"唐闸镇街道"},{"code":"320613018","name":"天生港镇街道"},{"code":"320613019","name":"秦灶街道"},{"code":"320613020","name":"陈桥街道"},{"code":"320613021","name":"幸福街道"},{"code":"320613401","name":"南通崇川经济开发区"},{"code":"320613402","name":"港闸开发区"},{"code":"320613403","name":"市北高新区"}]},{"code":"320614","name":"海门区","children":[{"code":"320614102","name":"海永镇"},{"code":"320614103","name":"常乐镇"},{"code":"320614104","name":"悦来镇"},{"code":"320614105","name":"四甲镇"},{"code":"320614106","name":"余东镇"},{"code":"320614107","name":"正余镇"},{"code":"320614400","name":"南通市海门区经济技术开发区"},{"code":"320614401","name":"南通市海门区永隆沙农场"},{"code":"320614403","name":"南通市海门区大东农场"},{"code":"320614404","name":"南通市海门区畜禽良种场"},{"code":"320614405","name":"南通市海门区种羊场"},{"code":"320614406","name":"南通市海门区包场渔场"},{"code":"320614407","name":"南通市海门区长江芦荡养殖场"},{"code":"320614408","name":"南通市海门市沿江渔场"},{"code":"320614409","name":"南通市海门区三厂苗圃"},{"code":"320614410","name":"南通市海门区农科所"},{"code":"320614412","name":"南通市海门区财政局芦荡管理所"},{"code":"320614413","name":"江苏省国营江心沙农场"},{"code":"320614414","name":"南通市海门区临江新区管理委员会"},{"code":"320614415","name":"海门港新区"},{"code":"320614416","name":"三星镇(叠石桥家纺产业园区)"},{"code":"320614418","name":"三厂工业园区"}]},{"code":"320623","name":"如东县","children":[{"code":"320623001","name":"掘港街道"},{"code":"320623002","name":"城中街道"},{"code":"320623003","name":"苴镇街道"},{"code":"320623100","name":"栟茶镇"},{"code":"320623101","name":"洋口镇"},{"code":"320623103","name":"长沙镇"},{"code":"320623104","name":"大豫镇"},{"code":"320623107","name":"马塘镇"},{"code":"320623108","name":"丰利镇"},{"code":"320623109","name":"曹埠镇"},{"code":"320623110","name":"岔河镇"},{"code":"320623111","name":"双甸镇"},{"code":"320623112","name":"新店镇"},{"code":"320623113","name":"河口镇"},{"code":"320623114","name":"袁庄镇"},{"code":"320623400","name":"如东县经济开发区"},{"code":"320623401","name":"如东沿海经济开发区"},{"code":"320623402","name":"如东洋口港经济开发区"},{"code":"320623403","name":"如东东安科技园区"},{"code":"320623404","name":"如东沿海旅游经济开发区"},{"code":"320623405","name":"南通外向型农业开发区"}]},{"code":"320671","name":"南通经济技术开发区","children":[{"code":"320671001","name":"中兴街道"},{"code":"320671002","name":"新开街道"},{"code":"320671003","name":"竹行街道"},{"code":"320671004","name":"小海街道"},{"code":"320671400","name":"江海镇区"},{"code":"320671401","name":"南通市经济技术开发区老洪港"},{"code":"320671403","name":"南通苏通科技产业园"}]},{"code":"320681","name":"启东市","children":[{"code":"320681100","name":"汇龙镇"},{"code":"320681101","name":"北新镇"},{"code":"320681102","name":"惠萍镇"},{"code":"320681104","name":"东海镇"},{"code":"320681106","name":"南阳镇"},{"code":"320681107","name":"海复镇"},{"code":"320681108","name":"合作镇"},{"code":"320681109","name":"王鲍镇"},{"code":"320681110","name":"吕四港镇"},{"code":"320681400","name":"启东经济开发区"},{"code":"320681401","name":"启东滨海工业园"},{"code":"320681402","name":"启东生命健康产业园"},{"code":"320681403","name":"江苏吕四海洋经济开发区"},{"code":"320681404","name":"启隆生态科技产业园"},{"code":"320681405","name":"启东海工船舶工业园"},{"code":"320681406","name":"启东江海产业园"},{"code":"320681407","name":"圆陀角旅游度假区"},{"code":"320681408","name":"启东生命健康科技园"}]},{"code":"320682","name":"如皋市","children":[{"code":"320682001","name":"如城街道"},{"code":"320682103","name":"东陈镇"},{"code":"320682104","name":"丁堰镇"},{"code":"320682105","name":"白蒲镇"},{"code":"320682107","name":"下原镇"},{"code":"320682108","name":"九华镇"},{"code":"320682110","name":"石庄镇"},{"code":"320682111","name":"长江镇"},{"code":"320682112","name":"吴窑镇"},{"code":"320682113","name":"江安镇"},{"code":"320682116","name":"搬经镇"},{"code":"320682117","name":"磨头镇"},{"code":"320682400","name":"如皋市经济开发区"},{"code":"320682401","name":"如皋高新技术产业开发区"},{"code":"320682402","name":"南通市粮棉原种场"},{"code":"320682403","name":"如皋市蚕种场"},{"code":"320682404","name":"如皋市良种场"},{"code":"320682406","name":"如皋市种猪场"},{"code":"320682407","name":"如皋市农科所"},{"code":"320682408","name":"如皋市江滨医院"},{"code":"320682409","name":"如皋市中心沙水产养殖场"}]},{"code":"320685","name":"海安市","children":[{"code":"320685100","name":"海安镇"},{"code":"320685101","name":"城东镇"},{"code":"320685102","name":"曲塘镇"},{"code":"320685103","name":"李堡镇"},{"code":"320685105","name":"角斜镇"},{"code":"320685107","name":"大公镇"},{"code":"320685109","name":"雅周镇"},{"code":"320685111","name":"白甸镇"},{"code":"320685112","name":"南莫镇"},{"code":"320685113","name":"墩头镇"},{"code":"320685400","name":"海安县农场"}]}]},{"code":"3207","name":"连云港市","children":[{"code":"320703","name":"连云区","children":[{"code":"320703001","name":"墟沟街道"},{"code":"320703003","name":"连云街道"},{"code":"320703004","name":"云山街道"},{"code":"320703005","name":"板桥街道"},{"code":"320703006","name":"连岛街道"},{"code":"320703007","name":"徐圩街道"},{"code":"320703008","name":"海州湾街道"},{"code":"320703009","name":"宿城街道"},{"code":"320703010","name":"高公岛街道"},{"code":"320703203","name":"前三岛乡"},{"code":"320703400","name":"连云港碱厂"},{"code":"320703401","name":"东辛农场"},{"code":"320703402","name":"连云经济技术开发区"}]},{"code":"320706","name":"海州区","children":[{"code":"320706001","name":"朐阳街道"},{"code":"320706006","name":"新海街道"},{"code":"320706009","name":"云台街道"},{"code":"320706010","name":"新浦街道"},{"code":"320706011","name":"海州街道"},{"code":"320706012","name":"幸福路街道"},{"code":"320706013","name":"洪门街道"},{"code":"320706014","name":"宁海街道"},{"code":"320706016","name":"浦西街道"},{"code":"320706017","name":"新东街道"},{"code":"320706018","name":"新南街道"},{"code":"320706019","name":"路南街道"},{"code":"320706020","name":"花果山街道"},{"code":"320706021","name":"南城街道"},{"code":"320706022","name":"郁州街道"},{"code":"320706100","name":"锦屏镇"},{"code":"320706102","name":"新坝镇"},{"code":"320706103","name":"板浦镇"},{"code":"320706104","name":"浦南镇"},{"code":"320706402","name":"岗埠农场"},{"code":"320706403","name":"新浦经济开发区"},{"code":"320706404","name":"海州经济开发区"},{"code":"320706405","name":"高新技术开发区"},{"code":"320706406","name":"云台农场"}]},{"code":"320707","name":"赣榆区","children":[{"code":"320707100","name":"青口镇"},{"code":"320707101","name":"柘汪镇"},{"code":"320707102","name":"石桥镇"},{"code":"320707103","name":"金山镇"},{"code":"320707104","name":"黑林镇"},{"code":"320707105","name":"厉庄镇"},{"code":"320707106","name":"海头镇"},{"code":"320707107","name":"塔山镇"},{"code":"320707108","name":"赣马镇"},{"code":"320707109","name":"班庄镇"},{"code":"320707110","name":"城头镇"},{"code":"320707112","name":"城西镇"},{"code":"320707114","name":"宋庄镇"},{"code":"320707115","name":"沙河镇"},{"code":"320707116","name":"墩尚镇"},{"code":"320707400","name":"沙河子园艺场"},{"code":"320707402","name":"赣榆海洋经济开发区"},{"code":"320707403","name":"赣榆经济开发区"}]},{"code":"320722","name":"东海县","children":[{"code":"320722001","name":"牛山街道"},{"code":"320722002","name":"石榴街道"},{"code":"320722101","name":"白塔埠镇"},{"code":"320722103","name":"黄川镇"},{"code":"320722104","name":"石梁河镇"},{"code":"320722105","name":"青湖镇"},{"code":"320722107","name":"温泉镇"},{"code":"320722108","name":"双店镇"},{"code":"320722109","name":"桃林镇"},{"code":"320722110","name":"洪庄镇"},{"code":"320722111","name":"安峰镇"},{"code":"320722112","name":"房山镇"},{"code":"320722113","name":"平明镇"},{"code":"320722200","name":"驼峰乡"},{"code":"320722203","name":"李埝乡"},{"code":"320722204","name":"山左口乡"},{"code":"320722205","name":"石湖乡"},{"code":"320722206","name":"曲阳乡"},{"code":"320722207","name":"张湾乡"},{"code":"320722401","name":"江苏东海经济开发区"},{"code":"320722402","name":"江苏东海高新技术开发区"}]},{"code":"320723","name":"灌云县","children":[{"code":"320723001","name":"侍庄街道"},{"code":"320723100","name":"伊山镇"},{"code":"320723102","name":"杨集镇"},{"code":"320723103","name":"燕尾港镇"},{"code":"320723104","name":"同兴镇"},{"code":"320723105","name":"四队镇"},{"code":"320723106","name":"圩丰镇"},{"code":"320723107","name":"龙苴镇"},{"code":"320723108","name":"下车镇"},{"code":"320723109","name":"图河镇"},{"code":"320723110","name":"东王集镇"},{"code":"320723111","name":"小伊镇"},{"code":"320723112","name":"南岗镇"},{"code":"320723401","name":"五图河农场"},{"code":"320723402","name":"灌西盐场"},{"code":"320723403","name":"灌云经济开发区"},{"code":"320723404","name":"灌云临港产业区"}]},{"code":"320724","name":"灌南县","children":[{"code":"320724100","name":"新安镇"},{"code":"320724101","name":"堆沟港镇"},{"code":"320724102","name":"田楼镇"},{"code":"320724103","name":"北陈集镇"},{"code":"320724104","name":"张店镇"},{"code":"320724105","name":"三口镇"},{"code":"320724106","name":"孟兴庄镇"},{"code":"320724107","name":"汤沟镇"},{"code":"320724108","name":"百禄镇"},{"code":"320724109","name":"新集镇"},{"code":"320724110","name":"李集镇"}]},{"code":"320771","name":"连云港经济技术开发区","children":[{"code":"320771001","name":"中云街道"},{"code":"320771002","name":"猴嘴街道"},{"code":"320771003","name":"朝阳街道"},{"code":"320771450","name":"青口盐场"}]},{"code":"320772","name":"连云港高新技术产业开发区","children":[{"code":"320772401","name":"南云台林场"}]}]},{"code":"3208","name":"淮安市","children":[{"code":"320803","name":"淮安区","children":[{"code":"320803001","name":"淮城街道"},{"code":"320803002","name":"河下街道"},{"code":"320803004","name":"山阳街道"},{"code":"320803101","name":"平桥镇"},{"code":"320803104","name":"朱桥镇"},{"code":"320803106","name":"施河镇"},{"code":"320803107","name":"车桥镇"},{"code":"320803109","name":"流均镇"},{"code":"320803110","name":"博里镇"},{"code":"320803112","name":"复兴镇"},{"code":"320803113","name":"苏嘴镇"},{"code":"320803114","name":"钦工镇"},{"code":"320803115","name":"顺河镇"},{"code":"320803121","name":"漕运镇"},{"code":"320803122","name":"石塘镇"},{"code":"320803123","name":"范集镇"},{"code":"320803400","name":"白马湖农场"},{"code":"320803401","name":"经济开发区"},{"code":"320803402","name":"淮安新材料产业园"}]},{"code":"320804","name":"淮阴区","children":[{"code":"320804001","name":"长江路街道"},{"code":"320804002","name":"王家营街道"},{"code":"320804003","name":"新渡口街道"},{"code":"320804004","name":"古清口街道"},{"code":"320804103","name":"南陈集镇"},{"code":"320804107","name":"丁集镇"},{"code":"320804109","name":"徐溜镇"},{"code":"320804110","name":"渔沟镇"},{"code":"320804113","name":"三树镇"},{"code":"320804114","name":"高家堰镇"},{"code":"320804115","name":"马头镇"},{"code":"320804116","name":"刘老庄镇"},{"code":"320804117","name":"淮高镇"},{"code":"320804400","name":"淮安高新技术产业开发区"}]},{"code":"320812","name":"清江浦区","children":[{"code":"320812001","name":"城南街道"},{"code":"320812002","name":"清江街道"},{"code":"320812003","name":"浦楼街道"},{"code":"320812004","name":"闸口街道"},{"code":"320812005","name":"清浦街道"},{"code":"320812006","name":"府前街道"},{"code":"320812007","name":"长西街道"},{"code":"320812008","name":"淮海街道"},{"code":"320812009","name":"长东街道"},{"code":"320812010","name":"柳树湾街道"},{"code":"320812011","name":"水渡口街道"},{"code":"320812012","name":"清河街道"},{"code":"320812013","name":"武墩街道"},{"code":"320812014","name":"盐河街道"},{"code":"320812100","name":"和平镇"},{"code":"320812103","name":"黄码镇"},{"code":"320812450","name":"宁连路"}]},{"code":"320813","name":"洪泽区","children":[{"code":"320813001","name":"高良涧街道"},{"code":"320813002","name":"朱坝街道"},{"code":"320813003","name":"黄集街道"},{"code":"320813101","name":"蒋坝镇"},{"code":"320813103","name":"岔河镇"},{"code":"320813104","name":"西顺河镇"},{"code":"320813105","name":"老子山镇"},{"code":"320813106","name":"三河镇"},{"code":"320813110","name":"东双沟镇"},{"code":"320813400","name":"洪泽经济开发区"}]},{"code":"320826","name":"涟水县","children":[{"code":"320826001","name":"涟城街道"},{"code":"320826002","name":"朱码街道"},{"code":"320826003","name":"陈师街道"},{"code":"320826004","name":"保滩街道"},{"code":"320826101","name":"高沟镇"},{"code":"320826102","name":"唐集镇"},{"code":"320826104","name":"大东镇"},{"code":"320826105","name":"五港镇"},{"code":"320826106","name":"梁岔镇"},{"code":"320826107","name":"石湖镇"},{"code":"320826109","name":"岔庙镇"},{"code":"320826110","name":"东胡集镇"},{"code":"320826111","name":"南集镇"},{"code":"320826113","name":"成集镇"},{"code":"320826114","name":"红窑镇"},{"code":"320826117","name":"黄营镇"}]},{"code":"320830","name":"盱眙县","children":[{"code":"320830001","name":"盱城街道"},{"code":"320830002","name":"太和街道"},{"code":"320830003","name":"古桑街道"},{"code":"320830101","name":"马坝镇"},{"code":"320830102","name":"官滩镇"},{"code":"320830104","name":"桂五镇"},{"code":"320830106","name":"河桥镇"},{"code":"320830107","name":"鲍集镇"},{"code":"320830108","name":"黄花塘镇"},{"code":"320830111","name":"淮河镇"},{"code":"320830114","name":"天泉湖镇"},{"code":"320830115","name":"管仲镇"},{"code":"320830116","name":"穆店镇"},{"code":"320830400","name":"三河农场"},{"code":"320830401","name":"淮化集团"}]},{"code":"320831","name":"金湖县","children":[{"code":"320831001","name":"黎城街道"},{"code":"320831002","name":"戴楼街道"},{"code":"320831003","name":"金北街道"},{"code":"320831101","name":"金南镇"},{"code":"320831103","name":"塔集镇"},{"code":"320831106","name":"前锋镇"},{"code":"320831107","name":"吕良镇"},{"code":"320831111","name":"银涂镇"},{"code":"320831400","name":"宝应湖农场"},{"code":"320831401","name":"复兴圩农场"},{"code":"320831402","name":"粮棉原种场"},{"code":"320831403","name":"金湖经济开发区"}]},{"code":"320871","name":"淮安经济技术开发区","children":[{"code":"320871001","name":"钵池街道"},{"code":"320871002","name":"徐杨街道"},{"code":"320871003","name":"南马厂街道"},{"code":"320871004","name":"枚乘街道"},{"code":"320871401","name":"新港"},{"code":"320871405","name":"金港路"},{"code":"320871410","name":"富城路"},{"code":"320871411","name":"福地路"},{"code":"320871412","name":"高铁商务区"},{"code":"320871420","name":"张码"},{"code":"320871421","name":"淮洪路"}]}]},{"code":"3209","name":"盐城市","children":[{"code":"320902","name":"亭湖区","children":[{"code":"320902001","name":"五星街道"},{"code":"320902002","name":"文峰街道"},{"code":"320902003","name":"先锋街道"},{"code":"320902004","name":"毓龙街道"},{"code":"320902007","name":"新洋街道"},{"code":"320902008","name":"大洋街道"},{"code":"320902050","name":"伍佑街道"},{"code":"320902051","name":"黄海街道"},{"code":"320902052","name":"新河街道"},{"code":"320902100","name":"南洋镇"},{"code":"320902102","name":"新兴镇"},{"code":"320902104","name":"便仓镇"},{"code":"320902107","name":"盐东镇"},{"code":"320902108","name":"黄尖镇"},{"code":"320902400","name":"亭湖新区"},{"code":"320902402","name":"环保产业园"}]},{"code":"320903","name":"盐都区","children":[{"code":"320903002","name":"张庄街道"},{"code":"320903003","name":"盐龙街道"},{"code":"320903004","name":"潘黄街道"},{"code":"320903012","name":"盐渎街道"},{"code":"320903050","name":"新都街道"},{"code":"320903051","name":"科城街道"},{"code":"320903100","name":"大纵湖镇"},{"code":"320903102","name":"楼王镇"},{"code":"320903103","name":"学富镇"},{"code":"320903105","name":"尚庄镇"},{"code":"320903108","name":"秦南镇"},{"code":"320903109","name":"龙冈镇"},{"code":"320903111","name":"郭猛镇"},{"code":"320903112","name":"大冈镇"},{"code":"320903403","name":"大纵湖旅游度假区"},{"code":"320903404","name":"台湾农民创业园"}]},{"code":"320904","name":"大丰区","children":[{"code":"320904001","name":"丰华街道"},{"code":"320904002","name":"大中街道"},{"code":"320904101","name":"草堰镇"},{"code":"320904102","name":"白驹镇"},{"code":"320904103","name":"刘庄镇"},{"code":"320904104","name":"西团镇"},{"code":"320904105","name":"小海镇"},{"code":"320904106","name":"大桥镇"},{"code":"320904107","name":"草庙镇"},{"code":"320904108","name":"万盈镇"},{"code":"320904109","name":"南阳镇"},{"code":"320904110","name":"新丰镇"},{"code":"320904111","name":"三龙镇"},{"code":"320904400","name":"大中农场"},{"code":"320904401","name":"方强农场"},{"code":"320904402","name":"东坝头农场"},{"code":"320904403","name":"大丰经济开发区管委会"},{"code":"320904404","name":"大丰港经济开发区管委会"},{"code":"320904405","name":"大丰常州高新区管委会"}]},{"code":"320921","name":"响水县","children":[{"code":"320921100","name":"响水镇"},{"code":"320921101","name":"陈家港镇"},{"code":"320921102","name":"小尖镇"},{"code":"320921103","name":"黄圩镇"},{"code":"320921104","name":"大有镇"},{"code":"320921105","name":"双港镇"},{"code":"320921106","name":"南河镇"},{"code":"320921107","name":"运河镇"},{"code":"320921400","name":"县开发区"},{"code":"320921401","name":"省属黄海农场"},{"code":"320921402","name":"省属灌东盐场"}]},{"code":"320922","name":"滨海县","children":[{"code":"320922001","name":"东坎街道"},{"code":"320922002","name":"坎南街道"},{"code":"320922003","name":"坎北街道"},{"code":"320922101","name":"五汛镇"},{"code":"320922102","name":"蔡桥镇"},{"code":"320922103","name":"正红镇"},{"code":"320922104","name":"通榆镇"},{"code":"320922105","name":"界牌镇"},{"code":"320922106","name":"八巨镇"},{"code":"320922107","name":"八滩镇"},{"code":"320922109","name":"滨淮镇"},{"code":"320922110","name":"天场镇"},{"code":"320922111","name":"陈涛镇"},{"code":"320922112","name":"滨海港镇"},{"code":"320922400","name":"滨淮农场"},{"code":"320922401","name":"新滩盐场"},{"code":"320922403","name":"开发区沿海工业园"},{"code":"320922404","name":"滨海港经济区"},{"code":"320922405","name":"滨海县现代农业产业园区"}]},{"code":"320923","name":"阜宁县","children":[{"code":"320923001","name":"阜城街道"},{"code":"320923002","name":"吴滩街道"},{"code":"320923003","name":"花园街道"},{"code":"320923004","name":"金沙湖街道"},{"code":"320923100","name":"沟墩镇"},{"code":"320923101","name":"陈良镇"},{"code":"320923102","name":"三灶镇"},{"code":"320923103","name":"郭墅镇"},{"code":"320923104","name":"新沟镇"},{"code":"320923105","name":"陈集镇"},{"code":"320923106","name":"羊寨镇"},{"code":"320923107","name":"芦蒲镇"},{"code":"320923108","name":"板湖镇"},{"code":"320923109","name":"东沟镇"},{"code":"320923110","name":"益林镇"},{"code":"320923111","name":"古河镇"},{"code":"320923112","name":"罗桥镇"},{"code":"320923402","name":"现代服务业园区"}]},{"code":"320924","name":"射阳县","children":[{"code":"320924100","name":"合德镇"},{"code":"320924101","name":"临海镇"},{"code":"320924102","name":"千秋镇"},{"code":"320924104","name":"四明镇"},{"code":"320924106","name":"海河镇"},{"code":"320924108","name":"海通镇"},{"code":"320924109","name":"兴桥镇"},{"code":"320924110","name":"新坍镇"},{"code":"320924111","name":"长荡镇"},{"code":"320924112","name":"盘湾镇"},{"code":"320924113","name":"特庸镇"},{"code":"320924114","name":"洋马镇"},{"code":"320924117","name":"黄沙港镇"},{"code":"320924400","name":"县经济开发区"},{"code":"320924401","name":"淮海农场"},{"code":"320924402","name":"临海农场"},{"code":"320924403","name":"新洋农场"},{"code":"320924404","name":"盐场"},{"code":"320924406","name":"射阳港经济区"}]},{"code":"320925","name":"建湖县","children":[{"code":"320925001","name":"近湖街道"},{"code":"320925050","name":"钟庄街道"},{"code":"320925051","name":"塘河街道"},{"code":"320925101","name":"建阳镇"},{"code":"320925102","name":"九龙口镇"},{"code":"320925103","name":"恒济镇"},{"code":"320925104","name":"颜单镇"},{"code":"320925105","name":"沿河镇"},{"code":"320925106","name":"芦沟镇"},{"code":"320925107","name":"庆丰镇"},{"code":"320925108","name":"上冈镇"},{"code":"320925111","name":"冈西镇"},{"code":"320925113","name":"宝塔镇"},{"code":"320925114","name":"高作镇"}]},{"code":"320971","name":"盐城经济技术开发区","children":[{"code":"320971001","name":"新城街道"},{"code":"320971100","name":"步凤镇"}]},{"code":"320981","name":"东台市","children":[{"code":"320981100","name":"溱东镇"},{"code":"320981101","name":"时堰镇"},{"code":"320981106","name":"五烈镇"},{"code":"320981107","name":"梁垛镇"},{"code":"320981108","name":"安丰镇"},{"code":"320981109","name":"南沈灶镇"},{"code":"320981110","name":"富安镇"},{"code":"320981112","name":"唐洋镇"},{"code":"320981113","name":"新街镇"},{"code":"320981114","name":"许河镇"},{"code":"320981115","name":"三仓镇"},{"code":"320981118","name":"头灶镇"},{"code":"320981121","name":"弶港镇"},{"code":"320981122","name":"东台镇"},{"code":"320981400","name":"江苏省新曹农场"},{"code":"320981401","name":"江苏省弶港农场"},{"code":"320981409","name":"开发区"},{"code":"320981410","name":"沿海经济区"},{"code":"320981411","name":"高新区"},{"code":"320981412","name":"西溪景区"},{"code":"320981413","name":"黄海森林公园"}]}]},{"code":"3210","name":"扬州市","children":[{"code":"321002","name":"广陵区","children":[{"code":"321002001","name":"东关街道"},{"code":"321002002","name":"汶河街道"},{"code":"321002003","name":"文峰街道"},{"code":"321002004","name":"曲江街道"},{"code":"321002005","name":"汤汪街道"},{"code":"321002102","name":"李典镇"},{"code":"321002103","name":"沙头镇"},{"code":"321002104","name":"头桥镇"},{"code":"321002106","name":"湾头镇"},{"code":"321002400","name":"广陵经济开发区"},{"code":"321002401","name":"扬州市生态科技新城杭集镇"},{"code":"321002402","name":"扬州市生态科技新城泰安镇"}]},{"code":"321003","name":"邗江区","children":[{"code":"321003001","name":"邗上街道"},{"code":"321003002","name":"蒋王街道"},{"code":"321003003","name":"汊河街道"},{"code":"321003005","name":"双桥街道"},{"code":"321003006","name":"梅岭街道"},{"code":"321003007","name":"甘泉街道"},{"code":"321003009","name":"新盛街道"},{"code":"321003010","name":"竹西街道"},{"code":"321003011","name":"西湖街道"},{"code":"321003052","name":"瘦西湖街道"},{"code":"321003053","name":"城北街道"},{"code":"321003100","name":"公道镇"},{"code":"321003101","name":"方巷镇"},{"code":"321003102","name":"槐泗镇"},{"code":"321003103","name":"瓜洲镇"},{"code":"321003108","name":"杨寿镇"},{"code":"321003110","name":"杨庙镇"},{"code":"321003201","name":"双桥乡"},{"code":"321003350","name":"平山乡"},{"code":"321003401","name":"江苏省扬州高新技术产业开发区"},{"code":"321003402","name":"维扬经济开发区"},{"code":"321003403","name":"物流园区"}]},{"code":"321012","name":"江都区","children":[{"code":"321012100","name":"仙女镇"},{"code":"321012101","name":"小纪镇"},{"code":"321012103","name":"武坚镇"},{"code":"321012106","name":"樊川镇"},{"code":"321012108","name":"真武镇"},{"code":"321012109","name":"宜陵镇"},{"code":"321012110","name":"丁沟镇"},{"code":"321012112","name":"郭村镇"},{"code":"321012114","name":"邵伯镇"},{"code":"321012116","name":"丁伙镇"},{"code":"321012118","name":"大桥镇"},{"code":"321012119","name":"吴桥镇"},{"code":"321012120","name":"浦头镇"},{"code":"321012400","name":"立新农场"}]},{"code":"321023","name":"宝应县","children":[{"code":"321023100","name":"安宜镇"},{"code":"321023101","name":"氾水镇"},{"code":"321023102","name":"夏集镇"},{"code":"321023103","name":"柳堡镇"},{"code":"321023104","name":"射阳湖镇"},{"code":"321023105","name":"广洋湖镇"},{"code":"321023106","name":"鲁垛镇"},{"code":"321023107","name":"小官庄镇"},{"code":"321023108","name":"望直港镇"},{"code":"321023109","name":"曹甸镇"},{"code":"321023110","name":"西安丰镇"},{"code":"321023111","name":"山阳镇"},{"code":"321023112","name":"黄塍镇"},{"code":"321023113","name":"泾河镇"},{"code":"321023400","name":"开发区管委会"}]},{"code":"321071","name":"扬州经济技术开发区","children":[{"code":"321071050","name":"扬子津街道"},{"code":"321071051","name":"文汇街道"},{"code":"321071150","name":"施桥镇"},{"code":"321071151","name":"八里镇"},{"code":"321071152","name":"朴席镇"}]},{"code":"321081","name":"仪征市","children":[{"code":"321081100","name":"真州镇"},{"code":"321081103","name":"新集镇"},{"code":"321081104","name":"新城镇"},{"code":"321081105","name":"马集镇"},{"code":"321081106","name":"刘集镇"},{"code":"321081107","name":"陈集镇"},{"code":"321081108","name":"大仪镇"},{"code":"321081109","name":"月塘镇"},{"code":"321081150","name":"青山镇"},{"code":"321081401","name":"原种场"},{"code":"321081402","name":"蚕种场"},{"code":"321081403","name":"园艺试验场"},{"code":"321081404","name":"水产试验场"},{"code":"321081405","name":"捺山茶场"},{"code":"321081407","name":"汽车工业园"},{"code":"321081410","name":"开发区"},{"code":"321081412","name":"枣林湾旅游度假区"},{"code":"321081454","name":"化学工业园区"}]},{"code":"321084","name":"高邮市","children":[{"code":"321084001","name":"高邮街道"},{"code":"321084101","name":"龙虬镇"},{"code":"321084106","name":"汤庄镇"},{"code":"321084107","name":"卸甲镇"},{"code":"321084108","name":"三垛镇"},{"code":"321084109","name":"甘垛镇"},{"code":"321084112","name":"界首镇"},{"code":"321084113","name":"周山镇"},{"code":"321084115","name":"临泽镇"},{"code":"321084116","name":"送桥镇"},{"code":"321084200","name":"菱塘回族乡"},{"code":"321084401","name":"城南经济新区(车逻镇)"},{"code":"321084406","name":"经济开发区(马棚街道)"}]}]},{"code":"3211","name":"镇江市","children":[{"code":"321102","name":"京口区","children":[{"code":"321102001","name":"正东路街道"},{"code":"321102002","name":"健康路街道"},{"code":"321102003","name":"大市口街道"},{"code":"321102004","name":"四牌楼街道"},{"code":"321102005","name":"象山街道"},{"code":"321102006","name":"谏壁街道"},{"code":"321102400","name":"京口经济开发区"},{"code":"321102401","name":"新民洲临港产业园"}]},{"code":"321111","name":"润州区","children":[{"code":"321111001","name":"宝塔路街道"},{"code":"321111002","name":"和平路街道"},{"code":"321111003","name":"金山街道"},{"code":"321111004","name":"七里甸街道"},{"code":"321111005","name":"蒋乔街道"},{"code":"321111006","name":"官塘桥街道"},{"code":"321111007","name":"韦岗街道"},{"code":"321111008","name":"南山街道"}]},{"code":"321112","name":"丹徒区","children":[{"code":"321112001","name":"高资街道"},{"code":"321112002","name":"宜城街道"},{"code":"321112100","name":"高桥镇"},{"code":"321112101","name":"辛丰镇"},{"code":"321112102","name":"谷阳镇"},{"code":"321112103","name":"上党镇"},{"code":"321112104","name":"宝堰镇"},{"code":"321112105","name":"世业镇"},{"code":"321112401","name":"江心洲生态农业园区"},{"code":"321112402","name":"荣炳盐资源区"}]},{"code":"321171","name":"镇江新区","children":[{"code":"321171001","name":"丁卯街道"},{"code":"321171002","name":"大港街道"},{"code":"321171100","name":"姚桥镇"},{"code":"321171101","name":"大路镇"},{"code":"321171102","name":"丁岗镇"}]},{"code":"321181","name":"丹阳市","children":[{"code":"321181001","name":"云阳街道"},{"code":"321181002","name":"曲阿街道"},{"code":"321181100","name":"司徒镇"},{"code":"321181101","name":"延陵镇"},{"code":"321181102","name":"珥陵镇"},{"code":"321181103","name":"导墅镇"},{"code":"321181104","name":"皇塘镇"},{"code":"321181105","name":"吕城镇"},{"code":"321181106","name":"陵口镇"},{"code":"321181107","name":"访仙镇"},{"code":"321181108","name":"界牌镇"},{"code":"321181113","name":"丹北镇"}]},{"code":"321182","name":"扬中市","children":[{"code":"321182001","name":"三茅街道"},{"code":"321182101","name":"新坝镇"},{"code":"321182102","name":"油坊镇"},{"code":"321182103","name":"八桥镇"},{"code":"321182104","name":"西来桥镇"},{"code":"321182400","name":"经济开发区"}]},{"code":"321183","name":"句容市","children":[{"code":"321183002","name":"华阳街道"},{"code":"321183003","name":"黄梅街道"},{"code":"321183102","name":"下蜀镇"},{"code":"321183103","name":"白兔镇"},{"code":"321183104","name":"边城镇"},{"code":"321183105","name":"茅山镇"},{"code":"321183106","name":"后白镇"},{"code":"321183107","name":"郭庄镇"},{"code":"321183108","name":"天王镇"},{"code":"321183109","name":"宝华镇"},{"code":"321183429","name":"茅山管委会"}]}]},{"code":"3212","name":"泰州市","children":[{"code":"321202","name":"海陵区","children":[{"code":"321202001","name":"城东街道"},{"code":"321202002","name":"城西街道"},{"code":"321202003","name":"城南街道"},{"code":"321202004","name":"城中街道"},{"code":"321202005","name":"城北街道"},{"code":"321202007","name":"京泰路街道"},{"code":"321202050","name":"红旗街道"},{"code":"321202100","name":"九龙镇"},{"code":"321202101","name":"罡杨镇"},{"code":"321202102","name":"苏陈镇"},{"code":"321202103","name":"华港镇"},{"code":"321202406","name":"海陵工业园区"},{"code":"321202407","name":"农业示范园区"},{"code":"321202408","name":"火车站街区"}]},{"code":"321203","name":"高港区","children":[{"code":"321203001","name":"口岸街道"},{"code":"321203002","name":"刁铺街道"},{"code":"321203003","name":"许庄街道"},{"code":"321203004","name":"凤凰街道"},{"code":"321203005","name":"寺巷街道"},{"code":"321203006","name":"明珠街道"},{"code":"321203007","name":"沿江街道"},{"code":"321203100","name":"永安洲镇"},{"code":"321203101","name":"白马镇"},{"code":"321203103","name":"胡庄镇"},{"code":"321203104","name":"大泗镇"},{"code":"321203105","name":"野徐镇"},{"code":"321203400","name":"泰州港经济开发区"},{"code":"321203401","name":"医药产业园"},{"code":"321203402","name":"电子信息产业园"},{"code":"321203403","name":"数据产业园"}]},{"code":"321204","name":"姜堰区","children":[{"code":"321204001","name":"罗塘街道"},{"code":"321204002","name":"三水街道"},{"code":"321204003","name":"天目山街道"},{"code":"321204004","name":"梁徐街道"},{"code":"321204101","name":"溱潼镇"},{"code":"321204102","name":"蒋垛镇"},{"code":"321204103","name":"顾高镇"},{"code":"321204104","name":"大伦镇"},{"code":"321204105","name":"张甸镇"},{"code":"321204110","name":"淤溪镇"},{"code":"321204111","name":"白米镇"},{"code":"321204112","name":"娄庄镇"},{"code":"321204115","name":"俞垛镇"},{"code":"321204401","name":"溱湖风景区"},{"code":"321204403","name":"林场"},{"code":"321204404","name":"种猪场"},{"code":"321204405","name":"林业站"},{"code":"321204406","name":"渔业社"}]},{"code":"321271","name":"泰州医药高新技术产业开发区","children":[{"code":"321271400","name":"泰州经济开发区"}]},{"code":"321281","name":"兴化市","children":[{"code":"321281001","name":"昭阳街道"},{"code":"321281002","name":"临城街道"},{"code":"321281003","name":"垛田街道"},{"code":"321281100","name":"戴窑镇"},{"code":"321281101","name":"合陈镇"},{"code":"321281102","name":"永丰镇"},{"code":"321281103","name":"新垛镇"},{"code":"321281104","name":"安丰镇"},{"code":"321281105","name":"海南镇"},{"code":"321281106","name":"钓鱼镇"},{"code":"321281107","name":"大邹镇"},{"code":"321281108","name":"沙沟镇"},{"code":"321281109","name":"中堡镇"},{"code":"321281114","name":"竹泓镇"},{"code":"321281115","name":"沈伦镇"},{"code":"321281116","name":"大垛镇"},{"code":"321281117","name":"荻垛镇"},{"code":"321281118","name":"陶庄镇"},{"code":"321281119","name":"昌荣镇"},{"code":"321281121","name":"周庄镇"},{"code":"321281122","name":"陈堡镇"},{"code":"321281123","name":"戴南镇"},{"code":"321281126","name":"大营镇"},{"code":"321281129","name":"兴东镇"},{"code":"321281130","name":"千垛镇"},{"code":"321281204","name":"林湖乡"},{"code":"321281400","name":"开发区"},{"code":"321281401","name":"良种场"}]},{"code":"321282","name":"靖江市","children":[{"code":"321282001","name":"靖城街道"},{"code":"321282101","name":"新桥镇"},{"code":"321282102","name":"东兴镇"},{"code":"321282103","name":"斜桥镇"},{"code":"321282104","name":"西来镇"},{"code":"321282105","name":"季市镇"},{"code":"321282106","name":"孤山镇"},{"code":"321282108","name":"生祠镇"},{"code":"321282109","name":"马桥镇"},{"code":"321282401","name":"城南"},{"code":"321282402","name":"新港城"},{"code":"321282403","name":"城北园区"},{"code":"321282404","name":"江阴园区"},{"code":"321282406","name":"滨江新城"}]},{"code":"321283","name":"泰兴市","children":[{"code":"321283001","name":"济川街道"},{"code":"321283002","name":"延令街道"},{"code":"321283003","name":"姚王街道"},{"code":"321283100","name":"黄桥镇"},{"code":"321283101","name":"分界镇"},{"code":"321283102","name":"古溪镇"},{"code":"321283104","name":"元竹镇"},{"code":"321283105","name":"珊瑚镇"},{"code":"321283106","name":"广陵镇"},{"code":"321283108","name":"曲霞镇"},{"code":"321283109","name":"张桥镇"},{"code":"321283112","name":"河失镇"},{"code":"321283113","name":"新街镇"},{"code":"321283115","name":"宣堡镇"},{"code":"321283123","name":"滨江镇"},{"code":"321283124","name":"虹桥镇"},{"code":"321283200","name":"根思乡"},{"code":"321283401","name":"市农科所"},{"code":"321283402","name":"城东高新技术产业园"},{"code":"321283403","name":"农产品加工园"}]}]},{"code":"3213","name":"宿迁市","children":[{"code":"321302","name":"宿城区","children":[{"code":"321302001","name":"幸福街道"},{"code":"321302002","name":"项里街道"},{"code":"321302003","name":"河滨街道"},{"code":"321302004","name":"古城街道"},{"code":"321302005","name":"双庄街道"},{"code":"321302006","name":"支口街道"},{"code":"321302007","name":"洋北街道"},{"code":"321302101","name":"耿车镇"},{"code":"321302102","name":"埠子镇"},{"code":"321302103","name":"龙河镇"},{"code":"321302107","name":"中扬镇"},{"code":"321302109","name":"陈集镇"},{"code":"321302110","name":"蔡集镇"},{"code":"321302111","name":"王官集镇"},{"code":"321302112","name":"屠园镇"},{"code":"321302150","name":"洋河镇"},{"code":"321302400","name":"宿城开发区"},{"code":"321302450","name":"苏州宿迁工业园"}]},{"code":"321311","name":"宿豫区","children":[{"code":"321311001","name":"顺河街道"},{"code":"321311002","name":"豫新街道"},{"code":"321311003","name":"下相街道"},{"code":"321311004","name":"晓店街道"},{"code":"321311005","name":"井头街道"},{"code":"321311006","name":"陆集街道"},{"code":"321311105","name":"仰化镇"},{"code":"321311106","name":"大兴镇"},{"code":"321311108","name":"来龙镇"},{"code":"321311111","name":"关庙镇"},{"code":"321311113","name":"新庄镇"},{"code":"321311151","name":"皂河镇"},{"code":"321311201","name":"曹集乡"},{"code":"321311401","name":"宿豫经济开发区"},{"code":"321311402","name":"宿迁生态化工科技产业园"},{"code":"321311403","name":"张家港宿豫工业园"},{"code":"321311450","name":"嶂山林场"},{"code":"321311451","name":"宿迁市软件与服务外包产业园"}]},{"code":"321322","name":"沭阳县","children":[{"code":"321322001","name":"沭城街道"},{"code":"321322002","name":"南湖街道"},{"code":"321322003","name":"梦溪街道"},{"code":"321322004","name":"十字街道"},{"code":"321322005","name":"章集街道"},{"code":"321322006","name":"七雄街道"},{"code":"321322101","name":"陇集镇"},{"code":"321322102","name":"胡集镇"},{"code":"321322103","name":"钱集镇"},{"code":"321322104","name":"塘沟镇"},{"code":"321322105","name":"马厂镇"},{"code":"321322106","name":"沂涛镇"},{"code":"321322107","name":"庙头镇"},{"code":"321322108","name":"韩山镇"},{"code":"321322109","name":"华冲镇"},{"code":"321322110","name":"桑墟镇"},{"code":"321322111","name":"悦来镇"},{"code":"321322112","name":"刘集镇"},{"code":"321322114","name":"李恒镇"},{"code":"321322115","name":"扎下镇"},{"code":"321322116","name":"颜集镇"},{"code":"321322117","name":"潼阳镇"},{"code":"321322118","name":"龙庙镇"},{"code":"321322119","name":"高墟镇"},{"code":"321322120","name":"耿圩镇"},{"code":"321322124","name":"新河镇"},{"code":"321322125","name":"贤官镇"},{"code":"321322126","name":"吴集镇"},{"code":"321322128","name":"青伊湖镇"},{"code":"321322205","name":"西圩乡"},{"code":"321322401","name":"沭阳经济开发区"},{"code":"321322402","name":"昆山(沭阳)工业园区"}]},{"code":"321323","name":"泗阳县","children":[{"code":"321323001","name":"众兴街道"},{"code":"321323002","name":"城厢街道"},{"code":"321323003","name":"来安街道"},{"code":"321323101","name":"爱园镇"},{"code":"321323102","name":"王集镇"},{"code":"321323103","name":"裴圩镇"},{"code":"321323104","name":"新袁镇"},{"code":"321323105","name":"李口镇"},{"code":"321323106","name":"临河镇"},{"code":"321323107","name":"穿城镇"},{"code":"321323110","name":"卢集镇"},{"code":"321323111","name":"三庄镇"},{"code":"321323200","name":"庄圩乡"},{"code":"321323400","name":"棉花原种场"},{"code":"321323401","name":"泗阳农场"},{"code":"321323402","name":"江苏泗阳开发区"}]},{"code":"321324","name":"泗洪县","children":[{"code":"321324001","name":"青阳街道"},{"code":"321324002","name":"大楼街道"},{"code":"321324003","name":"重岗街道"},{"code":"321324101","name":"双沟镇"},{"code":"321324102","name":"上塘镇"},{"code":"321324103","name":"魏营镇"},{"code":"321324104","name":"临淮镇"},{"code":"321324105","name":"半城镇"},{"code":"321324106","name":"孙园镇"},{"code":"321324107","name":"梅花镇"},{"code":"321324108","name":"归仁镇"},{"code":"321324109","name":"金锁镇"},{"code":"321324110","name":"朱湖镇"},{"code":"321324111","name":"界集镇"},{"code":"321324113","name":"龙集镇"},{"code":"321324202","name":"天岗湖乡"},{"code":"321324203","name":"车门乡"},{"code":"321324204","name":"瑶沟乡"},{"code":"321324205","name":"石集乡"},{"code":"321324400","name":"五里江农场"},{"code":"321324401","name":"洪泽湖农场"}]},{"code":"321371","name":"宿迁经济技术开发区","children":[{"code":"321371050","name":"黄河街道"},{"code":"321371052","name":"三棵树街道"},{"code":"321371351","name":"南蔡乡"},{"code":"321371400","name":"古楚街道办"}]}]}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市","children":[{"code":"330102","name":"上城区","children":[{"code":"330102001","name":"清波街道"},{"code":"330102003","name":"湖滨街道"},{"code":"330102004","name":"小营街道"},{"code":"330102008","name":"南星街道"},{"code":"330102009","name":"紫阳街道"},{"code":"330102010","name":"望江街道"},{"code":"330102011","name":"凯旋街道"},{"code":"330102012","name":"采荷街道"},{"code":"330102013","name":"闸弄口街道"},{"code":"330102014","name":"四季青街道"},{"code":"330102015","name":"彭埠街道"},{"code":"330102016","name":"笕桥街道"},{"code":"330102017","name":"丁兰街道"},{"code":"330102018","name":"九堡街道"}]},{"code":"330105","name":"拱墅区","children":[{"code":"330105001","name":"米市巷街道"},{"code":"330105002","name":"湖墅街道"},{"code":"330105003","name":"小河街道"},{"code":"330105004","name":"和睦街道"},{"code":"330105005","name":"拱宸桥街道"},{"code":"330105007","name":"大关街道"},{"code":"330105008","name":"上塘街道"},{"code":"330105009","name":"祥符街道"},{"code":"330105010","name":"康桥街道"},{"code":"330105011","name":"半山街道"},{"code":"330105012","name":"天水街道"},{"code":"330105013","name":"武林街道"},{"code":"330105014","name":"长庆街道"},{"code":"330105015","name":"潮鸣街道"},{"code":"330105016","name":"朝晖街道"},{"code":"330105017","name":"文晖街道"},{"code":"330105018","name":"东新街道"},{"code":"330105019","name":"石桥街道"}]},{"code":"330106","name":"西湖区","children":[{"code":"330106002","name":"北山街道"},{"code":"330106004","name":"西溪街道"},{"code":"330106005","name":"翠苑街道"},{"code":"330106007","name":"古荡街道"},{"code":"330106008","name":"西湖街道"},{"code":"330106009","name":"留下街道"},{"code":"330106010","name":"转塘街道"},{"code":"330106011","name":"蒋村街道"},{"code":"330106012","name":"灵隐街道"},{"code":"330106013","name":"文新街道"},{"code":"330106109","name":"三墩镇"},{"code":"330106110","name":"双浦镇"}]},{"code":"330108","name":"滨江区","children":[{"code":"330108001","name":"西兴街道"},{"code":"330108002","name":"长河街道"},{"code":"330108003","name":"浦沿街道"}]},{"code":"330109","name":"萧山区","children":[{"code":"330109001","name":"城厢街道"},{"code":"330109002","name":"北干街道"},{"code":"330109003","name":"蜀山街道"},{"code":"330109004","name":"新塘街道"},{"code":"330109005","name":"靖江街道"},{"code":"330109006","name":"南阳街道"},{"code":"330109012","name":"闻堰街道"},{"code":"330109013","name":"宁围街道"},{"code":"330109014","name":"新街街道"},{"code":"330109015","name":"盈丰街道"},{"code":"330109100","name":"楼塔镇"},{"code":"330109101","name":"河上镇"},{"code":"330109102","name":"戴村镇"},{"code":"330109103","name":"浦阳镇"},{"code":"330109104","name":"进化镇"},{"code":"330109105","name":"临浦镇"},{"code":"330109106","name":"义桥镇"},{"code":"330109107","name":"所前镇"},{"code":"330109108","name":"衙前镇"},{"code":"330109113","name":"瓜沥镇"},{"code":"330109115","name":"益农镇"},{"code":"330109120","name":"党湾镇"},{"code":"330109401","name":"萧山经济技术开发区"},{"code":"330109403","name":"萧山商业城"},{"code":"330109501","name":"围垦区"},{"code":"330109503","name":"红山农场"},{"code":"330109505","name":"萧山钱江世纪城"}]},{"code":"330110","name":"余杭区","children":[{"code":"330110005","name":"五常街道"},{"code":"330110009","name":"仁和街道"},{"code":"330110010","name":"良渚街道"},{"code":"330110011","name":"闲林街道"},{"code":"330110012","name":"仓前街道"},{"code":"330110013","name":"余杭街道"},{"code":"330110014","name":"中泰街道"},{"code":"330110109","name":"径山镇"},{"code":"330110110","name":"瓶窑镇"},{"code":"330110111","name":"鸬鸟镇"},{"code":"330110112","name":"百丈镇"},{"code":"330110113","name":"黄湖镇"}]},{"code":"330111","name":"富阳区","children":[{"code":"330111001","name":"富春街道"},{"code":"330111002","name":"春江街道"},{"code":"330111004","name":"鹿山街道"},{"code":"330111005","name":"东洲街道"},{"code":"330111006","name":"银湖街道"},{"code":"330111100","name":"万市镇"},{"code":"330111101","name":"洞桥镇"},{"code":"330111103","name":"渌渚镇"},{"code":"330111105","name":"永昌镇"},{"code":"330111108","name":"里山镇"},{"code":"330111109","name":"常绿镇"},{"code":"330111110","name":"场口镇"},{"code":"330111111","name":"常安镇"},{"code":"330111112","name":"龙门镇"},{"code":"330111115","name":"新登镇"},{"code":"330111116","name":"胥口镇"},{"code":"330111117","name":"大源镇"},{"code":"330111118","name":"灵桥镇"},{"code":"330111200","name":"新桐乡"},{"code":"330111201","name":"上官乡"},{"code":"330111204","name":"环山乡"},{"code":"330111205","name":"湖源乡"},{"code":"330111206","name":"春建乡"},{"code":"330111207","name":"渔山乡"}]},{"code":"330112","name":"临安区","children":[{"code":"330112002","name":"玲珑街道"},{"code":"330112005","name":"锦南街道"},{"code":"330112006","name":"锦城街道"},{"code":"330112007","name":"锦北街道"},{"code":"330112008","name":"青山湖街道"},{"code":"330112102","name":"高虹镇"},{"code":"330112103","name":"太湖源镇"},{"code":"330112104","name":"於潜镇"},{"code":"330112106","name":"太阳镇"},{"code":"330112107","name":"潜川镇"},{"code":"330112108","name":"昌化镇"},{"code":"330112109","name":"河桥镇"},{"code":"330112111","name":"湍口镇"},{"code":"330112112","name":"清凉峰镇"},{"code":"330112113","name":"岛石镇"},{"code":"330112115","name":"板桥镇"},{"code":"330112116","name":"天目山镇"},{"code":"330112117","name":"龙岗镇"}]},{"code":"330113","name":"临平区","children":[{"code":"330113001","name":"临平街道"},{"code":"330113002","name":"南苑街道"},{"code":"330113003","name":"东湖街道"},{"code":"330113004","name":"星桥街道"},{"code":"330113005","name":"乔司街道"},{"code":"330113006","name":"运河街道"},{"code":"330113007","name":"崇贤街道"},{"code":"330113100","name":"塘栖镇"}]},{"code":"330114","name":"钱塘区","children":[{"code":"330114001","name":"下沙街道"},{"code":"330114002","name":"白杨街道"},{"code":"330114003","name":"河庄街道"},{"code":"330114004","name":"义蓬街道"},{"code":"330114005","name":"新湾街道"},{"code":"330114006","name":"临江街道"},{"code":"330114007","name":"前进街道"}]},{"code":"330122","name":"桐庐县","children":[{"code":"330122002","name":"旧县街道"},{"code":"330122003","name":"桐君街道"},{"code":"330122004","name":"城南街道"},{"code":"330122005","name":"凤川街道"},{"code":"330122101","name":"富春江镇"},{"code":"330122102","name":"横村镇"},{"code":"330122109","name":"分水镇"},{"code":"330122110","name":"瑶琳镇"},{"code":"330122112","name":"百江镇"},{"code":"330122113","name":"江南镇"},{"code":"330122201","name":"莪山畲族乡"},{"code":"330122202","name":"钟山乡"},{"code":"330122204","name":"新合乡"},{"code":"330122210","name":"合村乡"}]},{"code":"330127","name":"淳安县","children":[{"code":"330127100","name":"千岛湖镇"},{"code":"330127101","name":"文昌镇"},{"code":"330127102","name":"石林镇"},{"code":"330127103","name":"临岐镇"},{"code":"330127104","name":"威坪镇"},{"code":"330127106","name":"姜家镇"},{"code":"330127107","name":"梓桐镇"},{"code":"330127108","name":"汾口镇"},{"code":"330127109","name":"中洲镇"},{"code":"330127110","name":"大墅镇"},{"code":"330127111","name":"枫树岭镇"},{"code":"330127200","name":"里商乡"},{"code":"330127201","name":"金峰乡"},{"code":"330127202","name":"富文乡"},{"code":"330127203","name":"左口乡"},{"code":"330127205","name":"屏门乡"},{"code":"330127206","name":"瑶山乡"},{"code":"330127208","name":"王阜乡"},{"code":"330127210","name":"宋村乡"},{"code":"330127211","name":"鸠坑乡"},{"code":"330127212","name":"浪川乡"},{"code":"330127214","name":"界首乡"},{"code":"330127216","name":"安阳乡"}]},{"code":"330182","name":"建德市","children":[{"code":"330182001","name":"新安江街道"},{"code":"330182002","name":"洋溪街道"},{"code":"330182003","name":"更楼街道"},{"code":"330182101","name":"莲花镇"},{"code":"330182102","name":"乾潭镇"},{"code":"330182104","name":"梅城镇"},{"code":"330182105","name":"杨村桥镇"},{"code":"330182106","name":"下涯镇"},{"code":"330182107","name":"大洋镇"},{"code":"330182108","name":"三都镇"},{"code":"330182109","name":"寿昌镇"},{"code":"330182110","name":"航头镇"},{"code":"330182111","name":"大慈岩镇"},{"code":"330182112","name":"大同镇"},{"code":"330182113","name":"李家镇"},{"code":"330182202","name":"钦堂乡"}]}]},{"code":"3302","name":"宁波市","children":[{"code":"330203","name":"海曙区","children":[{"code":"330203001","name":"南门街道"},{"code":"330203002","name":"江厦街道"},{"code":"330203003","name":"西门街道"},{"code":"330203004","name":"月湖街道"},{"code":"330203005","name":"鼓楼街道"},{"code":"330203006","name":"白云街道"},{"code":"330203007","name":"段塘街道"},{"code":"330203008","name":"望春街道"},{"code":"330203009","name":"石碶街道"},{"code":"330203100","name":"高桥镇"},{"code":"330203101","name":"横街镇"},{"code":"330203102","name":"集士港镇"},{"code":"330203103","name":"古林镇"},{"code":"330203104","name":"洞桥镇"},{"code":"330203105","name":"鄞江镇"},{"code":"330203106","name":"章水镇"},{"code":"330203200","name":"龙观乡"}]},{"code":"330205","name":"江北区","children":[{"code":"330205001","name":"外滩街道"},{"code":"330205003","name":"孔浦街道"},{"code":"330205004","name":"文教街道"},{"code":"330205005","name":"甬江街道"},{"code":"330205006","name":"庄桥街道"},{"code":"330205007","name":"洪塘街道"},{"code":"330205008","name":"前江街道"},{"code":"330205103","name":"慈城镇"}]},{"code":"330206","name":"北仑区","children":[{"code":"330206001","name":"大榭街道"},{"code":"330206002","name":"新碶街道"},{"code":"330206003","name":"小港街道"},{"code":"330206004","name":"大碶街道"},{"code":"330206005","name":"霞浦街道"},{"code":"330206006","name":"柴桥街道"},{"code":"330206007","name":"戚家山街道"},{"code":"330206008","name":"春晓街道"},{"code":"330206009","name":"梅山街道"},{"code":"330206010","name":"郭巨街道"},{"code":"330206011","name":"白峰街道"},{"code":"330206401","name":"保税区"}]},{"code":"330211","name":"镇海区","children":[{"code":"330211001","name":"招宝山街道"},{"code":"330211002","name":"蛟川街道"},{"code":"330211003","name":"骆驼街道"},{"code":"330211004","name":"庄市街道"},{"code":"330211005","name":"贵驷街道"},{"code":"330211100","name":"澥浦镇"},{"code":"330211101","name":"九龙湖镇"}]},{"code":"330212","name":"鄞州区","children":[{"code":"330212001","name":"下应街道"},{"code":"330212002","name":"钟公庙街道"},{"code":"330212004","name":"梅墟街道"},{"code":"330212005","name":"中河街道"},{"code":"330212006","name":"首南街道"},{"code":"330212007","name":"潘火街道"},{"code":"330212008","name":"百丈街道"},{"code":"330212009","name":"东胜街道"},{"code":"330212010","name":"明楼街道"},{"code":"330212011","name":"白鹤街道"},{"code":"330212012","name":"东柳街道"},{"code":"330212013","name":"东郊街道"},{"code":"330212014","name":"福明街道"},{"code":"330212015","name":"新明街道"},{"code":"330212016","name":"聚贤街道"},{"code":"330212100","name":"瞻岐镇"},{"code":"330212101","name":"咸祥镇"},{"code":"330212102","name":"塘溪镇"},{"code":"330212103","name":"东钱湖镇"},{"code":"330212104","name":"东吴镇"},{"code":"330212105","name":"五乡镇"},{"code":"330212106","name":"邱隘镇"},{"code":"330212108","name":"云龙镇"},{"code":"330212109","name":"横溪镇"},{"code":"330212110","name":"姜山镇"}]},{"code":"330213","name":"奉化区","children":[{"code":"330213001","name":"锦屏街道"},{"code":"330213002","name":"岳林街道"},{"code":"330213003","name":"江口街道"},{"code":"330213004","name":"西坞街道"},{"code":"330213005","name":"萧王庙街道"},{"code":"330213006","name":"方桥街道"},{"code":"330213007","name":"尚田街道"},{"code":"330213008","name":"莼湖街道"},{"code":"330213100","name":"溪口镇"},{"code":"330213106","name":"裘村镇"},{"code":"330213107","name":"大堰镇"},{"code":"330213108","name":"松岙镇"}]},{"code":"330225","name":"象山县","children":[{"code":"330225001","name":"丹东街道"},{"code":"330225002","name":"丹西街道"},{"code":"330225003","name":"爵溪街道"},{"code":"330225101","name":"石浦镇"},{"code":"330225102","name":"西周镇"},{"code":"330225103","name":"鹤浦镇"},{"code":"330225104","name":"贤庠镇"},{"code":"330225105","name":"墙头镇"},{"code":"330225106","name":"泗洲头镇"},{"code":"330225107","name":"定塘镇"},{"code":"330225108","name":"涂茨镇"},{"code":"330225109","name":"大徐镇"},{"code":"330225110","name":"新桥镇"},{"code":"330225200","name":"东陈乡"},{"code":"330225201","name":"晓塘乡"},{"code":"330225202","name":"黄避岙乡"},{"code":"330225203","name":"茅洋乡"},{"code":"330225204","name":"高塘岛乡"}]},{"code":"330226","name":"宁海县","children":[{"code":"330226001","name":"跃龙街道"},{"code":"330226002","name":"桃源街道"},{"code":"330226003","name":"梅林街道"},{"code":"330226004","name":"桥头胡街道"},{"code":"330226101","name":"长街镇"},{"code":"330226102","name":"力洋镇"},{"code":"330226104","name":"一市镇"},{"code":"330226105","name":"岔路镇"},{"code":"330226106","name":"前童镇"},{"code":"330226107","name":"桑洲镇"},{"code":"330226108","name":"黄坛镇"},{"code":"330226109","name":"大佳何镇"},{"code":"330226110","name":"强蛟镇"},{"code":"330226111","name":"西店镇"},{"code":"330226112","name":"深甽镇"},{"code":"330226200","name":"胡陈乡"},{"code":"330226201","name":"茶院乡"},{"code":"330226202","name":"越溪乡"}]},{"code":"330281","name":"余姚市","children":[{"code":"330281001","name":"梨洲街道"},{"code":"330281002","name":"凤山街道"},{"code":"330281003","name":"兰江街道"},{"code":"330281004","name":"阳明街道"},{"code":"330281005","name":"低塘街道"},{"code":"330281006","name":"朗霞街道"},{"code":"330281100","name":"临山镇"},{"code":"330281101","name":"黄家埠镇"},{"code":"330281102","name":"小曹娥镇"},{"code":"330281103","name":"泗门镇"},{"code":"330281106","name":"马渚镇"},{"code":"330281108","name":"牟山镇"},{"code":"330281109","name":"丈亭镇"},{"code":"330281110","name":"三七市镇"},{"code":"330281111","name":"河姆渡镇"},{"code":"330281112","name":"大隐镇"},{"code":"330281113","name":"陆埠镇"},{"code":"330281114","name":"梁弄镇"},{"code":"330281115","name":"大岚镇"},{"code":"330281116","name":"四明山镇"},{"code":"330281201","name":"鹿亭乡"}]},{"code":"330282","name":"慈溪市","children":[{"code":"330282002","name":"宗汉街道"},{"code":"330282003","name":"坎墩街道"},{"code":"330282004","name":"浒山街道"},{"code":"330282005","name":"白沙路街道"},{"code":"330282006","name":"古塘街道"},{"code":"330282104","name":"掌起镇"},{"code":"330282107","name":"观海卫镇"},{"code":"330282108","name":"附海镇"},{"code":"330282109","name":"桥头镇"},{"code":"330282110","name":"匡堰镇"},{"code":"330282111","name":"逍林镇"},{"code":"330282112","name":"新浦镇"},{"code":"330282113","name":"胜山镇"},{"code":"330282114","name":"横河镇"},{"code":"330282116","name":"崇寿镇"},{"code":"330282118","name":"庵东镇"},{"code":"330282120","name":"长河镇"},{"code":"330282121","name":"周巷镇"},{"code":"330282123","name":"龙山镇"},{"code":"330282402","name":"滨海经济开发区"}]}]},{"code":"3303","name":"温州市","children":[{"code":"330302","name":"鹿城区","children":[{"code":"330302006","name":"五马街道"},{"code":"330302023","name":"七都街道"},{"code":"330302024","name":"滨江街道"},{"code":"330302025","name":"南汇街道"},{"code":"330302026","name":"松台街道"},{"code":"330302027","name":"双屿街道"},{"code":"330302028","name":"仰义街道"},{"code":"330302029","name":"大南街道"},{"code":"330302030","name":"蒲鞋市街道"},{"code":"330302031","name":"南郊街道"},{"code":"330302032","name":"广化街道"},{"code":"330302033","name":"丰门街道"},{"code":"330302102","name":"藤桥镇"},{"code":"330302105","name":"山福镇"}]},{"code":"330303","name":"龙湾区","children":[{"code":"330303001","name":"永中街道"},{"code":"330303002","name":"蒲州街道"},{"code":"330303003","name":"海滨街道"},{"code":"330303004","name":"永兴街道"},{"code":"330303006","name":"状元街道"},{"code":"330303007","name":"瑶溪街道"}]},{"code":"330304","name":"瓯海区","children":[{"code":"330304001","name":"景山街道"},{"code":"330304002","name":"梧田街道"},{"code":"330304003","name":"南白象街道"},{"code":"330304004","name":"茶山街道"},{"code":"330304005","name":"娄桥街道"},{"code":"330304006","name":"新桥街道"},{"code":"330304007","name":"三垟街道"},{"code":"330304008","name":"瞿溪街道"},{"code":"330304009","name":"郭溪街道"},{"code":"330304010","name":"潘桥街道"},{"code":"330304011","name":"丽岙街道"},{"code":"330304012","name":"仙岩街道"},{"code":"330304108","name":"泽雅镇"}]},{"code":"330305","name":"洞头区","children":[{"code":"330305001","name":"北岙街道"},{"code":"330305002","name":"灵昆街道"},{"code":"330305003","name":"东屏街道"},{"code":"330305004","name":"元觉街道"},{"code":"330305005","name":"霓屿街道"},{"code":"330305006","name":"昆鹏街道"},{"code":"330305101","name":"大门镇"},{"code":"330305202","name":"鹿西乡"}]},{"code":"330324","name":"永嘉县","children":[{"code":"330324001","name":"东城街道"},{"code":"330324002","name":"北城街道"},{"code":"330324003","name":"南城街道"},{"code":"330324006","name":"三江街道"},{"code":"330324007","name":"黄田街道"},{"code":"330324008","name":"乌牛街道"},{"code":"330324009","name":"瓯北街道"},{"code":"330324102","name":"桥头镇"},{"code":"330324104","name":"桥下镇"},{"code":"330324105","name":"大若岩镇"},{"code":"330324106","name":"碧莲镇"},{"code":"330324107","name":"巽宅镇"},{"code":"330324108","name":"岩头镇"},{"code":"330324109","name":"枫林镇"},{"code":"330324110","name":"岩坦镇"},{"code":"330324111","name":"沙头镇"},{"code":"330324112","name":"鹤盛镇"},{"code":"330324113","name":"金溪镇"},{"code":"330324226","name":"云岭乡"},{"code":"330324227","name":"茗岙乡"},{"code":"330324228","name":"溪下乡"},{"code":"330324229","name":"界坑乡"},{"code":"330324400","name":"县特产场场区"},{"code":"330324401","name":"四海山林场"},{"code":"330324402","name":"正江山林场"}]},{"code":"330326","name":"平阳县","children":[{"code":"330326100","name":"昆阳镇"},{"code":"330326101","name":"鳌江镇"},{"code":"330326102","name":"水头镇"},{"code":"330326103","name":"萧江镇"},{"code":"330326105","name":"腾蛟镇"},{"code":"330326107","name":"山门镇"},{"code":"330326108","name":"顺溪镇"},{"code":"330326109","name":"南雁镇"},{"code":"330326117","name":"万全镇"},{"code":"330326118","name":"海西镇"},{"code":"330326119","name":"南麂镇"},{"code":"330326120","name":"麻步镇"},{"code":"330326121","name":"凤卧镇"},{"code":"330326122","name":"怀溪镇"},{"code":"330326214","name":"青街畲族乡"},{"code":"330326217","name":"闹村乡"},{"code":"330326401","name":"滨海新区"}]},{"code":"330327","name":"苍南县","children":[{"code":"330327100","name":"灵溪镇"},{"code":"330327103","name":"宜山镇"},{"code":"330327104","name":"钱库镇"},{"code":"330327107","name":"金乡镇"},{"code":"330327112","name":"藻溪镇"},{"code":"330327113","name":"桥墩镇"},{"code":"330327116","name":"矾山镇"},{"code":"330327117","name":"赤溪镇"},{"code":"330327118","name":"马站镇"},{"code":"330327122","name":"望里镇"},{"code":"330327123","name":"炎亭镇"},{"code":"330327124","name":"大渔镇"},{"code":"330327125","name":"莒溪镇"},{"code":"330327126","name":"南宋镇"},{"code":"330327127","name":"霞关镇"},{"code":"330327128","name":"沿浦镇"},{"code":"330327216","name":"凤阳畲族乡"},{"code":"330327218","name":"岱岭畲族乡"}]},{"code":"330328","name":"文成县","children":[{"code":"330328100","name":"大峃镇"},{"code":"330328101","name":"百丈漈镇"},{"code":"330328102","name":"南田镇"},{"code":"330328103","name":"西坑畲族镇"},{"code":"330328104","name":"黄坦镇"},{"code":"330328105","name":"珊溪镇"},{"code":"330328106","name":"巨屿镇"},{"code":"330328107","name":"玉壶镇"},{"code":"330328108","name":"峃口镇"},{"code":"330328109","name":"周壤镇"},{"code":"330328110","name":"铜铃山镇"},{"code":"330328111","name":"二源镇"},{"code":"330328217","name":"周山畲族乡"},{"code":"330328225","name":"桂山乡"},{"code":"330328226","name":"双桂乡"},{"code":"330328227","name":"平和乡"},{"code":"330328228","name":"公阳乡"}]},{"code":"330329","name":"泰顺县","children":[{"code":"330329100","name":"罗阳镇"},{"code":"330329101","name":"司前畲族镇"},{"code":"330329102","name":"百丈镇"},{"code":"330329103","name":"筱村镇"},{"code":"330329104","name":"泗溪镇"},{"code":"330329105","name":"彭溪镇"},{"code":"330329106","name":"雅阳镇"},{"code":"330329107","name":"仕阳镇"},{"code":"330329109","name":"三魁镇"},{"code":"330329111","name":"南浦溪镇"},{"code":"330329112","name":"龟湖镇"},{"code":"330329113","name":"西旸镇"},{"code":"330329204","name":"竹里畲族乡"},{"code":"330329225","name":"包垟乡"},{"code":"330329226","name":"凤垟乡"},{"code":"330329227","name":"东溪乡"},{"code":"330329228","name":"柳峰乡"},{"code":"330329229","name":"雪溪乡"},{"code":"330329230","name":"大安乡"},{"code":"330329400","name":"乌岩岭自然保护区"}]},{"code":"330371","name":"温州经济技术开发区","children":[{"code":"330371005","name":"海城街道"},{"code":"330371008","name":"沙城街道"},{"code":"330371009","name":"天河街道"},{"code":"330371011","name":"星海街道"}]},{"code":"330381","name":"瑞安市","children":[{"code":"330381001","name":"安阳街道"},{"code":"330381002","name":"玉海街道"},{"code":"330381003","name":"锦湖街道"},{"code":"330381004","name":"东山街道"},{"code":"330381005","name":"上望街道"},{"code":"330381007","name":"莘塍街道"},{"code":"330381008","name":"汀田街道"},{"code":"330381009","name":"飞云街道"},{"code":"330381010","name":"仙降街道"},{"code":"330381011","name":"南滨街道"},{"code":"330381012","name":"潘岱街道"},{"code":"330381013","name":"云周街道"},{"code":"330381101","name":"塘下镇"},{"code":"330381116","name":"马屿镇"},{"code":"330381120","name":"陶山镇"},{"code":"330381122","name":"湖岭镇"},{"code":"330381125","name":"高楼镇"},{"code":"330381126","name":"桐浦镇"},{"code":"330381127","name":"林川镇"},{"code":"330381128","name":"曹村镇"},{"code":"330381129","name":"平阳坑镇"},{"code":"330381221","name":"芳庄乡"},{"code":"330381222","name":"北麂乡"}]},{"code":"330382","name":"乐清市","children":[{"code":"330382001","name":"城东街道"},{"code":"330382002","name":"乐成街道"},{"code":"330382003","name":"城南街道"},{"code":"330382004","name":"盐盆街道"},{"code":"330382005","name":"翁垟街道"},{"code":"330382006","name":"白石街道"},{"code":"330382007","name":"石帆街道"},{"code":"330382008","name":"天成街道"},{"code":"330382101","name":"大荆镇"},{"code":"330382102","name":"仙溪镇"},{"code":"330382104","name":"雁荡镇"},{"code":"330382105","name":"芙蓉镇"},{"code":"330382106","name":"清江镇"},{"code":"330382108","name":"虹桥镇"},{"code":"330382111","name":"淡溪镇"},{"code":"330382114","name":"柳市镇"},{"code":"330382115","name":"北白象镇"},{"code":"330382121","name":"湖雾镇"},{"code":"330382122","name":"南塘镇"},{"code":"330382123","name":"南岳镇"},{"code":"330382124","name":"蒲岐镇"},{"code":"330382125","name":"磐石镇"},{"code":"330382210","name":"智仁乡"},{"code":"330382211","name":"龙西乡"},{"code":"330382212","name":"岭底乡"}]},{"code":"330383","name":"龙港市","children":[{"code":"330383198","name":"龙港县直辖村级区划"}]}]},{"code":"3304","name":"嘉兴市","children":[{"code":"330402","name":"南湖区","children":[{"code":"330402007","name":"建设街道"},{"code":"330402008","name":"解放街道"},{"code":"330402009","name":"新嘉街道"},{"code":"330402010","name":"南湖街道"},{"code":"330402011","name":"新兴街道"},{"code":"330402012","name":"城南街道"},{"code":"330402013","name":"东栅街道"},{"code":"330402014","name":"长水街道"},{"code":"330402015","name":"七星街道"},{"code":"330402100","name":"凤桥镇"},{"code":"330402101","name":"余新镇"},{"code":"330402103","name":"新丰镇"},{"code":"330402105","name":"大桥镇"}]},{"code":"330411","name":"秀洲区","children":[{"code":"330411002","name":"新城街道"},{"code":"330411003","name":"嘉北街道"},{"code":"330411004","name":"塘汇街道"},{"code":"330411005","name":"高照街道"},{"code":"330411101","name":"王江泾镇"},{"code":"330411103","name":"油车港镇"},{"code":"330411104","name":"新塍镇"},{"code":"330411105","name":"王店镇"},{"code":"330411106","name":"洪合镇"}]},{"code":"330421","name":"嘉善县","children":[{"code":"330421001","name":"魏塘街道"},{"code":"330421002","name":"罗星街道"},{"code":"330421003","name":"惠民街道"},{"code":"330421102","name":"大云镇"},{"code":"330421103","name":"西塘镇"},{"code":"330421105","name":"干窑镇"},{"code":"330421107","name":"陶庄镇"},{"code":"330421111","name":"姚庄镇"},{"code":"330421112","name":"天凝镇"}]},{"code":"330424","name":"海盐县","children":[{"code":"330424001","name":"武原街道"},{"code":"330424002","name":"西塘桥街道"},{"code":"330424004","name":"秦山街道"},{"code":"330424005","name":"望海街道"},{"code":"330424101","name":"沈荡镇"},{"code":"330424102","name":"百步镇"},{"code":"330424103","name":"于城镇"},{"code":"330424105","name":"澉浦镇"},{"code":"330424106","name":"通元镇"}]},{"code":"330481","name":"海宁市","children":[{"code":"330481001","name":"硖石街道"},{"code":"330481002","name":"海洲街道"},{"code":"330481003","name":"海昌街道"},{"code":"330481004","name":"马桥街道"},{"code":"330481101","name":"许村镇"},{"code":"330481103","name":"长安镇"},{"code":"330481105","name":"周王庙镇"},{"code":"330481106","name":"丁桥镇"},{"code":"330481107","name":"斜桥镇"},{"code":"330481108","name":"黄湾镇"},{"code":"330481110","name":"盐官镇"},{"code":"330481112","name":"袁花镇"}]},{"code":"330482","name":"平湖市","children":[{"code":"330482001","name":"当湖街道"},{"code":"330482002","name":"钟埭街道"},{"code":"330482003","name":"曹桥街道"},{"code":"330482101","name":"乍浦镇"},{"code":"330482102","name":"新埭镇"},{"code":"330482103","name":"新仓镇"},{"code":"330482106","name":"广陈镇"},{"code":"330482107","name":"林埭镇"},{"code":"330482108","name":"独山港镇"}]},{"code":"330483","name":"桐乡市","children":[{"code":"330483001","name":"梧桐街道"},{"code":"330483003","name":"凤鸣街道"},{"code":"330483004","name":"高桥街道"},{"code":"330483100","name":"乌镇镇"},{"code":"330483101","name":"濮院镇"},{"code":"330483102","name":"屠甸镇"},{"code":"330483103","name":"石门镇"},{"code":"330483104","name":"河山镇"},{"code":"330483105","name":"洲泉镇"},{"code":"330483106","name":"大麻镇"},{"code":"330483107","name":"崇福镇"}]}]},{"code":"3305","name":"湖州市","children":[{"code":"330502","name":"吴兴区","children":[{"code":"330502001","name":"月河街道"},{"code":"330502002","name":"朝阳街道"},{"code":"330502003","name":"爱山街道"},{"code":"330502004","name":"飞英街道"},{"code":"330502005","name":"龙泉街道"},{"code":"330502006","name":"凤凰街道"},{"code":"330502007","name":"康山街道"},{"code":"330502008","name":"仁皇山街道"},{"code":"330502009","name":"滨湖街道"},{"code":"330502010","name":"龙溪街道"},{"code":"330502011","name":"杨家埠街道"},{"code":"330502012","name":"环渚街道"},{"code":"330502013","name":"湖东街道"},{"code":"330502100","name":"织里镇"},{"code":"330502101","name":"八里店镇"},{"code":"330502102","name":"妙西镇"},{"code":"330502104","name":"埭溪镇"},{"code":"330502105","name":"东林镇"},{"code":"330502200","name":"道场乡"}]},{"code":"330503","name":"南浔区","children":[{"code":"330503001","name":"东迁街道"},{"code":"330503002","name":"旧馆街道"},{"code":"330503100","name":"南浔镇"},{"code":"330503101","name":"双林镇"},{"code":"330503102","name":"练市镇"},{"code":"330503103","name":"善琏镇"},{"code":"330503105","name":"菱湖镇"},{"code":"330503106","name":"和孚镇"},{"code":"330503107","name":"千金镇"},{"code":"330503108","name":"石淙镇"}]},{"code":"330521","name":"德清县","children":[{"code":"330521001","name":"武康街道"},{"code":"330521002","name":"舞阳街道"},{"code":"330521003","name":"阜溪街道"},{"code":"330521004","name":"下渚湖街道"},{"code":"330521005","name":"康乾街道"},{"code":"330521101","name":"乾元镇"},{"code":"330521102","name":"新市镇"},{"code":"330521103","name":"洛舍镇"},{"code":"330521104","name":"钟管镇"},{"code":"330521110","name":"雷甸镇"},{"code":"330521113","name":"禹越镇"},{"code":"330521114","name":"新安镇"},{"code":"330521115","name":"莫干山镇"}]},{"code":"330522","name":"长兴县","children":[{"code":"330522001","name":"雉城街道"},{"code":"330522002","name":"画溪街道"},{"code":"330522003","name":"太湖街道"},{"code":"330522004","name":"龙山街道"},{"code":"330522101","name":"洪桥镇"},{"code":"330522102","name":"李家巷镇"},{"code":"330522103","name":"夹浦镇"},{"code":"330522104","name":"林城镇"},{"code":"330522106","name":"虹星桥镇"},{"code":"330522108","name":"小浦镇"},{"code":"330522110","name":"和平镇"},{"code":"330522111","name":"泗安镇"},{"code":"330522112","name":"煤山镇"},{"code":"330522200","name":"水口乡"},{"code":"330522202","name":"吕山乡"}]},{"code":"330523","name":"安吉县","children":[{"code":"330523001","name":"递铺街道"},{"code":"330523002","name":"昌硕街道"},{"code":"330523003","name":"灵峰街道"},{"code":"330523004","name":"孝源街道"},{"code":"330523103","name":"鄣吴镇"},{"code":"330523104","name":"杭垓镇"},{"code":"330523105","name":"孝丰镇"},{"code":"330523106","name":"报福镇"},{"code":"330523107","name":"章村镇"},{"code":"330523108","name":"天荒坪镇"},{"code":"330523110","name":"梅溪镇"},{"code":"330523111","name":"天子湖镇"},{"code":"330523201","name":"溪龙乡"},{"code":"330523205","name":"上墅乡"},{"code":"330523206","name":"山川乡"}]}]},{"code":"3306","name":"绍兴市","children":[{"code":"330602","name":"越城区","children":[{"code":"330602001","name":"塔山街道"},{"code":"330602002","name":"府山街道"},{"code":"330602004","name":"北海街道"},{"code":"330602005","name":"城南街道"},{"code":"330602006","name":"稽山街道"},{"code":"330602007","name":"迪荡街道"},{"code":"330602008","name":"东湖街道"},{"code":"330602009","name":"灵芝街道"},{"code":"330602010","name":"东浦街道"},{"code":"330602011","name":"鉴湖街道"},{"code":"330602012","name":"斗门街道"},{"code":"330602013","name":"皋埠街道"},{"code":"330602014","name":"马山街道"},{"code":"330602015","name":"孙端街道"},{"code":"330602016","name":"陶堰街道"},{"code":"330602017","name":"沥海街道"},{"code":"330602108","name":"富盛镇"}]},{"code":"330603","name":"柯桥区","children":[{"code":"330603001","name":"柯桥街道"},{"code":"330603002","name":"柯岩街道"},{"code":"330603003","name":"华舍街道"},{"code":"330603004","name":"湖塘街道"},{"code":"330603005","name":"齐贤街道"},{"code":"330603006","name":"福全街道"},{"code":"330603007","name":"安昌街道"},{"code":"330603008","name":"兰亭街道"},{"code":"330603009","name":"钱清街道"},{"code":"330603010","name":"杨汛桥街道"},{"code":"330603011","name":"马鞍街道"},{"code":"330603105","name":"平水镇"},{"code":"330603107","name":"王坛镇"},{"code":"330603109","name":"稽东镇"},{"code":"330603111","name":"漓渚镇"},{"code":"330603114","name":"夏履镇"}]},{"code":"330604","name":"上虞区","children":[{"code":"330604001","name":"百官街道"},{"code":"330604002","name":"曹娥街道"},{"code":"330604003","name":"东关街道"},{"code":"330604004","name":"道墟街道"},{"code":"330604005","name":"梁湖街道"},{"code":"330604006","name":"小越街道"},{"code":"330604007","name":"崧厦街道"},{"code":"330604101","name":"长塘镇"},{"code":"330604102","name":"上浦镇"},{"code":"330604103","name":"汤浦镇"},{"code":"330604104","name":"章镇镇"},{"code":"330604105","name":"下管镇"},{"code":"330604106","name":"丰惠镇"},{"code":"330604107","name":"永和镇"},{"code":"330604109","name":"驿亭镇"},{"code":"330604111","name":"谢塘镇"},{"code":"330604112","name":"盖北镇"},{"code":"330604200","name":"岭南乡"},{"code":"330604201","name":"陈溪乡"},{"code":"330604202","name":"丁宅乡"}]},{"code":"330624","name":"新昌县","children":[{"code":"330624001","name":"羽林街道"},{"code":"330624002","name":"南明街道"},{"code":"330624003","name":"七星街道"},{"code":"330624004","name":"澄潭街道"},{"code":"330624104","name":"回山镇"},{"code":"330624107","name":"小将镇"},{"code":"330624108","name":"沙溪镇"},{"code":"330624109","name":"镜岭镇"},{"code":"330624110","name":"儒岙镇"},{"code":"330624112","name":"沃洲镇"},{"code":"330624200","name":"城南乡"},{"code":"330624201","name":"东茗乡"}]},{"code":"330681","name":"诸暨市","children":[{"code":"330681001","name":"暨阳街道"},{"code":"330681002","name":"浣东街道"},{"code":"330681003","name":"陶朱街道"},{"code":"330681004","name":"暨南街道"},{"code":"330681005","name":"大唐街道"},{"code":"330681102","name":"应店街镇"},{"code":"330681103","name":"次坞镇"},{"code":"330681104","name":"店口镇"},{"code":"330681106","name":"姚江镇"},{"code":"330681108","name":"山下湖镇"},{"code":"330681109","name":"枫桥镇"},{"code":"330681110","name":"赵家镇"},{"code":"330681111","name":"马剑镇"},{"code":"330681112","name":"五泄镇"},{"code":"330681115","name":"牌头镇"},{"code":"330681116","name":"同山镇"},{"code":"330681117","name":"安华镇"},{"code":"330681119","name":"璜山镇"},{"code":"330681120","name":"陈宅镇"},{"code":"330681121","name":"岭北镇"},{"code":"330681122","name":"浬浦镇"},{"code":"330681124","name":"东白湖镇"},{"code":"330681201","name":"东和乡"}]},{"code":"330683","name":"嵊州市","children":[{"code":"330683001","name":"剡湖街道"},{"code":"330683002","name":"三江街道"},{"code":"330683003","name":"鹿山街道"},{"code":"330683005","name":"浦口街道"},{"code":"330683100","name":"甘霖镇"},{"code":"330683101","name":"长乐镇"},{"code":"330683102","name":"崇仁镇"},{"code":"330683103","name":"黄泽镇"},{"code":"330683104","name":"三界镇"},{"code":"330683105","name":"石璜镇"},{"code":"330683106","name":"谷来镇"},{"code":"330683107","name":"仙岩镇"},{"code":"330683108","name":"金庭镇"},{"code":"330683110","name":"下王镇"},{"code":"330683200","name":"贵门乡"}]}]},{"code":"3307","name":"金华市","children":[{"code":"330702","name":"婺城区","children":[{"code":"330702001","name":"城东街道"},{"code":"330702002","name":"城中街道"},{"code":"330702003","name":"城西街道"},{"code":"330702004","name":"城北街道"},{"code":"330702005","name":"江南街道"},{"code":"330702006","name":"三江街道"},{"code":"330702007","name":"西关街道"},{"code":"330702008","name":"秋滨街道"},{"code":"330702009","name":"新狮街道"},{"code":"330702100","name":"罗店镇"},{"code":"330702101","name":"雅畈镇"},{"code":"330702102","name":"安地镇"},{"code":"330702103","name":"白龙桥镇"},{"code":"330702104","name":"琅琊镇"},{"code":"330702105","name":"蒋堂镇"},{"code":"330702106","name":"汤溪镇"},{"code":"330702107","name":"罗埠镇"},{"code":"330702108","name":"洋埠镇"},{"code":"330702201","name":"乾西乡"},{"code":"330702202","name":"竹马乡"},{"code":"330702203","name":"长山乡"},{"code":"330702204","name":"箬阳乡"},{"code":"330702205","name":"沙畈乡"},{"code":"330702206","name":"塔石乡"},{"code":"330702208","name":"莘畈乡"},{"code":"330702209","name":"苏孟乡"}]},{"code":"330703","name":"金东区","children":[{"code":"330703001","name":"多湖街道"},{"code":"330703002","name":"东孝街道"},{"code":"330703101","name":"孝顺镇"},{"code":"330703102","name":"傅村镇"},{"code":"330703103","name":"曹宅镇"},{"code":"330703104","name":"澧浦镇"},{"code":"330703105","name":"岭下镇"},{"code":"330703106","name":"江东镇"},{"code":"330703107","name":"塘雅镇"},{"code":"330703108","name":"赤松镇"},{"code":"330703200","name":"源东乡"}]},{"code":"330723","name":"武义县","children":[{"code":"330723001","name":"白洋街道"},{"code":"330723002","name":"壶山街道"},{"code":"330723003","name":"熟溪街道"},{"code":"330723100","name":"柳城畲族镇"},{"code":"330723101","name":"履坦镇"},{"code":"330723102","name":"桐琴镇"},{"code":"330723103","name":"泉溪镇"},{"code":"330723104","name":"新宅镇"},{"code":"330723105","name":"王宅镇"},{"code":"330723106","name":"桃溪镇"},{"code":"330723107","name":"茭道镇"},{"code":"330723200","name":"大田乡"},{"code":"330723201","name":"白姆乡"},{"code":"330723202","name":"俞源乡"},{"code":"330723203","name":"坦洪乡"},{"code":"330723204","name":"西联乡"},{"code":"330723205","name":"三港乡"},{"code":"330723206","name":"大溪口乡"}]},{"code":"330726","name":"浦江县","children":[{"code":"330726001","name":"浦南街道"},{"code":"330726002","name":"仙华街道"},{"code":"330726003","name":"浦阳街道"},{"code":"330726101","name":"黄宅镇"},{"code":"330726102","name":"白马镇"},{"code":"330726103","name":"郑家坞镇"},{"code":"330726104","name":"郑宅镇"},{"code":"330726105","name":"岩头镇"},{"code":"330726106","name":"檀溪镇"},{"code":"330726107","name":"杭坪镇"},{"code":"330726200","name":"大畈乡"},{"code":"330726201","name":"中余乡"},{"code":"330726202","name":"前吴乡"},{"code":"330726203","name":"花桥乡"},{"code":"330726204","name":"虞宅乡"}]},{"code":"330727","name":"磐安县","children":[{"code":"330727001","name":"安文街道"},{"code":"330727002","name":"新渥街道"},{"code":"330727103","name":"仁川镇"},{"code":"330727104","name":"大盘镇"},{"code":"330727105","name":"方前镇"},{"code":"330727106","name":"玉山镇"},{"code":"330727107","name":"尚湖镇"},{"code":"330727108","name":"冷水镇"},{"code":"330727109","name":"尖山镇"},{"code":"330727201","name":"双峰乡"},{"code":"330727203","name":"双溪乡"},{"code":"330727205","name":"窈川乡"},{"code":"330727211","name":"九和乡"},{"code":"330727212","name":"盘峰乡"}]},{"code":"330781","name":"兰溪市","children":[{"code":"330781001","name":"兰江街道"},{"code":"330781002","name":"云山街道"},{"code":"330781004","name":"永昌街道"},{"code":"330781005","name":"赤溪街道"},{"code":"330781006","name":"女埠街道"},{"code":"330781007","name":"上华街道"},{"code":"330781102","name":"游埠镇"},{"code":"330781104","name":"诸葛镇"},{"code":"330781106","name":"黄店镇"},{"code":"330781108","name":"香溪镇"},{"code":"330781109","name":"马涧镇"},{"code":"330781111","name":"梅江镇"},{"code":"330781112","name":"横溪镇"},{"code":"330781200","name":"灵洞乡"},{"code":"330781203","name":"水亭畲族乡"},{"code":"330781209","name":"柏社乡"}]},{"code":"330782","name":"义乌市","children":[{"code":"330782001","name":"稠城街道"},{"code":"330782002","name":"江东街道"},{"code":"330782003","name":"稠江街道"},{"code":"330782004","name":"北苑街道"},{"code":"330782005","name":"后宅街道"},{"code":"330782006","name":"城西街道"},{"code":"330782007","name":"廿三里街道"},{"code":"330782008","name":"福田街道"},{"code":"330782100","name":"佛堂镇"},{"code":"330782101","name":"赤岸镇"},{"code":"330782102","name":"义亭镇"},{"code":"330782104","name":"上溪镇"},{"code":"330782105","name":"苏溪镇"},{"code":"330782106","name":"大陈镇"}]},{"code":"330783","name":"东阳市","children":[{"code":"330783001","name":"吴宁街道"},{"code":"330783003","name":"南市街道"},{"code":"330783004","name":"白云街道"},{"code":"330783005","name":"江北街道"},{"code":"330783006","name":"城东街道"},{"code":"330783007","name":"六石街道"},{"code":"330783106","name":"巍山镇"},{"code":"330783107","name":"虎鹿镇"},{"code":"330783108","name":"歌山镇"},{"code":"330783109","name":"佐村镇"},{"code":"330783110","name":"东阳江镇"},{"code":"330783112","name":"湖溪镇"},{"code":"330783114","name":"马宅镇"},{"code":"330783116","name":"千祥镇"},{"code":"330783118","name":"南马镇"},{"code":"330783122","name":"画水镇"},{"code":"330783123","name":"横店镇"},{"code":"330783201","name":"三单乡"}]},{"code":"330784","name":"永康市","children":[{"code":"330784001","name":"东城街道"},{"code":"330784002","name":"西城街道"},{"code":"330784003","name":"江南街道"},{"code":"330784105","name":"石柱镇"},{"code":"330784106","name":"前仓镇"},{"code":"330784107","name":"舟山镇"},{"code":"330784108","name":"古山镇"},{"code":"330784109","name":"方岩镇"},{"code":"330784110","name":"龙山镇"},{"code":"330784111","name":"西溪镇"},{"code":"330784112","name":"象珠镇"},{"code":"330784113","name":"唐先镇"},{"code":"330784114","name":"花街镇"},{"code":"330784115","name":"芝英镇"}]}]},{"code":"3308","name":"衢州市","children":[{"code":"330802","name":"柯城区","children":[{"code":"330802005","name":"新新街道"},{"code":"330802006","name":"府山街道"},{"code":"330802007","name":"荷花街道"},{"code":"330802008","name":"信安街道"},{"code":"330802009","name":"白云街道"},{"code":"330802010","name":"双港街道"},{"code":"330802012","name":"衢化街道"},{"code":"330802013","name":"花园街道"},{"code":"330802100","name":"石梁镇"},{"code":"330802101","name":"航埠镇"},{"code":"330802205","name":"黄家乡"},{"code":"330802209","name":"七里乡"},{"code":"330802210","name":"九华乡"},{"code":"330802211","name":"沟溪乡"},{"code":"330802212","name":"华墅乡"},{"code":"330802213","name":"姜家山乡"},{"code":"330802214","name":"万田乡"},{"code":"330802215","name":"石室乡"}]},{"code":"330803","name":"衢江区","children":[{"code":"330803001","name":"樟潭街道"},{"code":"330803002","name":"浮石街道"},{"code":"330803100","name":"上方镇"},{"code":"330803101","name":"峡川镇"},{"code":"330803103","name":"莲花镇"},{"code":"330803109","name":"全旺镇"},{"code":"330803110","name":"大洲镇"},{"code":"330803111","name":"后溪镇"},{"code":"330803112","name":"廿里镇"},{"code":"330803113","name":"湖南镇"},{"code":"330803114","name":"高家镇"},{"code":"330803115","name":"杜泽镇"},{"code":"330803200","name":"灰坪乡"},{"code":"330803202","name":"太真乡"},{"code":"330803203","name":"双桥乡"},{"code":"330803206","name":"周家乡"},{"code":"330803207","name":"云溪乡"},{"code":"330803213","name":"举村乡"},{"code":"330803218","name":"岭洋乡"},{"code":"330803219","name":"黄坛口乡"}]},{"code":"330822","name":"常山县","children":[{"code":"330822001","name":"天马街道"},{"code":"330822002","name":"紫港街道"},{"code":"330822003","name":"金川街道"},{"code":"330822104","name":"白石镇"},{"code":"330822108","name":"招贤镇"},{"code":"330822109","name":"青石镇"},{"code":"330822111","name":"球川镇"},{"code":"330822115","name":"辉埠镇"},{"code":"330822116","name":"芳村镇"},{"code":"330822200","name":"何家乡"},{"code":"330822211","name":"同弓乡"},{"code":"330822213","name":"大桥头乡"},{"code":"330822219","name":"新昌乡"},{"code":"330822221","name":"东案乡"}]},{"code":"330824","name":"开化县","children":[{"code":"330824106","name":"桐村镇"},{"code":"330824107","name":"杨林镇"},{"code":"330824108","name":"苏庄镇"},{"code":"330824109","name":"齐溪镇"},{"code":"330824113","name":"村头镇"},{"code":"330824115","name":"华埠镇"},{"code":"330824116","name":"马金镇"},{"code":"330824117","name":"池淮镇"},{"code":"330824202","name":"中村乡"},{"code":"330824205","name":"长虹乡"},{"code":"330824208","name":"何田乡"},{"code":"330824216","name":"林山乡"},{"code":"330824217","name":"音坑乡"},{"code":"330824218","name":"大溪边乡"}]},{"code":"330825","name":"龙游县","children":[{"code":"330825001","name":"龙洲街道"},{"code":"330825002","name":"东华街道"},{"code":"330825101","name":"湖镇镇"},{"code":"330825102","name":"小南海镇"},{"code":"330825106","name":"詹家镇"},{"code":"330825109","name":"溪口镇"},{"code":"330825110","name":"横山镇"},{"code":"330825111","name":"塔石镇"},{"code":"330825201","name":"罗家乡"},{"code":"330825203","name":"庙下乡"},{"code":"330825207","name":"石佛乡"},{"code":"330825209","name":"社阳乡"},{"code":"330825211","name":"大街乡"},{"code":"330825212","name":"沐尘畲族乡"},{"code":"330825213","name":"模环乡"}]},{"code":"330881","name":"江山市","children":[{"code":"330881001","name":"双塔街道"},{"code":"330881002","name":"虎山街道"},{"code":"330881003","name":"清湖街道"},{"code":"330881102","name":"四都镇"},{"code":"330881105","name":"坛石镇"},{"code":"330881106","name":"大桥镇"},{"code":"330881109","name":"新塘边镇"},{"code":"330881112","name":"廿八都镇"},{"code":"330881113","name":"长台镇"},{"code":"330881116","name":"上余镇"},{"code":"330881118","name":"凤林镇"},{"code":"330881119","name":"峡口镇"},{"code":"330881120","name":"石门镇"},{"code":"330881121","name":"贺村镇"},{"code":"330881201","name":"大陈乡"},{"code":"330881203","name":"碗窑乡"},{"code":"330881207","name":"保安乡"},{"code":"330881213","name":"塘源口乡"},{"code":"330881214","name":"张村乡"}]}]},{"code":"3309","name":"舟山市","children":[{"code":"330902","name":"定海区","children":[{"code":"330902002","name":"昌国街道"},{"code":"330902003","name":"环南街道"},{"code":"330902004","name":"城东街道"},{"code":"330902005","name":"盐仓街道"},{"code":"330902006","name":"临城街道"},{"code":"330902007","name":"岑港街道"},{"code":"330902008","name":"马岙街道"},{"code":"330902009","name":"双桥街道"},{"code":"330902010","name":"小沙街道"},{"code":"330902050","name":"千岛街道"},{"code":"330902100","name":"金塘镇"},{"code":"330902104","name":"白泉镇"},{"code":"330902105","name":"干览镇"}]},{"code":"330903","name":"普陀区","children":[{"code":"330903001","name":"沈家门街道"},{"code":"330903003","name":"东港街道"},{"code":"330903004","name":"朱家尖街道"},{"code":"330903005","name":"展茅街道"},{"code":"330903100","name":"六横镇"},{"code":"330903102","name":"虾峙镇"},{"code":"330903104","name":"桃花镇"},{"code":"330903105","name":"东极镇"},{"code":"330903106","name":"普陀山镇"}]},{"code":"330921","name":"岱山县","children":[{"code":"330921100","name":"高亭镇"},{"code":"330921101","name":"东沙镇"},{"code":"330921102","name":"岱东镇"},{"code":"330921103","name":"岱西镇"},{"code":"330921105","name":"长涂镇"},{"code":"330921106","name":"衢山镇"},{"code":"330921200","name":"秀山乡"}]},{"code":"330922","name":"嵊泗县","children":[{"code":"330922100","name":"菜园镇"},{"code":"330922101","name":"嵊山镇"},{"code":"330922102","name":"洋山镇"},{"code":"330922200","name":"五龙乡"},{"code":"330922201","name":"黄龙乡"},{"code":"330922202","name":"枸杞乡"},{"code":"330922203","name":"花鸟乡"}]}]},{"code":"3310","name":"台州市","children":[{"code":"331002","name":"椒江区","children":[{"code":"331002001","name":"海门街道"},{"code":"331002002","name":"白云街道"},{"code":"331002003","name":"葭沚街道"},{"code":"331002004","name":"洪家街道"},{"code":"331002005","name":"三甲街道"},{"code":"331002006","name":"下陈街道"},{"code":"331002007","name":"前所街道"},{"code":"331002008","name":"章安街道"},{"code":"331002009","name":"海虹街道"},{"code":"331002101","name":"大陈镇"},{"code":"331002400","name":"椒江农场"},{"code":"331002401","name":"滨海工业区"},{"code":"331002402","name":"月湖新城"}]},{"code":"331003","name":"黄岩区","children":[{"code":"331003001","name":"东城街道"},{"code":"331003002","name":"南城街道"},{"code":"331003003","name":"西城街道"},{"code":"331003004","name":"北城街道"},{"code":"331003005","name":"新前街道"},{"code":"331003006","name":"澄江街道"},{"code":"331003007","name":"江口街道"},{"code":"331003008","name":"高桥街道"},{"code":"331003101","name":"宁溪镇"},{"code":"331003102","name":"北洋镇"},{"code":"331003103","name":"头陀镇"},{"code":"331003107","name":"院桥镇"},{"code":"331003108","name":"沙埠镇"},{"code":"331003200","name":"屿头乡"},{"code":"331003201","name":"上郑乡"},{"code":"331003202","name":"富山乡"},{"code":"331003203","name":"茅畲乡"},{"code":"331003204","name":"上垟乡"},{"code":"331003205","name":"平田乡"}]},{"code":"331004","name":"路桥区","children":[{"code":"331004001","name":"路南街道"},{"code":"331004002","name":"路桥街道"},{"code":"331004003","name":"路北街道"},{"code":"331004004","name":"螺洋街道"},{"code":"331004005","name":"桐屿街道"},{"code":"331004006","name":"峰江街道"},{"code":"331004103","name":"新桥镇"},{"code":"331004104","name":"横街镇"},{"code":"331004106","name":"金清镇"},{"code":"331004107","name":"蓬街镇"},{"code":"331004400","name":"滨海工业城"},{"code":"331004401","name":"滨海新区"}]},{"code":"331022","name":"三门县","children":[{"code":"331022001","name":"海游街道"},{"code":"331022002","name":"海润街道"},{"code":"331022003","name":"沙柳街道"},{"code":"331022102","name":"珠岙镇"},{"code":"331022103","name":"亭旁镇"},{"code":"331022105","name":"健跳镇"},{"code":"331022106","name":"横渡镇"},{"code":"331022107","name":"浦坝港镇"},{"code":"331022108","name":"花桥镇"},{"code":"331022205","name":"蛇蟠乡"}]},{"code":"331023","name":"天台县","children":[{"code":"331023001","name":"赤城街道"},{"code":"331023002","name":"始丰街道"},{"code":"331023003","name":"福溪街道"},{"code":"331023101","name":"白鹤镇"},{"code":"331023102","name":"石梁镇"},{"code":"331023104","name":"街头镇"},{"code":"331023105","name":"平桥镇"},{"code":"331023106","name":"坦头镇"},{"code":"331023107","name":"三合镇"},{"code":"331023108","name":"洪畴镇"},{"code":"331023200","name":"三州乡"},{"code":"331023203","name":"龙溪乡"},{"code":"331023204","name":"雷峰乡"},{"code":"331023207","name":"南屏乡"},{"code":"331023209","name":"泳溪乡"}]},{"code":"331024","name":"仙居县","children":[{"code":"331024001","name":"安洲街道"},{"code":"331024002","name":"南峰街道"},{"code":"331024003","name":"福应街道"},{"code":"331024101","name":"横溪镇"},{"code":"331024102","name":"埠头镇"},{"code":"331024103","name":"白塔镇"},{"code":"331024104","name":"田市镇"},{"code":"331024105","name":"官路镇"},{"code":"331024106","name":"下各镇"},{"code":"331024107","name":"朱溪镇"},{"code":"331024200","name":"安岭乡"},{"code":"331024201","name":"溪港乡"},{"code":"331024202","name":"湫山乡"},{"code":"331024203","name":"淡竹乡"},{"code":"331024204","name":"皤滩乡"},{"code":"331024205","name":"上张乡"},{"code":"331024206","name":"步路乡"},{"code":"331024207","name":"广度乡"},{"code":"331024209","name":"大战乡"},{"code":"331024210","name":"双庙乡"}]},{"code":"331081","name":"温岭市","children":[{"code":"331081001","name":"太平街道"},{"code":"331081002","name":"城东街道"},{"code":"331081003","name":"城西街道"},{"code":"331081004","name":"城北街道"},{"code":"331081005","name":"横峰街道"},{"code":"331081100","name":"泽国镇"},{"code":"331081101","name":"大溪镇"},{"code":"331081102","name":"松门镇"},{"code":"331081103","name":"箬横镇"},{"code":"331081104","name":"新河镇"},{"code":"331081105","name":"石塘镇"},{"code":"331081106","name":"滨海镇"},{"code":"331081107","name":"温峤镇"},{"code":"331081108","name":"城南镇"},{"code":"331081109","name":"石桥头镇"},{"code":"331081110","name":"坞根镇"},{"code":"331081400","name":"东部新区"}]},{"code":"331082","name":"临海市","children":[{"code":"331082001","name":"古城街道"},{"code":"331082002","name":"大洋街道"},{"code":"331082003","name":"江南街道"},{"code":"331082004","name":"大田街道"},{"code":"331082005","name":"邵家渡街道"},{"code":"331082100","name":"汛桥镇"},{"code":"331082101","name":"东塍镇"},{"code":"331082103","name":"汇溪镇"},{"code":"331082104","name":"小芝镇"},{"code":"331082105","name":"河头镇"},{"code":"331082106","name":"白水洋镇"},{"code":"331082107","name":"括苍镇"},{"code":"331082108","name":"永丰镇"},{"code":"331082109","name":"尤溪镇"},{"code":"331082110","name":"涌泉镇"},{"code":"331082111","name":"沿江镇"},{"code":"331082112","name":"杜桥镇"},{"code":"331082113","name":"上盘镇"},{"code":"331082114","name":"桃渚镇"}]},{"code":"331083","name":"玉环市","children":[{"code":"331083001","name":"玉城街道"},{"code":"331083002","name":"坎门街道"},{"code":"331083003","name":"大麦屿街道"},{"code":"331083101","name":"清港镇"},{"code":"331083102","name":"楚门镇"},{"code":"331083103","name":"干江镇"},{"code":"331083105","name":"沙门镇"},{"code":"331083106","name":"芦浦镇"},{"code":"331083107","name":"龙溪镇"},{"code":"331083201","name":"鸡山乡"},{"code":"331083202","name":"海山乡"},{"code":"331083400","name":"玉环经济开发区"}]}]},{"code":"3311","name":"丽水市","children":[{"code":"331102","name":"莲都区","children":[{"code":"331102001","name":"紫金街道"},{"code":"331102002","name":"岩泉街道"},{"code":"331102003","name":"万象街道"},{"code":"331102004","name":"白云街道"},{"code":"331102007","name":"联城街道"},{"code":"331102008","name":"南明山街道"},{"code":"331102100","name":"碧湖镇"},{"code":"331102102","name":"大港头镇"},{"code":"331102103","name":"老竹畲族镇"},{"code":"331102104","name":"雅溪镇"},{"code":"331102200","name":"太平乡"},{"code":"331102201","name":"仙渡乡"},{"code":"331102202","name":"峰源乡"},{"code":"331102204","name":"丽新畲族乡"},{"code":"331102206","name":"黄村乡"}]},{"code":"331121","name":"青田县","children":[{"code":"331121001","name":"鹤城街道"},{"code":"331121002","name":"瓯南街道"},{"code":"331121003","name":"油竹街道"},{"code":"331121004","name":"三溪口街道"},{"code":"331121101","name":"温溪镇"},{"code":"331121102","name":"东源镇"},{"code":"331121103","name":"高湖镇"},{"code":"331121104","name":"船寮镇"},{"code":"331121105","name":"海口镇"},{"code":"331121106","name":"腊口镇"},{"code":"331121107","name":"北山镇"},{"code":"331121108","name":"山口镇"},{"code":"331121109","name":"仁庄镇"},{"code":"331121110","name":"祯埠镇"},{"code":"331121200","name":"万山乡"},{"code":"331121201","name":"黄垟乡"},{"code":"331121202","name":"季宅乡"},{"code":"331121203","name":"高市乡"},{"code":"331121204","name":"海溪乡"},{"code":"331121205","name":"章村乡"},{"code":"331121206","name":"祯旺乡"},{"code":"331121208","name":"舒桥乡"},{"code":"331121209","name":"巨浦乡"},{"code":"331121211","name":"万阜乡"},{"code":"331121212","name":"方山乡"},{"code":"331121213","name":"汤垟乡"},{"code":"331121214","name":"贵岙乡"},{"code":"331121215","name":"小舟山乡"},{"code":"331121216","name":"吴坑乡"},{"code":"331121217","name":"仁宫乡"},{"code":"331121218","name":"章旦乡"},{"code":"331121219","name":"阜山乡"}]},{"code":"331122","name":"缙云县","children":[{"code":"331122001","name":"五云街道"},{"code":"331122002","name":"新碧街道"},{"code":"331122003","name":"仙都街道"},{"code":"331122101","name":"壶镇镇"},{"code":"331122102","name":"新建镇"},{"code":"331122103","name":"舒洪镇"},{"code":"331122105","name":"大洋镇"},{"code":"331122106","name":"东渡镇"},{"code":"331122107","name":"东方镇"},{"code":"331122108","name":"大源镇"},{"code":"331122203","name":"七里乡"},{"code":"331122206","name":"前路乡"},{"code":"331122207","name":"三溪乡"},{"code":"331122208","name":"溶江乡"},{"code":"331122209","name":"双溪口乡"},{"code":"331122210","name":"胡源乡"},{"code":"331122211","name":"方溪乡"},{"code":"331122212","name":"石笕乡"}]},{"code":"331123","name":"遂昌县","children":[{"code":"331123001","name":"妙高街道"},{"code":"331123002","name":"云峰街道"},{"code":"331123102","name":"新路湾镇"},{"code":"331123103","name":"北界镇"},{"code":"331123104","name":"金竹镇"},{"code":"331123105","name":"大柘镇"},{"code":"331123106","name":"石练镇"},{"code":"331123107","name":"王村口镇"},{"code":"331123108","name":"黄沙腰镇"},{"code":"331123200","name":"三仁畲族乡"},{"code":"331123201","name":"濂竹乡"},{"code":"331123202","name":"应村乡"},{"code":"331123203","name":"高坪乡"},{"code":"331123204","name":"湖山乡"},{"code":"331123205","name":"蔡源乡"},{"code":"331123206","name":"焦滩乡"},{"code":"331123207","name":"龙洋乡"},{"code":"331123208","name":"柘岱口乡"},{"code":"331123209","name":"西畈乡"},{"code":"331123210","name":"垵口乡"}]},{"code":"331124","name":"松阳县","children":[{"code":"331124001","name":"西屏街道"},{"code":"331124002","name":"水南街道"},{"code":"331124003","name":"望松街道"},{"code":"331124101","name":"古市镇"},{"code":"331124102","name":"玉岩镇"},{"code":"331124103","name":"象溪镇"},{"code":"331124104","name":"大东坝镇"},{"code":"331124105","name":"新兴镇"},{"code":"331124201","name":"叶村乡"},{"code":"331124202","name":"斋坛乡"},{"code":"331124203","name":"三都乡"},{"code":"331124204","name":"竹源乡"},{"code":"331124205","name":"四都乡"},{"code":"331124206","name":"赤寿乡"},{"code":"331124208","name":"樟溪乡"},{"code":"331124211","name":"枫坪乡"},{"code":"331124212","name":"板桥畲族乡"},{"code":"331124213","name":"裕溪乡"},{"code":"331124214","name":"安民乡"}]},{"code":"331125","name":"云和县","children":[{"code":"331125001","name":"浮云街道"},{"code":"331125002","name":"元和街道"},{"code":"331125003","name":"白龙山街道"},{"code":"331125004","name":"凤凰山街道"},{"code":"331125105","name":"崇头镇"},{"code":"331125106","name":"石塘镇"},{"code":"331125107","name":"紧水滩镇"},{"code":"331125201","name":"雾溪畲族乡"},{"code":"331125202","name":"安溪畲族乡"},{"code":"331125206","name":"赤石乡"}]},{"code":"331126","name":"庆元县","children":[{"code":"331126001","name":"松源街道"},{"code":"331126002","name":"濛洲街道"},{"code":"331126003","name":"屏都街道"},{"code":"331126101","name":"黄田镇"},{"code":"331126102","name":"竹口镇"},{"code":"331126104","name":"荷地镇"},{"code":"331126105","name":"左溪镇"},{"code":"331126106","name":"贤良镇"},{"code":"331126107","name":"百山祖镇"},{"code":"331126200","name":"岭头乡"},{"code":"331126201","name":"五大堡乡"},{"code":"331126202","name":"淤上乡"},{"code":"331126203","name":"安南乡"},{"code":"331126204","name":"张村乡"},{"code":"331126205","name":"隆宫乡"},{"code":"331126206","name":"举水乡"},{"code":"331126207","name":"江根乡"},{"code":"331126209","name":"龙溪乡"},{"code":"331126211","name":"官塘乡"}]},{"code":"331127","name":"景宁畲族自治县","children":[{"code":"331127001","name":"红星街道"},{"code":"331127002","name":"鹤溪街道"},{"code":"331127101","name":"渤海镇"},{"code":"331127102","name":"东坑镇"},{"code":"331127103","name":"英川镇"},{"code":"331127104","name":"沙湾镇"},{"code":"331127201","name":"大均乡"},{"code":"331127202","name":"澄照乡"},{"code":"331127203","name":"梅岐乡"},{"code":"331127205","name":"郑坑乡"},{"code":"331127208","name":"大漈乡"},{"code":"331127209","name":"景南乡"},{"code":"331127210","name":"雁溪乡"},{"code":"331127212","name":"鸬鹚乡"},{"code":"331127213","name":"梧桐乡"},{"code":"331127214","name":"标溪乡"},{"code":"331127215","name":"毛垟乡"},{"code":"331127216","name":"秋炉乡"},{"code":"331127217","name":"大地乡"},{"code":"331127218","name":"家地乡"},{"code":"331127219","name":"九龙乡"}]},{"code":"331181","name":"龙泉市","children":[{"code":"331181001","name":"龙渊街道"},{"code":"331181002","name":"西街街道"},{"code":"331181003","name":"剑池街道"},{"code":"331181004","name":"石达石街道"},{"code":"331181100","name":"八都镇"},{"code":"331181101","name":"上垟镇"},{"code":"331181102","name":"小梅镇"},{"code":"331181103","name":"查田镇"},{"code":"331181104","name":"安仁镇"},{"code":"331181105","name":"锦溪镇"},{"code":"331181106","name":"住龙镇"},{"code":"331181107","name":"屏南镇"},{"code":"331181200","name":"兰巨乡"},{"code":"331181202","name":"宝溪乡"},{"code":"331181203","name":"竹垟畲族乡"},{"code":"331181204","name":"道太乡"},{"code":"331181205","name":"岩樟乡"},{"code":"331181206","name":"城北乡"},{"code":"331181207","name":"龙南乡"}]}]}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市","children":[{"code":"340102","name":"瑶海区","children":[{"code":"340102001","name":"明光路街道"},{"code":"340102003","name":"胜利路街道"},{"code":"340102004","name":"三里街街道"},{"code":"340102005","name":"铜陵路街道"},{"code":"340102006","name":"七里站街道"},{"code":"340102007","name":"红光街道"},{"code":"340102008","name":"和平路街道"},{"code":"340102010","name":"城东街道"},{"code":"340102011","name":"长淮街道"},{"code":"340102012","name":"方庙街道"},{"code":"340102014","name":"嘉山路街道"},{"code":"340102100","name":"大兴镇"},{"code":"340102401","name":"合肥龙岗综合经济开发区"}]},{"code":"340103","name":"庐阳区","children":[{"code":"340103001","name":"亳州路街道"},{"code":"340103002","name":"双岗街道"},{"code":"340103003","name":"杏林街道"},{"code":"340103004","name":"海棠街道"},{"code":"340103005","name":"杏花村街道"},{"code":"340103006","name":"逍遥津街道"},{"code":"340103009","name":"三孝口街道"},{"code":"340103012","name":"四里河街道"},{"code":"340103100","name":"大杨镇"},{"code":"340103200","name":"三十岗乡"},{"code":"340103400","name":"庐阳工业区(林店街道)"}]},{"code":"340104","name":"蜀山区","children":[{"code":"340104001","name":"三里庵街道"},{"code":"340104002","name":"稻香村街道"},{"code":"340104003","name":"琥珀街道"},{"code":"340104004","name":"南七街道"},{"code":"340104005","name":"西园街道"},{"code":"340104006","name":"五里墩街道"},{"code":"340104007","name":"荷叶地街道"},{"code":"340104008","name":"笔架山街道"},{"code":"340104100","name":"井岗镇"},{"code":"340104101","name":"南岗镇"},{"code":"340104102","name":"小庙镇"},{"code":"340104400","name":"蜀山新产业园区"}]},{"code":"340111","name":"包河区","children":[{"code":"340111001","name":"骆岗街道"},{"code":"340111002","name":"常青街道"},{"code":"340111003","name":"芜湖路街道"},{"code":"340111004","name":"包公街道"},{"code":"340111005","name":"望湖街道"},{"code":"340111006","name":"义城街道"},{"code":"340111007","name":"烟墩街道"},{"code":"340111008","name":"滨湖世纪社区街道"},{"code":"340111009","name":"方兴社区街道"},{"code":"340111010","name":"万年埠街道"},{"code":"340111011","name":"同安街道"},{"code":"340111100","name":"淝河镇"},{"code":"340111102","name":"大圩镇"}]},{"code":"340121","name":"长丰县","children":[{"code":"340121100","name":"水湖镇"},{"code":"340121101","name":"庄墓镇"},{"code":"340121102","name":"杨庙镇"},{"code":"340121103","name":"吴山镇"},{"code":"340121104","name":"岗集镇"},{"code":"340121105","name":"双墩镇"},{"code":"340121106","name":"下塘镇"},{"code":"340121107","name":"朱巷镇"},{"code":"340121109","name":"陶楼镇"},{"code":"340121110","name":"杜集镇"},{"code":"340121111","name":"义井镇"},{"code":"340121112","name":"左店镇"},{"code":"340121200","name":"罗塘乡"},{"code":"340121203","name":"造甲乡"},{"code":"340121400","name":"双凤开发区"},{"code":"340121401","name":"安徽省水家湖农场"}]},{"code":"340122","name":"肥东县","children":[{"code":"340122100","name":"店埠镇"},{"code":"340122101","name":"撮镇镇"},{"code":"340122102","name":"梁园镇"},{"code":"340122103","name":"桥头集镇"},{"code":"340122104","name":"长临河镇"},{"code":"340122105","name":"石塘镇"},{"code":"340122106","name":"古城镇"},{"code":"340122107","name":"八斗镇"},{"code":"340122108","name":"元疃镇"},{"code":"340122109","name":"白龙镇"},{"code":"340122110","name":"包公镇"},{"code":"340122111","name":"陈集镇"},{"code":"340122200","name":"众兴乡"},{"code":"340122201","name":"张集乡"},{"code":"340122202","name":"马湖乡"},{"code":"340122204","name":"响导乡"},{"code":"340122205","name":"杨店乡"},{"code":"340122206","name":"牌坊回族满族乡"},{"code":"340122401","name":"肥东新城开发区"},{"code":"340122402","name":"合肥循环经济示范园"}]},{"code":"340123","name":"肥西县","children":[{"code":"340123100","name":"上派镇"},{"code":"340123101","name":"三河镇"},{"code":"340123103","name":"官亭镇"},{"code":"340123105","name":"山南镇"},{"code":"340123106","name":"花岗镇"},{"code":"340123107","name":"紫蓬镇"},{"code":"340123108","name":"桃花镇"},{"code":"340123109","name":"丰乐镇"},{"code":"340123200","name":"高店乡"},{"code":"340123201","name":"铭传乡"},{"code":"340123202","name":"柿树岗乡"},{"code":"340123203","name":"严店乡"},{"code":"340123400","name":"安徽肥西经济开发区"},{"code":"340123401","name":"紫蓬山管委会"}]},{"code":"340124","name":"庐江县","children":[{"code":"340124100","name":"庐城镇"},{"code":"340124101","name":"冶父山镇"},{"code":"340124102","name":"万山镇"},{"code":"340124103","name":"汤池镇"},{"code":"340124104","name":"郭河镇"},{"code":"340124105","name":"金牛镇"},{"code":"340124106","name":"石头镇"},{"code":"340124107","name":"同大镇"},{"code":"340124108","name":"白山镇"},{"code":"340124109","name":"盛桥镇"},{"code":"340124110","name":"白湖镇"},{"code":"340124111","name":"龙桥镇"},{"code":"340124112","name":"矾山镇"},{"code":"340124113","name":"罗河镇"},{"code":"340124114","name":"泥河镇"},{"code":"340124115","name":"乐桥镇"},{"code":"340124116","name":"柯坦镇"},{"code":"340124400","name":"安徽庐江经济开发区"},{"code":"340124401","name":"白湖监狱生活社区"}]},{"code":"340171","name":"合肥高新技术产业开发区","children":[{"code":"340171401","name":"天乐社区服务中心"},{"code":"340171402","name":"兴园社区服务中心"},{"code":"340171403","name":"蜀麓社区服务中心"},{"code":"340171404","name":"长宁社区服务中心"},{"code":"340171405","name":"小庙托管区"}]},{"code":"340172","name":"合肥经济技术开发区","children":[{"code":"340172001","name":"莲花社区管理委员会街道"},{"code":"340172002","name":"芙蓉社区管理委员会街道"},{"code":"340172003","name":"锦绣社区管理委员会街道"},{"code":"340172004","name":"海恒社区管理委员会街道"},{"code":"340172005","name":"临湖社区管理委员会街道"},{"code":"340172006","name":"高刘街道街道"}]},{"code":"340173","name":"合肥新站高新技术产业开发区","children":[{"code":"340173001","name":"七里塘街道"},{"code":"340173002","name":"磨店街道"},{"code":"340173003","name":"三十头街道"},{"code":"340173400","name":"瑶海社区服务中心"},{"code":"340173401","name":"站北社区服务中心"}]},{"code":"340181","name":"巢湖市","children":[{"code":"340181001","name":"中庙街道"},{"code":"340181002","name":"亚父街道"},{"code":"340181003","name":"卧牛山街道"},{"code":"340181004","name":"凤凰山街道"},{"code":"340181005","name":"天河街道"},{"code":"340181006","name":"半汤街道"},{"code":"340181100","name":"栏杆集镇"},{"code":"340181101","name":"苏湾镇"},{"code":"340181102","name":"柘皋镇"},{"code":"340181103","name":"银屏镇"},{"code":"340181104","name":"夏阁镇"},{"code":"340181105","name":"中垾镇"},{"code":"340181106","name":"散兵镇"},{"code":"340181107","name":"烔炀镇"},{"code":"340181108","name":"黄麓镇"},{"code":"340181109","name":"槐林镇"},{"code":"340181110","name":"坝镇镇"},{"code":"340181200","name":"庙岗乡"}]}]},{"code":"3402","name":"芜湖市","children":[{"code":"340202","name":"镜湖区","children":[{"code":"340202012","name":"方村街道"},{"code":"340202013","name":"张家山街道"},{"code":"340202014","name":"赭麓街道"},{"code":"340202015","name":"范罗山街道"},{"code":"340202016","name":"赭山街道"},{"code":"340202017","name":"弋矶山街道"},{"code":"340202018","name":"汀棠街道"},{"code":"340202019","name":"天门山街道"},{"code":"340202020","name":"大砻坊街道"},{"code":"340202021","name":"荆山街道"}]},{"code":"340207","name":"鸠江区","children":[{"code":"340207001","name":"四褐山街道"},{"code":"340207002","name":"裕溪口街道"},{"code":"340207003","name":"官陡街道"},{"code":"340207004","name":"湾里街道"},{"code":"340207005","name":"清水街道"},{"code":"340207101","name":"沈巷镇"},{"code":"340207102","name":"二坝镇"},{"code":"340207103","name":"汤沟镇"},{"code":"340207104","name":"白茆镇"},{"code":"340207401","name":"安徽省江北产业集中区"},{"code":"340207402","name":"安徽芜湖鸠江经济开发区"},{"code":"340207403","name":"鸠江经济开发区二坝园区"}]},{"code":"340209","name":"弋江区","children":[{"code":"340209001","name":"中南街道"},{"code":"340209002","name":"马塘街道"},{"code":"340209003","name":"瀂港街道"},{"code":"340209004","name":"火龙街道"},{"code":"340209005","name":"白马街道"},{"code":"340209006","name":"南瑞街道"},{"code":"340209007","name":"三山街道"},{"code":"340209008","name":"保定街道"},{"code":"340209009","name":"龙湖街道"},{"code":"340209010","name":"高安街道"},{"code":"340209100","name":"峨桥镇"},{"code":"340209400","name":"芜湖高新技术产业开发区"}]},{"code":"340210","name":"湾沚区","children":[{"code":"340210100","name":"湾沚镇"},{"code":"340210101","name":"陶辛镇"},{"code":"340210102","name":"六郎镇"},{"code":"340210103","name":"花桥镇"},{"code":"340210104","name":"红杨镇"},{"code":"340210400","name":"安徽新芜经济开发区"}]},{"code":"340212","name":"繁昌区","children":[{"code":"340212100","name":"繁阳镇"},{"code":"340212101","name":"荻港镇"},{"code":"340212102","name":"孙村镇"},{"code":"340212103","name":"平铺镇"},{"code":"340212104","name":"新港镇"},{"code":"340212105","name":"峨山镇"},{"code":"340212401","name":"安徽繁昌工业园区"}]},{"code":"340223","name":"南陵县","children":[{"code":"340223100","name":"籍山镇"},{"code":"340223101","name":"许镇镇"},{"code":"340223102","name":"弋江镇"},{"code":"340223103","name":"三里镇"},{"code":"340223104","name":"何湾镇"},{"code":"340223105","name":"工山镇"},{"code":"340223106","name":"烟墩镇"},{"code":"340223107","name":"家发镇"},{"code":"340223400","name":"安徽南陵工业园区"}]},{"code":"340271","name":"芜湖经济技术开发区","children":[{"code":"340271001","name":"龙山街道"},{"code":"340271002","name":"万春街道"}]},{"code":"340272","name":"安徽芜湖三山经济开发区","children":[{"code":"340272400","name":"三山经济开发区管委会"}]},{"code":"340281","name":"无为市","children":[{"code":"340281100","name":"无城镇"},{"code":"340281101","name":"襄安镇"},{"code":"340281104","name":"陡沟镇"},{"code":"340281105","name":"石涧镇"},{"code":"340281106","name":"严桥镇"},{"code":"340281107","name":"开城镇"},{"code":"340281108","name":"蜀山镇"},{"code":"340281109","name":"牛埠镇"},{"code":"340281110","name":"刘渡镇"},{"code":"340281111","name":"姚沟镇"},{"code":"340281112","name":"泥汊镇"},{"code":"340281114","name":"福渡镇"},{"code":"340281115","name":"泉塘镇"},{"code":"340281116","name":"赫店镇"},{"code":"340281117","name":"红庙镇"},{"code":"340281118","name":"高沟镇"},{"code":"340281119","name":"鹤毛镇"},{"code":"340281120","name":"十里墩镇"},{"code":"340281121","name":"昆山镇"},{"code":"340281122","name":"洪巷镇"},{"code":"340281400","name":"安徽无为经济开发区"}]}]},{"code":"3403","name":"蚌埠市","children":[{"code":"340302","name":"龙子湖区","children":[{"code":"340302001","name":"东风街道"},{"code":"340302002","name":"延安街道"},{"code":"340302003","name":"治淮街道"},{"code":"340302004","name":"东升街道"},{"code":"340302005","name":"解放街道"},{"code":"340302006","name":"曹山街道"},{"code":"340302100","name":"长淮卫镇"},{"code":"340302200","name":"李楼乡"}]},{"code":"340303","name":"蚌山区","children":[{"code":"340303001","name":"天桥街道"},{"code":"340303002","name":"青年街道"},{"code":"340303003","name":"纬二路街道"},{"code":"340303004","name":"黄庄街道"},{"code":"340303005","name":"宏业村街道"},{"code":"340303200","name":"燕山乡"},{"code":"340303201","name":"雪华乡"}]},{"code":"340304","name":"禹会区","children":[{"code":"340304001","name":"大庆街道"},{"code":"340304002","name":"纬四街道"},{"code":"340304003","name":"钓鱼台街道"},{"code":"340304004","name":"张公山街道"},{"code":"340304005","name":"朝阳街道"},{"code":"340304100","name":"秦集镇"},{"code":"340304101","name":"马城镇"},{"code":"340304200","name":"长青乡"},{"code":"340304401","name":"安徽怀远马城经济开发区"}]},{"code":"340311","name":"淮上区","children":[{"code":"340311001","name":"淮滨街道"},{"code":"340311100","name":"小蚌埠镇"},{"code":"340311101","name":"吴小街镇"},{"code":"340311102","name":"曹老集镇"},{"code":"340311103","name":"梅桥镇"},{"code":"340311104","name":"沫河口镇"},{"code":"340311402","name":"安徽蚌埠淮上经济开发区"}]},{"code":"340321","name":"怀远县","children":[{"code":"340321100","name":"榴城镇"},{"code":"340321101","name":"包集镇"},{"code":"340321102","name":"龙亢镇"},{"code":"340321103","name":"河溜镇"},{"code":"340321104","name":"常坟镇"},{"code":"340321106","name":"双桥集镇"},{"code":"340321107","name":"魏庄镇"},{"code":"340321108","name":"万福镇"},{"code":"340321109","name":"唐集镇"},{"code":"340321110","name":"白莲坡镇"},{"code":"340321111","name":"褚集镇"},{"code":"340321112","name":"古城镇"},{"code":"340321113","name":"荆山镇"},{"code":"340321114","name":"淝南镇"},{"code":"340321115","name":"陈集镇"},{"code":"340321116","name":"淝河镇"},{"code":"340321117","name":"兰桥镇"},{"code":"340321205","name":"徐圩乡"},{"code":"340321400","name":"龙亢农场"},{"code":"340321401","name":"安徽怀远经济开发区"}]},{"code":"340322","name":"五河县","children":[{"code":"340322100","name":"城关镇"},{"code":"340322101","name":"新集镇"},{"code":"340322103","name":"小溪镇"},{"code":"340322104","name":"双忠庙镇"},{"code":"340322105","name":"小圩镇"},{"code":"340322106","name":"东刘集镇"},{"code":"340322107","name":"头铺镇"},{"code":"340322108","name":"大新镇"},{"code":"340322109","name":"武桥镇"},{"code":"340322110","name":"朱顶镇"},{"code":"340322111","name":"浍南镇"},{"code":"340322112","name":"申集镇"},{"code":"340322200","name":"沱湖乡"},{"code":"340322201","name":"临北回族乡"},{"code":"340322400","name":"安徽五河经济开发区"}]},{"code":"340323","name":"固镇县","children":[{"code":"340323100","name":"城关镇"},{"code":"340323101","name":"王庄镇"},{"code":"340323102","name":"新马桥镇"},{"code":"340323103","name":"连城镇"},{"code":"340323104","name":"刘集镇"},{"code":"340323105","name":"任桥镇"},{"code":"340323106","name":"湖沟镇"},{"code":"340323107","name":"濠城镇"},{"code":"340323200","name":"石湖乡"},{"code":"340323201","name":"杨庙乡"},{"code":"340323202","name":"仲兴乡"},{"code":"340323402","name":"安徽固镇经济开发区"}]},{"code":"340371","name":"蚌埠市高新技术开发区","children":[{"code":"340371400","name":"高新技术开发区"}]},{"code":"340372","name":"蚌埠市经济开发区","children":[{"code":"340372006","name":"胜利街道"},{"code":"340372007","name":"龙湖新村街道"},{"code":"340372401","name":"湖滨社区行政事务管理中心"},{"code":"340372402","name":"淮河社区行政事务管理中心"}]}]},{"code":"3404","name":"淮南市","children":[{"code":"340402","name":"大通区","children":[{"code":"340402001","name":"大通街道"},{"code":"340402100","name":"上窑镇"},{"code":"340402101","name":"洛河镇"},{"code":"340402102","name":"九龙岗镇"},{"code":"340402200","name":"孔店乡"},{"code":"340402400","name":"淮南经济开发区"}]},{"code":"340403","name":"田家庵区","children":[{"code":"340403001","name":"田东街道"},{"code":"340403002","name":"新淮街道"},{"code":"340403003","name":"国庆街道"},{"code":"340403004","name":"淮滨街道"},{"code":"340403005","name":"朝阳街道"},{"code":"340403006","name":"公园街道"},{"code":"340403007","name":"洞山街道"},{"code":"340403008","name":"龙泉街道"},{"code":"340403009","name":"泉山街道"},{"code":"340403100","name":"舜耕镇"},{"code":"340403101","name":"安成镇"},{"code":"340403102","name":"曹庵镇"},{"code":"340403103","name":"三和镇"},{"code":"340403201","name":"史院乡"}]},{"code":"340404","name":"谢家集区","children":[{"code":"340404001","name":"谢家集街道"},{"code":"340404002","name":"蔡家岗街道"},{"code":"340404003","name":"立新街道"},{"code":"340404004","name":"谢三村街道"},{"code":"340404005","name":"平山街道"},{"code":"340404100","name":"望峰岗镇"},{"code":"340404101","name":"李郢孜镇"},{"code":"340404102","name":"唐山镇"},{"code":"340404103","name":"杨公镇"},{"code":"340404200","name":"孙庙乡"},{"code":"340404201","name":"孤堆回族乡"}]},{"code":"340405","name":"八公山区","children":[{"code":"340405001","name":"新庄孜街道"},{"code":"340405002","name":"土坝孜街道"},{"code":"340405003","name":"毕家岗街道"},{"code":"340405100","name":"八公山镇"},{"code":"340405121","name":"山王镇"},{"code":"340405400","name":"妙山林场"}]},{"code":"340406","name":"潘集区","children":[{"code":"340406001","name":"田集街道"},{"code":"340406100","name":"高皇镇"},{"code":"340406101","name":"平圩镇"},{"code":"340406102","name":"泥河镇"},{"code":"340406103","name":"潘集镇"},{"code":"340406104","name":"芦集镇"},{"code":"340406105","name":"架河镇"},{"code":"340406106","name":"夹沟镇"},{"code":"340406107","name":"祁集镇"},{"code":"340406108","name":"贺疃镇"},{"code":"340406202","name":"古沟回族乡"}]},{"code":"340421","name":"凤台县","children":[{"code":"340421100","name":"城关镇"},{"code":"340421102","name":"新集镇"},{"code":"340421103","name":"朱马店镇"},{"code":"340421104","name":"岳张集镇"},{"code":"340421105","name":"顾桥镇"},{"code":"340421106","name":"毛集镇"},{"code":"340421107","name":"夏集镇"},{"code":"340421108","name":"桂集镇"},{"code":"340421109","name":"焦岗湖镇"},{"code":"340421110","name":"凤凰镇"},{"code":"340421111","name":"杨村镇"},{"code":"340421112","name":"丁集镇"},{"code":"340421113","name":"刘集镇"},{"code":"340421114","name":"大兴镇"},{"code":"340421115","name":"尚塘镇"},{"code":"340421204","name":"古店乡"},{"code":"340421205","name":"钱庙乡"},{"code":"340421209","name":"关店乡"},{"code":"340421212","name":"李冲回族乡"}]},{"code":"340422","name":"寿县","children":[{"code":"340422100","name":"寿春镇"},{"code":"340422101","name":"双桥镇"},{"code":"340422102","name":"涧沟镇"},{"code":"340422103","name":"丰庄镇"},{"code":"340422104","name":"正阳关镇"},{"code":"340422105","name":"迎河镇"},{"code":"340422106","name":"板桥镇"},{"code":"340422107","name":"安丰塘镇"},{"code":"340422108","name":"堰口镇"},{"code":"340422109","name":"保义镇"},{"code":"340422110","name":"隐贤镇"},{"code":"340422111","name":"安丰镇"},{"code":"340422112","name":"众兴镇"},{"code":"340422113","name":"茶庵镇"},{"code":"340422114","name":"三觉镇"},{"code":"340422115","name":"炎刘镇"},{"code":"340422116","name":"刘岗镇"},{"code":"340422117","name":"双庙集镇"},{"code":"340422118","name":"小甸镇"},{"code":"340422119","name":"瓦埠镇"},{"code":"340422120","name":"大顺镇"},{"code":"340422121","name":"窑口镇"},{"code":"340422200","name":"八公山乡"},{"code":"340422201","name":"张李乡"},{"code":"340422203","name":"陶店回族乡"},{"code":"340422402","name":"安徽寿县经济开发区"},{"code":"340422500","name":"寿西湖农场"},{"code":"340422501","name":"正阳关农场"}]}]},{"code":"3405","name":"马鞍山市","children":[{"code":"340503","name":"花山区","children":[{"code":"340503001","name":"沙塘路街道"},{"code":"340503002","name":"解放路街道"},{"code":"340503003","name":"湖东路街道"},{"code":"340503004","name":"桃源路街道"},{"code":"340503005","name":"霍里街道"},{"code":"340503006","name":"金家庄街道"},{"code":"340503007","name":"塘西街道"},{"code":"340503008","name":"慈湖街道"},{"code":"340503009","name":"江东街道"},{"code":"340503101","name":"濮塘镇"},{"code":"340503401","name":"慈湖高新技术产业开发区"}]},{"code":"340504","name":"雨山区","children":[{"code":"340504001","name":"平湖街道"},{"code":"340504002","name":"雨山街道"},{"code":"340504003","name":"安民街道"},{"code":"340504004","name":"采石街道"},{"code":"340504100","name":"向山镇"},{"code":"340504101","name":"银塘镇"},{"code":"340504200","name":"佳山乡"},{"code":"340504401","name":"雨山经济开发区"},{"code":"340504402","name":"市经济技术开发区"}]},{"code":"340506","name":"博望区","children":[{"code":"340506100","name":"博望镇"},{"code":"340506101","name":"丹阳镇"},{"code":"340506102","name":"新市镇"},{"code":"340506400","name":"博望高新技术产业开发区"}]},{"code":"340521","name":"当涂县","children":[{"code":"340521100","name":"姑孰镇"},{"code":"340521101","name":"黄池镇"},{"code":"340521102","name":"乌溪镇"},{"code":"340521103","name":"石桥镇"},{"code":"340521104","name":"塘南镇"},{"code":"340521105","name":"护河镇"},{"code":"340521106","name":"太白镇"},{"code":"340521110","name":"年陡镇"},{"code":"340521111","name":"湖阳镇"},{"code":"340521112","name":"大陇镇"},{"code":"340521202","name":"江心乡"},{"code":"340521400","name":"当涂经济开发区"},{"code":"340521402","name":"当涂大青山李白文化旅游区"},{"code":"340521500","name":"当涂现代农业示范区"}]},{"code":"340522","name":"含山县","children":[{"code":"340522100","name":"环峰镇"},{"code":"340522101","name":"运漕镇"},{"code":"340522102","name":"铜闸镇"},{"code":"340522103","name":"陶厂镇"},{"code":"340522104","name":"林头镇"},{"code":"340522105","name":"清溪镇"},{"code":"340522106","name":"仙踪镇"},{"code":"340522107","name":"昭关镇"},{"code":"340522401","name":"安徽含山经济开发区"}]},{"code":"340523","name":"和县","children":[{"code":"340523100","name":"历阳镇"},{"code":"340523102","name":"白桥镇"},{"code":"340523103","name":"姥桥镇"},{"code":"340523104","name":"功桥镇"},{"code":"340523105","name":"西埠镇"},{"code":"340523106","name":"香泉镇"},{"code":"340523107","name":"乌江镇"},{"code":"340523108","name":"善厚镇"},{"code":"340523109","name":"石杨镇"},{"code":"340523400","name":"安徽和县经济开发区"},{"code":"340523401","name":"安徽精细化工产业有机合成基地"},{"code":"340523500","name":"安徽和县台湾农民创业园"}]}]},{"code":"3406","name":"淮北市","children":[{"code":"340602","name":"杜集区","children":[{"code":"340602001","name":"高岳街道"},{"code":"340602002","name":"矿山集街道"},{"code":"340602100","name":"朔里镇"},{"code":"340602101","name":"石台镇"},{"code":"340602102","name":"段园镇"},{"code":"340602400","name":"淮北杜集经济开发区"}]},{"code":"340603","name":"相山区","children":[{"code":"340603001","name":"相南街道"},{"code":"340603002","name":"东街道"},{"code":"340603003","name":"西街道"},{"code":"340603005","name":"东山街道"},{"code":"340603008","name":"任圩街道"},{"code":"340603009","name":"南黎街道"},{"code":"340603010","name":"曲阳街道"},{"code":"340603011","name":"三堤口街道"},{"code":"340603100","name":"渠沟镇"},{"code":"340603400","name":"安徽淮北相山经济开发区管理委员会"}]},{"code":"340604","name":"烈山区","children":[{"code":"340604001","name":"杨庄街道"},{"code":"340604002","name":"临海童街道"},{"code":"340604003","name":"百善街道"},{"code":"340604004","name":"任楼街道"},{"code":"340604100","name":"烈山镇"},{"code":"340604101","name":"宋町镇"},{"code":"340604102","name":"古饶镇"},{"code":"340604400","name":"烈山区工业园"}]},{"code":"340621","name":"濉溪县","children":[{"code":"340621100","name":"濉溪镇"},{"code":"340621101","name":"韩村镇"},{"code":"340621102","name":"刘桥镇"},{"code":"340621103","name":"五沟镇"},{"code":"340621104","name":"临涣镇"},{"code":"340621105","name":"双堆集镇"},{"code":"340621106","name":"铁佛镇"},{"code":"340621107","name":"南坪镇"},{"code":"340621108","name":"百善镇"},{"code":"340621109","name":"孙町镇"},{"code":"340621110","name":"四铺镇"},{"code":"340621400","name":"濉溪县经济开发区"},{"code":"340621401","name":"濉溪县濉芜产业园"}]}]},{"code":"3407","name":"铜陵市","children":[{"code":"340705","name":"铜官区","children":[{"code":"340705005","name":"东郊街道"},{"code":"340705006","name":"新城街道"},{"code":"340705100","name":"西湖镇"},{"code":"340705400","name":"铜陵市经济开发区"},{"code":"340705401","name":"狮子山国家高新区"},{"code":"340705402","name":"天井湖社区街道"},{"code":"340705403","name":"映湖社区街道"},{"code":"340705404","name":"五松社区街道"},{"code":"340705405","name":"人民社区街道"},{"code":"340705406","name":"幸福社区街道"},{"code":"340705407","name":"官塘社区街道"},{"code":"340705408","name":"学苑社区街道"},{"code":"340705409","name":"阳光社区街道"},{"code":"340705410","name":"友好社区街道"},{"code":"340705411","name":"螺蛳山社区街道"},{"code":"340705412","name":"露采社区街道"},{"code":"340705413","name":"金口岭社区街道"},{"code":"340705414","name":"鹞山社区街道"},{"code":"340705415","name":"朝阳社区街道"},{"code":"340705416","name":"滨江社区街道"},{"code":"340705417","name":"金山社区街道"},{"code":"340705418","name":"狮子山社区街道"},{"code":"340705419","name":"立新社区街道"}]},{"code":"340706","name":"义安区","children":[{"code":"340706001","name":"新桥街道"},{"code":"340706100","name":"五松镇"},{"code":"340706101","name":"顺安镇"},{"code":"340706102","name":"钟鸣镇"},{"code":"340706103","name":"天门镇"},{"code":"340706104","name":"东联镇"},{"code":"340706105","name":"西联镇"},{"code":"340706200","name":"老洲乡"},{"code":"340706203","name":"胥坝乡"},{"code":"340706401","name":"义安经济开发区"}]},{"code":"340711","name":"郊区","children":[{"code":"340711001","name":"桥南街道"},{"code":"340711002","name":"安矿街道"},{"code":"340711100","name":"铜山镇"},{"code":"340711101","name":"大通镇"},{"code":"340711102","name":"老洲镇"},{"code":"340711103","name":"陈瑶湖镇"},{"code":"340711104","name":"周潭镇"},{"code":"340711198","name":"郊区直辖村级区划"},{"code":"340711200","name":"灰河乡"},{"code":"340711401","name":"大桥经济开发区"}]},{"code":"340722","name":"枞阳县","children":[{"code":"340722106","name":"横埠镇"},{"code":"340722107","name":"项铺镇"},{"code":"340722108","name":"钱桥镇"},{"code":"340722109","name":"麒麟镇"},{"code":"340722110","name":"义津镇"},{"code":"340722111","name":"浮山镇"},{"code":"340722112","name":"会宫镇"},{"code":"340722113","name":"官埠桥镇"},{"code":"340722114","name":"钱铺镇"},{"code":"340722115","name":"金社镇"},{"code":"340722116","name":"白柳镇"},{"code":"340722117","name":"雨坛镇"},{"code":"340722118","name":"枞阳镇"},{"code":"340722119","name":"欧山镇"},{"code":"340722120","name":"汤沟镇"},{"code":"340722205","name":"白梅乡"},{"code":"340722400","name":"枞阳经济开发区"}]}]},{"code":"3408","name":"安庆市","children":[{"code":"340802","name":"迎江区","children":[{"code":"340802001","name":"宜城路街道"},{"code":"340802002","name":"新河路街道"},{"code":"340802003","name":"华中路街道"},{"code":"340802004","name":"人民路街道"},{"code":"340802005","name":"孝肃路街道"},{"code":"340802006","name":"滨江街道"},{"code":"340802200","name":"龙狮桥乡"},{"code":"340802201","name":"长风乡"},{"code":"340802202","name":"新洲乡"}]},{"code":"340803","name":"大观区","children":[{"code":"340803001","name":"德宽路街道"},{"code":"340803002","name":"玉琳路街道"},{"code":"340803003","name":"龙山路街道"},{"code":"340803004","name":"菱湖街道"},{"code":"340803005","name":"集贤路街道"},{"code":"340803006","name":"石化路街道"},{"code":"340803007","name":"花亭路街道"},{"code":"340803100","name":"海口镇"},{"code":"340803200","name":"十里铺乡"},{"code":"340803201","name":"山口乡"},{"code":"340803400","name":"大观开发区"},{"code":"340803401","name":"安徽安庆海口经济开发区"},{"code":"340803500","name":"皖河农场"}]},{"code":"340811","name":"宜秀区","children":[{"code":"340811001","name":"大桥街道"},{"code":"340811100","name":"大龙山镇"},{"code":"340811101","name":"杨桥镇"},{"code":"340811102","name":"罗岭镇"},{"code":"340811200","name":"白泽湖乡"},{"code":"340811201","name":"五横乡"}]},{"code":"340822","name":"怀宁县","children":[{"code":"340822100","name":"高河镇"},{"code":"340822101","name":"石牌镇"},{"code":"340822102","name":"月山镇"},{"code":"340822103","name":"马庙镇"},{"code":"340822104","name":"金拱镇"},{"code":"340822105","name":"茶岭镇"},{"code":"340822106","name":"公岭镇"},{"code":"340822107","name":"黄墩镇"},{"code":"340822108","name":"三桥镇"},{"code":"340822109","name":"小市镇"},{"code":"340822110","name":"黄龙镇"},{"code":"340822111","name":"平山镇"},{"code":"340822112","name":"腊树镇"},{"code":"340822113","name":"洪铺镇"},{"code":"340822114","name":"江镇镇"},{"code":"340822200","name":"凉亭乡"},{"code":"340822201","name":"石镜乡"},{"code":"340822202","name":"秀山乡"},{"code":"340822203","name":"清河乡"},{"code":"340822204","name":"雷埠乡"}]},{"code":"340825","name":"太湖县","children":[{"code":"340825100","name":"晋熙镇"},{"code":"340825101","name":"徐桥镇"},{"code":"340825102","name":"新仓镇"},{"code":"340825103","name":"小池镇"},{"code":"340825104","name":"寺前镇"},{"code":"340825105","name":"天华镇"},{"code":"340825106","name":"牛镇镇"},{"code":"340825107","name":"弥陀镇"},{"code":"340825108","name":"北中镇"},{"code":"340825109","name":"百里镇"},{"code":"340825200","name":"大石乡"},{"code":"340825201","name":"城西乡"},{"code":"340825202","name":"江塘乡"},{"code":"340825203","name":"汤泉乡"},{"code":"340825204","name":"刘畈乡"},{"code":"340825400","name":"经济开发区"},{"code":"340825401","name":"花凉亭水电站"}]},{"code":"340826","name":"宿松县","children":[{"code":"340826100","name":"孚玉镇"},{"code":"340826101","name":"复兴镇"},{"code":"340826102","name":"汇口镇"},{"code":"340826103","name":"许岭镇"},{"code":"340826104","name":"下仓镇"},{"code":"340826105","name":"二郎镇"},{"code":"340826106","name":"破凉镇"},{"code":"340826107","name":"凉亭镇"},{"code":"340826108","name":"长铺镇"},{"code":"340826200","name":"高岭乡"},{"code":"340826201","name":"程岭乡"},{"code":"340826202","name":"九姑乡"},{"code":"340826203","name":"千岭乡"},{"code":"340826204","name":"洲头乡"},{"code":"340826205","name":"佐坝乡"},{"code":"340826206","name":"北浴乡"},{"code":"340826207","name":"陈汉乡"},{"code":"340826208","name":"隘口乡"},{"code":"340826209","name":"柳坪乡"},{"code":"340826210","name":"趾凤乡"},{"code":"340826211","name":"河塌乡"},{"code":"340826212","name":"五里乡"},{"code":"340826400","name":"九成监狱管理分局"},{"code":"340826401","name":"华阳河农场总场"},{"code":"340826403","name":"安徽宿松经济开发区"}]},{"code":"340827","name":"望江县","children":[{"code":"340827100","name":"华阳镇"},{"code":"340827101","name":"杨湾镇"},{"code":"340827102","name":"漳湖镇"},{"code":"340827103","name":"赛口镇"},{"code":"340827104","name":"高士镇"},{"code":"340827105","name":"鸦滩镇"},{"code":"340827106","name":"长岭镇"},{"code":"340827107","name":"太慈镇"},{"code":"340827200","name":"凉泉乡"},{"code":"340827201","name":"雷池乡"},{"code":"340827400","name":"望江县经济开发区"},{"code":"340827401","name":"安徽望江桥港经济开发区"}]},{"code":"340828","name":"岳西县","children":[{"code":"340828100","name":"天堂镇"},{"code":"340828101","name":"店前镇"},{"code":"340828102","name":"来榜镇"},{"code":"340828103","name":"菖蒲镇"},{"code":"340828104","name":"头陀镇"},{"code":"340828105","name":"白帽镇"},{"code":"340828106","name":"温泉镇"},{"code":"340828107","name":"响肠镇"},{"code":"340828108","name":"河图镇"},{"code":"340828109","name":"五河镇"},{"code":"340828110","name":"主簿镇"},{"code":"340828111","name":"冶溪镇"},{"code":"340828112","name":"黄尾镇"},{"code":"340828113","name":"中关镇"},{"code":"340828200","name":"毛尖山乡"},{"code":"340828201","name":"莲云乡"},{"code":"340828202","name":"青天乡"},{"code":"340828203","name":"包家乡"},{"code":"340828204","name":"古坊乡"},{"code":"340828205","name":"田头乡"},{"code":"340828207","name":"石关乡"},{"code":"340828208","name":"姚河乡"},{"code":"340828209","name":"和平乡"},{"code":"340828210","name":"巍岭乡"},{"code":"340828400","name":"安徽岳西县经济开发区"}]},{"code":"340871","name":"安徽安庆经济开发区","children":[{"code":"340871001","name":"菱北街道"},{"code":"340871100","name":"老峰镇"}]},{"code":"340881","name":"桐城市","children":[{"code":"340881001","name":"龙腾街道"},{"code":"340881002","name":"文昌街道"},{"code":"340881003","name":"龙眠街道"},{"code":"340881100","name":"孔城镇"},{"code":"340881101","name":"吕亭镇"},{"code":"340881102","name":"范岗镇"},{"code":"340881103","name":"新渡镇"},{"code":"340881104","name":"双港镇"},{"code":"340881105","name":"大关镇"},{"code":"340881106","name":"青草镇"},{"code":"340881107","name":"金神镇"},{"code":"340881108","name":"嬉子湖镇"},{"code":"340881109","name":"唐湾镇"},{"code":"340881110","name":"黄甲镇"},{"code":"340881111","name":"鲟鱼镇"},{"code":"340881400","name":"桐城经济开发区"},{"code":"340881401","name":"桐城双新经济开发区"}]},{"code":"340882","name":"潜山市","children":[{"code":"340882100","name":"梅城镇"},{"code":"340882101","name":"源潭镇"},{"code":"340882102","name":"余井镇"},{"code":"340882103","name":"王河镇"},{"code":"340882104","name":"黄铺镇"},{"code":"340882105","name":"槎水镇"},{"code":"340882106","name":"水吼镇"},{"code":"340882107","name":"官庄镇"},{"code":"340882108","name":"黄泥镇"},{"code":"340882109","name":"黄柏镇"},{"code":"340882110","name":"天柱山镇"},{"code":"340882200","name":"塔畈乡"},{"code":"340882201","name":"油坝乡"},{"code":"340882202","name":"龙潭乡"},{"code":"340882203","name":"痘姆乡"},{"code":"340882204","name":"五庙乡"},{"code":"340882400","name":"开发区"},{"code":"340882401","name":"旅游度假区"}]}]},{"code":"3410","name":"黄山市","children":[{"code":"341002","name":"屯溪区","children":[{"code":"341002001","name":"昱东街道"},{"code":"341002002","name":"昱中街道"},{"code":"341002003","name":"昱西街道"},{"code":"341002004","name":"老街街道"},{"code":"341002100","name":"屯光镇"},{"code":"341002101","name":"阳湖镇"},{"code":"341002102","name":"黎阳镇"},{"code":"341002103","name":"新潭镇"},{"code":"341002104","name":"奕棋镇"}]},{"code":"341003","name":"黄山区","children":[{"code":"341003100","name":"甘棠镇"},{"code":"341003101","name":"仙源镇"},{"code":"341003102","name":"汤口镇"},{"code":"341003103","name":"谭家桥镇"},{"code":"341003104","name":"太平湖镇"},{"code":"341003105","name":"焦村镇"},{"code":"341003106","name":"耿城镇"},{"code":"341003107","name":"三口镇"},{"code":"341003108","name":"乌石镇"},{"code":"341003200","name":"新明乡"},{"code":"341003201","name":"龙门乡"},{"code":"341003203","name":"新华乡"},{"code":"341003204","name":"新丰乡"},{"code":"341003205","name":"永丰乡"},{"code":"341003400","name":"黄山风景区"}]},{"code":"341004","name":"徽州区","children":[{"code":"341004100","name":"岩寺镇"},{"code":"341004101","name":"西溪南镇"},{"code":"341004102","name":"潜口镇"},{"code":"341004103","name":"呈坎镇"},{"code":"341004198","name":"徽州区直辖村级区划"},{"code":"341004200","name":"洽舍乡"},{"code":"341004201","name":"杨村乡"},{"code":"341004202","name":"富溪乡"},{"code":"341004400","name":"安徽徽州经济开发区"}]},{"code":"341021","name":"歙县","children":[{"code":"341021100","name":"徽城镇"},{"code":"341021101","name":"深渡镇"},{"code":"341021102","name":"北岸镇"},{"code":"341021103","name":"富堨镇"},{"code":"341021104","name":"郑村镇"},{"code":"341021105","name":"桂林镇"},{"code":"341021106","name":"许村镇"},{"code":"341021107","name":"溪头镇"},{"code":"341021108","name":"杞梓里镇"},{"code":"341021109","name":"霞坑镇"},{"code":"341021110","name":"岔口镇"},{"code":"341021111","name":"街口镇"},{"code":"341021112","name":"王村镇"},{"code":"341021113","name":"雄村镇"},{"code":"341021114","name":"三阳镇"},{"code":"341021200","name":"坑口乡"},{"code":"341021202","name":"上丰乡"},{"code":"341021203","name":"昌溪乡"},{"code":"341021204","name":"武阳乡"},{"code":"341021206","name":"金川乡"},{"code":"341021207","name":"小川乡"},{"code":"341021208","name":"新溪口乡"},{"code":"341021209","name":"璜田乡"},{"code":"341021210","name":"长陔乡"},{"code":"341021211","name":"森村乡"},{"code":"341021212","name":"绍濂乡"},{"code":"341021213","name":"石门乡"},{"code":"341021214","name":"狮石乡"},{"code":"341021400","name":"开发区类似乡级单位"}]},{"code":"341022","name":"休宁县","children":[{"code":"341022100","name":"海阳镇"},{"code":"341022101","name":"齐云山镇"},{"code":"341022102","name":"万安镇"},{"code":"341022103","name":"五城镇"},{"code":"341022104","name":"东临溪镇"},{"code":"341022105","name":"蓝田镇"},{"code":"341022106","name":"溪口镇"},{"code":"341022107","name":"流口镇"},{"code":"341022108","name":"汪村镇"},{"code":"341022109","name":"商山镇"},{"code":"341022110","name":"月潭湖镇"},{"code":"341022201","name":"山斗乡"},{"code":"341022202","name":"岭南乡"},{"code":"341022203","name":"渭桥乡"},{"code":"341022204","name":"板桥乡"},{"code":"341022206","name":"鹤城乡"},{"code":"341022207","name":"源芳乡"},{"code":"341022208","name":"榆村乡"},{"code":"341022209","name":"龙田乡"},{"code":"341022210","name":"璜尖乡"},{"code":"341022211","name":"白际乡"}]},{"code":"341023","name":"黟县","children":[{"code":"341023100","name":"碧阳镇"},{"code":"341023101","name":"宏村镇"},{"code":"341023102","name":"渔亭镇"},{"code":"341023103","name":"西递镇"},{"code":"341023104","name":"柯村镇"},{"code":"341023201","name":"美溪乡"},{"code":"341023202","name":"宏潭乡"},{"code":"341023203","name":"洪星乡"}]},{"code":"341024","name":"祁门县","children":[{"code":"341024100","name":"祁山镇"},{"code":"341024101","name":"小路口镇"},{"code":"341024102","name":"金字牌镇"},{"code":"341024103","name":"平里镇"},{"code":"341024104","name":"历口镇"},{"code":"341024105","name":"闪里镇"},{"code":"341024106","name":"安凌镇"},{"code":"341024107","name":"凫峰镇"},{"code":"341024108","name":"塔坊镇"},{"code":"341024109","name":"新安镇"},{"code":"341024200","name":"大坦乡"},{"code":"341024202","name":"柏溪乡"},{"code":"341024204","name":"祁红乡"},{"code":"341024205","name":"溶口乡"},{"code":"341024206","name":"芦溪乡"},{"code":"341024207","name":"渚口乡"},{"code":"341024208","name":"古溪乡"},{"code":"341024210","name":"箬坑乡"}]}]},{"code":"3411","name":"滁州市","children":[{"code":"341102","name":"琅琊区","children":[{"code":"341102001","name":"琅琊街道"},{"code":"341102004","name":"丰山街道"},{"code":"341102006","name":"清流街道"},{"code":"341102007","name":"扬子街道"},{"code":"341102010","name":"西涧街道"},{"code":"341102011","name":"遵阳街道"},{"code":"341102012","name":"滁阳街道"},{"code":"341102013","name":"三官街道"},{"code":"341102400","name":"安徽滁州琅琊经济开发区"}]},{"code":"341103","name":"南谯区","children":[{"code":"341103003","name":"龙蟠街道"},{"code":"341103004","name":"银花街道"},{"code":"341103005","name":"同乐街道"},{"code":"341103100","name":"乌衣镇"},{"code":"341103101","name":"沙河镇"},{"code":"341103102","name":"章广镇"},{"code":"341103103","name":"黄泥岗镇"},{"code":"341103104","name":"珠龙镇"},{"code":"341103105","name":"大柳镇"},{"code":"341103106","name":"腰铺镇"},{"code":"341103107","name":"施集镇"},{"code":"341103400","name":"南谯工业园区"},{"code":"341103401","name":"滁州高教科创城管委会"}]},{"code":"341122","name":"来安县","children":[{"code":"341122100","name":"新安镇"},{"code":"341122101","name":"半塔镇"},{"code":"341122102","name":"水口镇"},{"code":"341122103","name":"汊河镇"},{"code":"341122104","name":"大英镇"},{"code":"341122105","name":"雷官镇"},{"code":"341122106","name":"施官镇"},{"code":"341122107","name":"舜山镇"},{"code":"341122108","name":"三城镇"},{"code":"341122109","name":"独山镇"},{"code":"341122110","name":"张山镇"},{"code":"341122203","name":"杨郢乡"}]},{"code":"341124","name":"全椒县","children":[{"code":"341124100","name":"襄河镇"},{"code":"341124101","name":"古河镇"},{"code":"341124102","name":"大墅镇"},{"code":"341124103","name":"二郎口镇"},{"code":"341124104","name":"武岗镇"},{"code":"341124105","name":"马厂镇"},{"code":"341124106","name":"石沛镇"},{"code":"341124107","name":"十字镇"},{"code":"341124108","name":"西王镇"},{"code":"341124109","name":"六镇镇"}]},{"code":"341125","name":"定远县","children":[{"code":"341125100","name":"定城镇"},{"code":"341125101","name":"炉桥镇"},{"code":"341125102","name":"永康镇"},{"code":"341125103","name":"吴圩镇"},{"code":"341125104","name":"朱湾镇"},{"code":"341125105","name":"张桥镇"},{"code":"341125106","name":"藕塘镇"},{"code":"341125107","name":"池河镇"},{"code":"341125108","name":"连江镇"},{"code":"341125109","name":"界牌集镇"},{"code":"341125110","name":"仓镇"},{"code":"341125111","name":"三和集镇"},{"code":"341125112","name":"西卅店镇"},{"code":"341125113","name":"桑涧镇"},{"code":"341125114","name":"蒋集镇"},{"code":"341125115","name":"大桥镇"},{"code":"341125200","name":"严桥乡"},{"code":"341125201","name":"拂晓乡"},{"code":"341125202","name":"能仁乡"},{"code":"341125203","name":"七里塘乡"},{"code":"341125204","name":"二龙回族乡"},{"code":"341125205","name":"范岗乡"},{"code":"341125400","name":"安徽定远经济开发区"},{"code":"341125401","name":"定远盐化工业园"},{"code":"341125402","name":"凌家湖农场"}]},{"code":"341126","name":"凤阳县","children":[{"code":"341126100","name":"府城镇"},{"code":"341126101","name":"临淮关镇"},{"code":"341126102","name":"武店镇"},{"code":"341126103","name":"西泉镇"},{"code":"341126104","name":"官塘镇"},{"code":"341126105","name":"刘府镇"},{"code":"341126106","name":"大庙镇"},{"code":"341126107","name":"殷涧镇"},{"code":"341126108","name":"总铺镇"},{"code":"341126109","name":"红心镇"},{"code":"341126110","name":"板桥镇"},{"code":"341126111","name":"大溪河镇"},{"code":"341126112","name":"小溪河镇"},{"code":"341126113","name":"枣巷镇"},{"code":"341126201","name":"黄湾乡"},{"code":"341126400","name":"安徽凤阳经济开发区"},{"code":"341126401","name":"安徽凤阳硅工业园区"}]},{"code":"341171","name":"中新苏滁高新技术产业开发区","children":[{"code":"341171001","name":"大王街道"}]},{"code":"341172","name":"滁州经济技术开发区","children":[{"code":"341172001","name":"凤凰街道"},{"code":"341172002","name":"紫薇街道"},{"code":"341172401","name":"滁州市经济技术开发区"}]},{"code":"341181","name":"天长市","children":[{"code":"341181003","name":"广陵街道"},{"code":"341181004","name":"千秋街道"},{"code":"341181100","name":"铜城镇"},{"code":"341181101","name":"汊涧镇"},{"code":"341181102","name":"秦栏镇"},{"code":"341181103","name":"大通镇"},{"code":"341181104","name":"杨村镇"},{"code":"341181105","name":"石梁镇"},{"code":"341181106","name":"金集镇"},{"code":"341181107","name":"永丰镇"},{"code":"341181108","name":"仁和集镇"},{"code":"341181109","name":"冶山镇"},{"code":"341181110","name":"郑集镇"},{"code":"341181111","name":"张铺镇"},{"code":"341181112","name":"新街镇"},{"code":"341181113","name":"万寿镇"}]},{"code":"341182","name":"明光市","children":[{"code":"341182001","name":"明光街道"},{"code":"341182002","name":"明东街道"},{"code":"341182003","name":"明南街道"},{"code":"341182004","name":"明西街道"},{"code":"341182100","name":"张八岭镇"},{"code":"341182101","name":"三界镇"},{"code":"341182102","name":"管店镇"},{"code":"341182103","name":"自来桥镇"},{"code":"341182104","name":"涧溪镇"},{"code":"341182105","name":"石坝镇"},{"code":"341182106","name":"苏巷镇"},{"code":"341182107","name":"桥头镇"},{"code":"341182108","name":"女山湖镇"},{"code":"341182109","name":"古沛镇"},{"code":"341182110","name":"潘村镇"},{"code":"341182111","name":"柳巷镇"},{"code":"341182200","name":"泊岗乡"}]}]},{"code":"3412","name":"阜阳市","children":[{"code":"341202","name":"颍州区","children":[{"code":"341202001","name":"鼓楼街道"},{"code":"341202002","name":"文峰街道"},{"code":"341202003","name":"清河街道"},{"code":"341202004","name":"颍西街道"},{"code":"341202005","name":"西湖景区街道"},{"code":"341202100","name":"王店镇"},{"code":"341202101","name":"程集镇"},{"code":"341202102","name":"三合镇"},{"code":"341202103","name":"西湖镇"},{"code":"341202104","name":"九龙镇"},{"code":"341202105","name":"三十里铺镇"},{"code":"341202106","name":"三塔集镇"},{"code":"341202200","name":"马寨乡"},{"code":"341202400","name":"安徽颍州经济开发区"}]},{"code":"341203","name":"颍东区","children":[{"code":"341203001","name":"河东街道"},{"code":"341203002","name":"新华街道"},{"code":"341203003","name":"向阳街道"},{"code":"341203100","name":"口孜镇"},{"code":"341203101","name":"插花镇"},{"code":"341203102","name":"袁寨镇"},{"code":"341203103","name":"枣庄镇"},{"code":"341203104","name":"老庙镇"},{"code":"341203105","name":"正午镇"},{"code":"341203106","name":"杨楼孜镇"},{"code":"341203107","name":"新乌江镇"},{"code":"341203200","name":"冉庙乡"}]},{"code":"341204","name":"颍泉区","children":[{"code":"341204001","name":"中市街道"},{"code":"341204002","name":"周棚街道"},{"code":"341204100","name":"伍明镇"},{"code":"341204101","name":"宁老庄镇"},{"code":"341204102","name":"闻集镇"},{"code":"341204103","name":"行流镇"}]},{"code":"341221","name":"临泉县","children":[{"code":"341221001","name":"城关街道"},{"code":"341221002","name":"邢塘街道"},{"code":"341221003","name":"田桥街道"},{"code":"341221004","name":"城东街道"},{"code":"341221005","name":"城南街道"},{"code":"341221101","name":"杨桥镇"},{"code":"341221102","name":"鲖城镇"},{"code":"341221103","name":"谭棚镇"},{"code":"341221104","name":"老集镇"},{"code":"341221105","name":"滑集镇"},{"code":"341221106","name":"吕寨镇"},{"code":"341221107","name":"单桥镇"},{"code":"341221108","name":"长官镇"},{"code":"341221109","name":"宋集镇"},{"code":"341221110","name":"张新镇"},{"code":"341221111","name":"艾亭镇"},{"code":"341221112","name":"陈集镇"},{"code":"341221113","name":"韦寨镇"},{"code":"341221114","name":"迎仙镇"},{"code":"341221115","name":"瓦店镇"},{"code":"341221116","name":"姜寨镇"},{"code":"341221117","name":"庙岔镇"},{"code":"341221118","name":"黄岭镇"},{"code":"341221119","name":"白庙镇"},{"code":"341221120","name":"关庙镇"},{"code":"341221122","name":"高塘镇"},{"code":"341221203","name":"土陂乡"},{"code":"341221206","name":"陶老乡"}]},{"code":"341222","name":"太和县","children":[{"code":"341222100","name":"城关镇"},{"code":"341222101","name":"旧县镇"},{"code":"341222102","name":"税镇镇"},{"code":"341222103","name":"皮条孙镇"},{"code":"341222104","name":"原墙镇"},{"code":"341222105","name":"倪邱镇"},{"code":"341222106","name":"李兴镇"},{"code":"341222107","name":"大新镇"},{"code":"341222108","name":"肖口镇"},{"code":"341222109","name":"关集镇"},{"code":"341222110","name":"三塔镇"},{"code":"341222111","name":"双浮镇"},{"code":"341222112","name":"蔡庙镇"},{"code":"341222113","name":"三堂镇"},{"code":"341222114","name":"苗老集镇"},{"code":"341222115","name":"赵庙镇"},{"code":"341222116","name":"宫集镇"},{"code":"341222117","name":"坟台镇"},{"code":"341222118","name":"洪山镇"},{"code":"341222119","name":"清浅镇"},{"code":"341222120","name":"五星镇"},{"code":"341222121","name":"高庙镇"},{"code":"341222122","name":"桑营镇"},{"code":"341222123","name":"大庙集镇"},{"code":"341222124","name":"阮桥镇"},{"code":"341222125","name":"双庙镇"},{"code":"341222126","name":"胡总镇"},{"code":"341222127","name":"郭庙镇"},{"code":"341222128","name":"二郎镇"},{"code":"341222129","name":"马集镇"},{"code":"341222201","name":"赵集乡"},{"code":"341222400","name":"开发区管理委员会"}]},{"code":"341225","name":"阜南县","children":[{"code":"341225101","name":"方集镇"},{"code":"341225102","name":"中岗镇"},{"code":"341225103","name":"柴集镇"},{"code":"341225104","name":"新村镇"},{"code":"341225106","name":"朱寨镇"},{"code":"341225107","name":"柳沟镇"},{"code":"341225108","name":"赵集镇"},{"code":"341225109","name":"田集镇"},{"code":"341225110","name":"苗集镇"},{"code":"341225111","name":"黄岗镇"},{"code":"341225112","name":"焦陂镇"},{"code":"341225113","name":"张寨镇"},{"code":"341225114","name":"王堰镇"},{"code":"341225115","name":"地城镇"},{"code":"341225116","name":"洪河桥镇"},{"code":"341225117","name":"王家坝镇"},{"code":"341225118","name":"王化镇"},{"code":"341225119","name":"曹集镇"},{"code":"341225120","name":"鹿城镇"},{"code":"341225121","name":"会龙镇"},{"code":"341225200","name":"王店孜乡"},{"code":"341225201","name":"许堂乡"},{"code":"341225204","name":"段郢乡"},{"code":"341225205","name":"公桥乡"},{"code":"341225206","name":"龙王乡"},{"code":"341225207","name":"于集乡"},{"code":"341225208","name":"老观乡"},{"code":"341225209","name":"郜台乡"},{"code":"341225401","name":"安徽阜南经济开发区"}]},{"code":"341226","name":"颍上县","children":[{"code":"341226100","name":"慎城镇"},{"code":"341226101","name":"谢桥镇"},{"code":"341226102","name":"南照镇"},{"code":"341226103","name":"杨湖镇"},{"code":"341226104","name":"江口镇"},{"code":"341226105","name":"润河镇"},{"code":"341226106","name":"新集镇"},{"code":"341226107","name":"六十铺镇"},{"code":"341226108","name":"耿棚镇"},{"code":"341226109","name":"半岗镇"},{"code":"341226110","name":"王岗镇"},{"code":"341226111","name":"夏桥镇"},{"code":"341226112","name":"江店孜镇"},{"code":"341226113","name":"陈桥镇"},{"code":"341226114","name":"黄桥镇"},{"code":"341226115","name":"八里河镇"},{"code":"341226116","name":"迪沟镇"},{"code":"341226117","name":"西三十铺镇"},{"code":"341226118","name":"红星镇"},{"code":"341226119","name":"十八里铺镇"},{"code":"341226120","name":"鲁口镇"},{"code":"341226121","name":"古城镇"},{"code":"341226200","name":"建颍乡"},{"code":"341226201","name":"五十铺乡"},{"code":"341226202","name":"盛堂乡"},{"code":"341226203","name":"关屯乡"},{"code":"341226204","name":"垂岗乡"},{"code":"341226205","name":"赛涧回族乡"},{"code":"341226206","name":"刘集乡"},{"code":"341226207","name":"黄坝乡"}]},{"code":"341271","name":"阜阳合肥现代产业园区","children":[{"code":"341271100","name":"袁集镇"}]},{"code":"341272","name":"阜阳经济技术开发区","children":[{"code":"341272001","name":"阜阳开发区京九街道"}]},{"code":"341282","name":"界首市","children":[{"code":"341282001","name":"东城街道"},{"code":"341282002","name":"西城街道"},{"code":"341282003","name":"颍南街道"},{"code":"341282100","name":"光武镇"},{"code":"341282101","name":"泉阳镇"},{"code":"341282102","name":"芦村镇"},{"code":"341282103","name":"新马集镇"},{"code":"341282104","name":"大黄镇"},{"code":"341282105","name":"田营镇"},{"code":"341282106","name":"陶庙镇"},{"code":"341282107","name":"王集镇"},{"code":"341282108","name":"砖集镇"},{"code":"341282109","name":"顾集镇"},{"code":"341282110","name":"代桥镇"},{"code":"341282111","name":"舒庄镇"},{"code":"341282200","name":"邴集乡"},{"code":"341282201","name":"靳寨乡"},{"code":"341282202","name":"任寨乡"}]}]},{"code":"3413","name":"宿州市","children":[{"code":"341302","name":"埇桥区","children":[{"code":"341302001","name":"埇桥街道"},{"code":"341302002","name":"沱河街道"},{"code":"341302003","name":"道东街道"},{"code":"341302004","name":"东关街道"},{"code":"341302005","name":"三里湾街道"},{"code":"341302006","name":"南关街道"},{"code":"341302007","name":"西关街道"},{"code":"341302008","name":"北关街道"},{"code":"341302009","name":"汴河街道"},{"code":"341302010","name":"三八街道"},{"code":"341302011","name":"城东街道"},{"code":"341302100","name":"符离镇"},{"code":"341302101","name":"芦岭镇"},{"code":"341302102","name":"朱仙庄镇"},{"code":"341302103","name":"褚兰镇"},{"code":"341302104","name":"曹村镇"},{"code":"341302105","name":"夹沟镇"},{"code":"341302106","name":"栏杆镇"},{"code":"341302107","name":"时村镇"},{"code":"341302108","name":"永安镇"},{"code":"341302109","name":"灰古镇"},{"code":"341302110","name":"大店镇"},{"code":"341302111","name":"大泽乡镇"},{"code":"341302112","name":"桃园镇"},{"code":"341302113","name":"蕲县镇"},{"code":"341302114","name":"大营镇"},{"code":"341302115","name":"顺河镇"},{"code":"341302116","name":"蒿沟镇"},{"code":"341302200","name":"杨庄乡"},{"code":"341302201","name":"支河乡"},{"code":"341302202","name":"解集乡"},{"code":"341302203","name":"桃沟乡"},{"code":"341302207","name":"永镇乡"},{"code":"341302208","name":"西二铺乡"},{"code":"341302209","name":"北杨寨乡"},{"code":"341302210","name":"苗安乡"},{"code":"341302402","name":"宿州高新技术产业开发区"},{"code":"341302403","name":"宿州埇桥经济开发区"}]},{"code":"341321","name":"砀山县","children":[{"code":"341321100","name":"砀城镇"},{"code":"341321101","name":"赵屯镇"},{"code":"341321102","name":"李庄镇"},{"code":"341321103","name":"唐寨镇"},{"code":"341321104","name":"葛集镇"},{"code":"341321105","name":"周寨镇"},{"code":"341321106","name":"玄庙镇"},{"code":"341321107","name":"官庄坝镇"},{"code":"341321108","name":"曹庄镇"},{"code":"341321109","name":"关帝庙镇"},{"code":"341321110","name":"朱楼镇"},{"code":"341321111","name":"良梨镇"},{"code":"341321112","name":"程庄镇"},{"code":"341321400","name":"经济开发区"},{"code":"341321401","name":"薛楼板材加工园"},{"code":"341321402","name":"高铁新区"}]},{"code":"341322","name":"萧县","children":[{"code":"341322100","name":"龙城镇"},{"code":"341322101","name":"黄口镇"},{"code":"341322102","name":"杨楼镇"},{"code":"341322103","name":"闫集镇"},{"code":"341322104","name":"新庄镇"},{"code":"341322105","name":"刘套镇"},{"code":"341322106","name":"马井镇"},{"code":"341322107","name":"大屯镇"},{"code":"341322108","name":"赵庄镇"},{"code":"341322109","name":"杜楼镇"},{"code":"341322110","name":"丁里镇"},{"code":"341322111","name":"王寨镇"},{"code":"341322112","name":"祖楼镇"},{"code":"341322113","name":"青龙集镇"},{"code":"341322114","name":"张庄寨镇"},{"code":"341322115","name":"永堌镇"},{"code":"341322116","name":"白土镇"},{"code":"341322117","name":"官桥镇"},{"code":"341322118","name":"圣泉镇"},{"code":"341322119","name":"庄里镇"},{"code":"341322201","name":"酒店乡"},{"code":"341322202","name":"孙圩子乡"},{"code":"341322204","name":"石林乡"},{"code":"341322400","name":"萧县经济开发区"}]},{"code":"341323","name":"灵璧县","children":[{"code":"341323100","name":"灵城镇"},{"code":"341323101","name":"韦集镇"},{"code":"341323102","name":"黄湾镇"},{"code":"341323103","name":"娄庄镇"},{"code":"341323104","name":"杨疃镇"},{"code":"341323105","name":"尹集镇"},{"code":"341323106","name":"浍沟镇"},{"code":"341323107","name":"游集镇"},{"code":"341323108","name":"下楼镇"},{"code":"341323109","name":"朝阳镇"},{"code":"341323110","name":"渔沟镇"},{"code":"341323111","name":"高楼镇"},{"code":"341323112","name":"冯庙镇"},{"code":"341323113","name":"禅堂镇"},{"code":"341323114","name":"虞姬镇"},{"code":"341323115","name":"向阳镇"},{"code":"341323201","name":"朱集乡"},{"code":"341323202","name":"大路乡"},{"code":"341323203","name":"大庙乡"},{"code":"341323400","name":"灵璧县经济开发区"}]},{"code":"341324","name":"泗县","children":[{"code":"341324100","name":"泗城镇"},{"code":"341324101","name":"墩集镇"},{"code":"341324102","name":"丁湖镇"},{"code":"341324103","name":"草沟镇"},{"code":"341324104","name":"长沟镇"},{"code":"341324105","name":"黄圩镇"},{"code":"341324106","name":"大庄镇"},{"code":"341324107","name":"山头镇"},{"code":"341324108","name":"刘圩镇"},{"code":"341324109","name":"黑塔镇"},{"code":"341324110","name":"草庙镇"},{"code":"341324111","name":"屏山镇"},{"code":"341324112","name":"大路口镇"},{"code":"341324113","name":"大杨镇"},{"code":"341324114","name":"瓦坊镇"},{"code":"341324400","name":"泗县开发区管委会(泗县当涂现代产业园)"}]},{"code":"341371","name":"宿州马鞍山现代产业园区","children":[{"code":"341371400","name":"宿州东部新城行政管理区"}]},{"code":"341372","name":"宿州经济技术开发区","children":[{"code":"341372001","name":"金海街道"},{"code":"341372402","name":"鞋城行政区域"}]}]},{"code":"3415","name":"六安市","children":[{"code":"341502","name":"金安区","children":[{"code":"341502001","name":"中市街道"},{"code":"341502002","name":"东市街道"},{"code":"341502003","name":"三里桥街道"},{"code":"341502004","name":"望城街道"},{"code":"341502005","name":"清水河街道"},{"code":"341502100","name":"木厂镇"},{"code":"341502101","name":"马头镇"},{"code":"341502102","name":"东桥镇"},{"code":"341502103","name":"张店镇"},{"code":"341502104","name":"毛坦厂镇"},{"code":"341502105","name":"东河口镇"},{"code":"341502106","name":"双河镇"},{"code":"341502107","name":"施桥镇"},{"code":"341502108","name":"孙岗镇"},{"code":"341502109","name":"三十铺镇"},{"code":"341502110","name":"椿树镇"},{"code":"341502200","name":"城北乡"},{"code":"341502201","name":"翁墩乡"},{"code":"341502202","name":"淠东乡"},{"code":"341502203","name":"中店乡"},{"code":"341502204","name":"横塘岗乡"},{"code":"341502205","name":"先生店乡"},{"code":"341502400","name":"六安经济开发区"}]},{"code":"341503","name":"裕安区","children":[{"code":"341503001","name":"鼓楼街道"},{"code":"341503002","name":"西市街道"},{"code":"341503003","name":"小华山街道"},{"code":"341503100","name":"苏埠镇"},{"code":"341503101","name":"韩摆渡镇"},{"code":"341503102","name":"新安镇"},{"code":"341503103","name":"顺河镇"},{"code":"341503104","name":"独山镇"},{"code":"341503105","name":"石婆店镇"},{"code":"341503106","name":"城南镇"},{"code":"341503107","name":"丁集镇"},{"code":"341503108","name":"固镇镇"},{"code":"341503109","name":"徐集镇"},{"code":"341503110","name":"分路口镇"},{"code":"341503111","name":"江家店镇"},{"code":"341503200","name":"单王乡"},{"code":"341503201","name":"青山乡"},{"code":"341503202","name":"石板冲乡"},{"code":"341503203","name":"西河口乡"},{"code":"341503204","name":"平桥乡"},{"code":"341503205","name":"罗集乡"},{"code":"341503206","name":"狮子岗乡"},{"code":"341503400","name":"六安市裕安区经济开发区"}]},{"code":"341504","name":"叶集区","children":[{"code":"341504001","name":"史河街道"},{"code":"341504002","name":"平岗街道"},{"code":"341504102","name":"三元镇"},{"code":"341504103","name":"洪集镇"},{"code":"341504104","name":"姚李镇"},{"code":"341504200","name":"孙岗乡"}]},{"code":"341522","name":"霍邱县","children":[{"code":"341522100","name":"城关镇"},{"code":"341522101","name":"河口镇"},{"code":"341522102","name":"周集镇"},{"code":"341522103","name":"临水镇"},{"code":"341522104","name":"新店镇"},{"code":"341522105","name":"石店镇"},{"code":"341522106","name":"马店镇"},{"code":"341522107","name":"孟集镇"},{"code":"341522108","name":"花园镇"},{"code":"341522109","name":"扈胡镇"},{"code":"341522110","name":"长集镇"},{"code":"341522113","name":"乌龙镇"},{"code":"341522114","name":"高塘镇"},{"code":"341522115","name":"龙潭镇"},{"code":"341522116","name":"岔路镇"},{"code":"341522117","name":"冯井镇"},{"code":"341522118","name":"众兴集镇"},{"code":"341522119","name":"夏店镇"},{"code":"341522120","name":"曹庙镇"},{"code":"341522123","name":"范桥镇"},{"code":"341522124","name":"潘集镇"},{"code":"341522126","name":"彭塔镇"},{"code":"341522127","name":"宋店镇"},{"code":"341522201","name":"王截流乡"},{"code":"341522203","name":"临淮岗乡"},{"code":"341522204","name":"城西湖乡"},{"code":"341522206","name":"三流乡"},{"code":"341522207","name":"邵岗乡"},{"code":"341522208","name":"白莲乡"},{"code":"341522210","name":"冯瓴乡"},{"code":"341522400","name":"安徽霍邱经济开发区"},{"code":"341522500","name":"水产局管辖村"}]},{"code":"341523","name":"舒城县","children":[{"code":"341523100","name":"城关镇"},{"code":"341523101","name":"晓天镇"},{"code":"341523102","name":"桃溪镇"},{"code":"341523103","name":"万佛湖镇"},{"code":"341523104","name":"千人桥镇"},{"code":"341523105","name":"百神庙镇"},{"code":"341523106","name":"杭埠镇"},{"code":"341523107","name":"舒茶镇"},{"code":"341523108","name":"南港镇"},{"code":"341523109","name":"干汊河镇"},{"code":"341523110","name":"张母桥镇"},{"code":"341523111","name":"五显镇"},{"code":"341523112","name":"山七镇"},{"code":"341523113","name":"河棚镇"},{"code":"341523114","name":"汤池镇"},{"code":"341523200","name":"春秋乡"},{"code":"341523201","name":"柏林乡"},{"code":"341523202","name":"棠树乡"},{"code":"341523203","name":"阙店乡"},{"code":"341523204","name":"高峰乡"},{"code":"341523205","name":"庐镇乡"},{"code":"341523400","name":"舒城县经济开发区"}]},{"code":"341524","name":"金寨县","children":[{"code":"341524100","name":"梅山镇"},{"code":"341524101","name":"麻埠镇"},{"code":"341524102","name":"青山镇"},{"code":"341524103","name":"燕子河镇"},{"code":"341524104","name":"天堂寨镇"},{"code":"341524105","name":"古碑镇"},{"code":"341524106","name":"吴家店镇"},{"code":"341524107","name":"斑竹园镇"},{"code":"341524108","name":"汤家汇镇"},{"code":"341524109","name":"南溪镇"},{"code":"341524110","name":"双河镇"},{"code":"341524111","name":"白塔畈镇"},{"code":"341524201","name":"张冲乡"},{"code":"341524202","name":"油坊店乡"},{"code":"341524203","name":"长岭乡"},{"code":"341524204","name":"槐树湾乡"},{"code":"341524205","name":"花石乡"},{"code":"341524206","name":"沙河乡"},{"code":"341524207","name":"桃岭乡"},{"code":"341524208","name":"果子园乡"},{"code":"341524209","name":"关庙乡"},{"code":"341524211","name":"全军乡"},{"code":"341524214","name":"铁冲乡"},{"code":"341524400","name":"现代产业园(经济开发区)"}]},{"code":"341525","name":"霍山县","children":[{"code":"341525100","name":"衡山镇"},{"code":"341525101","name":"佛子岭镇"},{"code":"341525102","name":"下符桥镇"},{"code":"341525103","name":"但家庙镇"},{"code":"341525104","name":"与儿街镇"},{"code":"341525105","name":"黑石渡镇"},{"code":"341525106","name":"诸佛庵镇"},{"code":"341525107","name":"落儿岭镇"},{"code":"341525108","name":"磨子潭镇"},{"code":"341525109","name":"大化坪镇"},{"code":"341525110","name":"漫水河镇"},{"code":"341525111","name":"上土市镇"},{"code":"341525112","name":"单龙寺镇"},{"code":"341525201","name":"东西溪乡"},{"code":"341525202","name":"太平畈乡"},{"code":"341525203","name":"太阳乡"},{"code":"341525400","name":"经济开发区"}]}]},{"code":"3416","name":"亳州市","children":[{"code":"341602","name":"谯城区","children":[{"code":"341602001","name":"花戏楼街道"},{"code":"341602002","name":"薛阁街道"},{"code":"341602003","name":"汤陵街道"},{"code":"341602100","name":"古井镇"},{"code":"341602101","name":"芦庙镇"},{"code":"341602102","name":"华佗镇"},{"code":"341602103","name":"魏岗镇"},{"code":"341602104","name":"牛集镇"},{"code":"341602105","name":"颜集镇"},{"code":"341602106","name":"五马镇"},{"code":"341602107","name":"十八里镇"},{"code":"341602108","name":"谯东镇"},{"code":"341602109","name":"十九里镇"},{"code":"341602110","name":"沙土镇"},{"code":"341602111","name":"观堂镇"},{"code":"341602112","name":"大杨镇"},{"code":"341602113","name":"城父镇"},{"code":"341602114","name":"十河镇"},{"code":"341602115","name":"双沟镇"},{"code":"341602116","name":"淝河镇"},{"code":"341602117","name":"古城镇"},{"code":"341602118","name":"龙扬镇"},{"code":"341602119","name":"立德镇"},{"code":"341602200","name":"张店乡"},{"code":"341602201","name":"赵桥乡"},{"code":"341602400","name":"亳州市经济开发区"},{"code":"341602401","name":"谯城经济开发区"}]},{"code":"341621","name":"涡阳县","children":[{"code":"341621001","name":"城关街道"},{"code":"341621003","name":"星园街道"},{"code":"341621004","name":"天静宫街道"},{"code":"341621103","name":"西阳镇"},{"code":"341621104","name":"涡南镇"},{"code":"341621105","name":"楚店镇"},{"code":"341621106","name":"高公镇"},{"code":"341621108","name":"高炉镇"},{"code":"341621109","name":"曹市镇"},{"code":"341621110","name":"青疃镇"},{"code":"341621111","name":"石弓镇"},{"code":"341621112","name":"龙山镇"},{"code":"341621113","name":"义门镇"},{"code":"341621114","name":"新兴镇"},{"code":"341621115","name":"临湖镇"},{"code":"341621116","name":"丹城镇"},{"code":"341621117","name":"马店集镇"},{"code":"341621118","name":"花沟镇"},{"code":"341621119","name":"店集镇"},{"code":"341621120","name":"陈大镇"},{"code":"341621121","name":"牌坊镇"},{"code":"341621122","name":"公吉寺镇"},{"code":"341621123","name":"标里镇"},{"code":"341621402","name":"安徽涡阳经济开发区"}]},{"code":"341622","name":"蒙城县","children":[{"code":"341622001","name":"漆园街道"},{"code":"341622002","name":"庄周街道"},{"code":"341622003","name":"城关街道"},{"code":"341622101","name":"双涧镇"},{"code":"341622102","name":"小涧镇"},{"code":"341622104","name":"坛城镇"},{"code":"341622106","name":"许疃镇"},{"code":"341622107","name":"板桥集镇"},{"code":"341622108","name":"马集镇"},{"code":"341622109","name":"岳坊镇"},{"code":"341622110","name":"立仓镇"},{"code":"341622111","name":"楚村镇"},{"code":"341622112","name":"乐土镇"},{"code":"341622113","name":"三义镇"},{"code":"341622114","name":"篱笆镇"},{"code":"341622201","name":"王集乡"},{"code":"341622202","name":"小辛集乡"},{"code":"341622400","name":"安徽蒙城经济开发区管理委员会"},{"code":"341622401","name":"淮北矿业集团有限责任公司许疃煤矿"}]},{"code":"341623","name":"利辛县","children":[{"code":"341623100","name":"城关镇"},{"code":"341623101","name":"阚疃镇"},{"code":"341623102","name":"张村镇"},{"code":"341623103","name":"江集镇"},{"code":"341623104","name":"旧城镇"},{"code":"341623105","name":"西潘楼镇"},{"code":"341623106","name":"孙集镇"},{"code":"341623107","name":"汝集镇"},{"code":"341623108","name":"巩店镇"},{"code":"341623109","name":"王人镇"},{"code":"341623110","name":"王市镇"},{"code":"341623111","name":"永兴镇"},{"code":"341623112","name":"马店孜镇"},{"code":"341623113","name":"大李集镇"},{"code":"341623114","name":"胡集镇"},{"code":"341623115","name":"展沟镇"},{"code":"341623116","name":"程家集镇"},{"code":"341623117","name":"中疃镇"},{"code":"341623118","name":"望疃镇"},{"code":"341623119","name":"城北镇"},{"code":"341623203","name":"纪王场乡"},{"code":"341623204","name":"孙庙乡"},{"code":"341623205","name":"新张集乡"},{"code":"341623401","name":"利辛县工业园区"}]}]},{"code":"3417","name":"池州市","children":[{"code":"341702","name":"贵池区","children":[{"code":"341702001","name":"池阳街道"},{"code":"341702002","name":"秋浦街道"},{"code":"341702003","name":"里山街道"},{"code":"341702004","name":"江口街道"},{"code":"341702005","name":"马衙街道"},{"code":"341702006","name":"墩上街道"},{"code":"341702007","name":"梅龙街道"},{"code":"341702008","name":"秋江街道"},{"code":"341702009","name":"杏花村街道"},{"code":"341702010","name":"清风街道"},{"code":"341702011","name":"清溪街道"},{"code":"341702100","name":"殷汇镇"},{"code":"341702101","name":"牛头山镇"},{"code":"341702102","name":"涓桥镇"},{"code":"341702103","name":"梅街镇"},{"code":"341702104","name":"梅村镇"},{"code":"341702105","name":"唐田镇"},{"code":"341702106","name":"牌楼镇"},{"code":"341702107","name":"乌沙镇"},{"code":"341702108","name":"棠溪镇"},{"code":"341702400","name":"安徽池州高新技术产业开发区"},{"code":"341702401","name":"池州经济技术开发区"},{"code":"341702402","name":"平天湖风景区"},{"code":"341702404","name":"皖江江南新兴产业集中区"},{"code":"341702405","name":"池州承接产业转移集中示范园区"},{"code":"341702406","name":"池州市杏花村文化旅游区"}]},{"code":"341721","name":"东至县","children":[{"code":"341721100","name":"尧渡镇"},{"code":"341721101","name":"东流镇"},{"code":"341721102","name":"大渡口镇"},{"code":"341721103","name":"胜利镇"},{"code":"341721104","name":"张溪镇"},{"code":"341721105","name":"洋湖镇"},{"code":"341721106","name":"葛公镇"},{"code":"341721107","name":"香隅镇"},{"code":"341721108","name":"官港镇"},{"code":"341721109","name":"昭潭镇"},{"code":"341721110","name":"龙泉镇"},{"code":"341721111","name":"泥溪镇"},{"code":"341721200","name":"花园乡"},{"code":"341721201","name":"木塔乡"},{"code":"341721202","name":"青山乡"},{"code":"341721400","name":"东至经济开发区"},{"code":"341721401","name":"大渡口经济开发区"}]},{"code":"341722","name":"石台县","children":[{"code":"341722100","name":"仁里镇"},{"code":"341722101","name":"七都镇"},{"code":"341722102","name":"仙寓镇"},{"code":"341722103","name":"丁香镇"},{"code":"341722104","name":"小河镇"},{"code":"341722105","name":"横渡镇"},{"code":"341722200","name":"大演乡"},{"code":"341722201","name":"矶滩乡"},{"code":"341722401","name":"池州经济技术开发区石台工业园区"}]},{"code":"341723","name":"青阳县","children":[{"code":"341723100","name":"蓉城镇"},{"code":"341723101","name":"木镇镇"},{"code":"341723102","name":"庙前镇"},{"code":"341723103","name":"陵阳镇"},{"code":"341723104","name":"新河镇"},{"code":"341723105","name":"丁桥镇"},{"code":"341723106","name":"朱备镇"},{"code":"341723107","name":"杨田镇"},{"code":"341723108","name":"九华镇"},{"code":"341723109","name":"酉华镇"},{"code":"341723200","name":"乔木乡"},{"code":"341723202","name":"杜村乡"},{"code":"341723203","name":"九华乡"},{"code":"341723400","name":"青阳县开发区"}]}]},{"code":"3418","name":"宣城市","children":[{"code":"341802","name":"宣州区","children":[{"code":"341802001","name":"西林街道"},{"code":"341802002","name":"澄江街道"},{"code":"341802003","name":"鳌峰街道"},{"code":"341802004","name":"济川街道"},{"code":"341802005","name":"敬亭山街道"},{"code":"341802006","name":"双桥街道"},{"code":"341802009","name":"向阳街道"},{"code":"341802100","name":"水阳镇"},{"code":"341802101","name":"狸桥镇"},{"code":"341802102","name":"沈村镇"},{"code":"341802103","name":"古泉镇"},{"code":"341802104","name":"洪林镇"},{"code":"341802105","name":"寒亭镇"},{"code":"341802106","name":"文昌镇"},{"code":"341802107","name":"孙埠镇"},{"code":"341802109","name":"杨柳镇"},{"code":"341802110","name":"水东镇"},{"code":"341802111","name":"新田镇"},{"code":"341802112","name":"周王镇"},{"code":"341802113","name":"溪口镇"},{"code":"341802200","name":"朱桥乡"},{"code":"341802201","name":"养贤乡"},{"code":"341802202","name":"五星乡"},{"code":"341802204","name":"黄渡乡"}]},{"code":"341821","name":"郎溪县","children":[{"code":"341821100","name":"建平镇"},{"code":"341821101","name":"十字镇"},{"code":"341821102","name":"新发镇"},{"code":"341821103","name":"涛城镇"},{"code":"341821105","name":"梅渚镇"},{"code":"341821107","name":"毕桥镇"},{"code":"341821108","name":"飞鲤镇"},{"code":"341821109","name":"凌笪镇"},{"code":"341821110","name":"姚村镇"},{"code":"341821400","name":"郎溪经济开发区"},{"code":"341821500","name":"安徽省国营十字铺茶场"},{"code":"341821501","name":"上海市白茅岭监狱"}]},{"code":"341823","name":"泾县","children":[{"code":"341823100","name":"泾川镇"},{"code":"341823101","name":"茂林镇"},{"code":"341823102","name":"榔桥镇"},{"code":"341823103","name":"桃花潭镇"},{"code":"341823104","name":"琴溪镇"},{"code":"341823105","name":"蔡村镇"},{"code":"341823106","name":"云岭镇"},{"code":"341823107","name":"黄村镇"},{"code":"341823108","name":"丁家桥镇"},{"code":"341823200","name":"汀溪乡"},{"code":"341823201","name":"昌桥乡"}]},{"code":"341824","name":"绩溪县","children":[{"code":"341824100","name":"华阳镇"},{"code":"341824101","name":"临溪镇"},{"code":"341824102","name":"长安镇"},{"code":"341824103","name":"上庄镇"},{"code":"341824104","name":"扬溪镇"},{"code":"341824105","name":"伏岭镇"},{"code":"341824106","name":"金沙镇"},{"code":"341824107","name":"瀛洲镇"},{"code":"341824201","name":"板桥头乡"},{"code":"341824202","name":"家朋乡"},{"code":"341824203","name":"荆州乡"},{"code":"341824400","name":"生态工业园区"}]},{"code":"341825","name":"旌德县","children":[{"code":"341825100","name":"旌阳镇"},{"code":"341825101","name":"蔡家桥镇"},{"code":"341825102","name":"三溪镇"},{"code":"341825103","name":"庙首镇"},{"code":"341825104","name":"白地镇"},{"code":"341825105","name":"俞村镇"},{"code":"341825106","name":"兴隆镇"},{"code":"341825107","name":"孙村镇"},{"code":"341825108","name":"版书镇"},{"code":"341825109","name":"云乐镇"}]},{"code":"341871","name":"宣城市经济开发区","children":[{"code":"341871001","name":"天湖街道"},{"code":"341871002","name":"飞彩街道"},{"code":"341871003","name":"金坝街道"}]},{"code":"341881","name":"宁国市","children":[{"code":"341881001","name":"西津街道"},{"code":"341881002","name":"南山街道"},{"code":"341881003","name":"河沥溪街道"},{"code":"341881004","name":"汪溪街道"},{"code":"341881005","name":"竹峰街道"},{"code":"341881100","name":"港口镇"},{"code":"341881101","name":"梅林镇"},{"code":"341881102","name":"中溪镇"},{"code":"341881103","name":"宁墩镇"},{"code":"341881104","name":"仙霞镇"},{"code":"341881105","name":"甲路镇"},{"code":"341881106","name":"胡乐镇"},{"code":"341881107","name":"霞西镇"},{"code":"341881200","name":"云梯畲族乡"},{"code":"341881201","name":"南极乡"},{"code":"341881202","name":"万家乡"},{"code":"341881203","name":"青龙乡"},{"code":"341881204","name":"方塘乡"},{"code":"341881400","name":"经济技术开发区"}]},{"code":"341882","name":"广德市","children":[{"code":"341882001","name":"桐汭街道"},{"code":"341882002","name":"祠山街道"},{"code":"341882003","name":"升平街道"},{"code":"341882100","name":"桃州镇"},{"code":"341882101","name":"柏垫镇"},{"code":"341882102","name":"誓节镇"},{"code":"341882103","name":"邱村镇"},{"code":"341882104","name":"新杭镇"},{"code":"341882105","name":"杨滩镇"},{"code":"341882200","name":"卢村乡"},{"code":"341882201","name":"东亭乡"},{"code":"341882202","name":"四合乡"},{"code":"341882400","name":"广德经济开发区"}]}]}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市","children":[{"code":"350102","name":"鼓楼区","children":[{"code":"350102001","name":"鼓东街道"},{"code":"350102002","name":"鼓西街道"},{"code":"350102003","name":"温泉街道"},{"code":"350102004","name":"东街街道"},{"code":"350102005","name":"南街街道"},{"code":"350102006","name":"安泰街道"},{"code":"350102007","name":"华大街道"},{"code":"350102008","name":"水部街道"},{"code":"350102009","name":"五凤街道"},{"code":"350102100","name":"洪山镇"}]},{"code":"350103","name":"台江区","children":[{"code":"350103001","name":"瀛洲街道"},{"code":"350103002","name":"后洲街道"},{"code":"350103003","name":"义洲街道"},{"code":"350103004","name":"新港街道"},{"code":"350103005","name":"上海街道"},{"code":"350103007","name":"苍霞街道"},{"code":"350103009","name":"茶亭街道"},{"code":"350103010","name":"洋中街道"},{"code":"350103011","name":"鳌峰街道"},{"code":"350103012","name":"宁化街道"}]},{"code":"350104","name":"仓山区","children":[{"code":"350104001","name":"仓前街道"},{"code":"350104002","name":"东升街道"},{"code":"350104003","name":"对湖街道"},{"code":"350104004","name":"临江街道"},{"code":"350104005","name":"三叉街街道"},{"code":"350104006","name":"上渡街道"},{"code":"350104007","name":"下渡街道"},{"code":"350104008","name":"金山街道"},{"code":"350104100","name":"仓山镇"},{"code":"350104101","name":"城门镇"},{"code":"350104102","name":"盖山镇"},{"code":"350104103","name":"建新镇"},{"code":"350104104","name":"螺洲镇"},{"code":"350104400","name":"红星农场"}]},{"code":"350105","name":"马尾区","children":[{"code":"350105001","name":"罗星街道"},{"code":"350105100","name":"马尾镇"},{"code":"350105101","name":"亭江镇"},{"code":"350105102","name":"琅岐镇"}]},{"code":"350111","name":"晋安区","children":[{"code":"350111001","name":"茶园街道"},{"code":"350111002","name":"王庄街道"},{"code":"350111003","name":"象园街道"},{"code":"350111100","name":"鼓山镇"},{"code":"350111101","name":"新店镇"},{"code":"350111102","name":"岳峰镇"},{"code":"350111103","name":"宦溪镇"},{"code":"350111201","name":"寿山乡"},{"code":"350111202","name":"日溪乡"}]},{"code":"350112","name":"长乐区","children":[{"code":"350112001","name":"吴航街道"},{"code":"350112002","name":"航城街道"},{"code":"350112003","name":"营前街道"},{"code":"350112004","name":"漳港街道"},{"code":"350112005","name":"文武砂街道"},{"code":"350112102","name":"首占镇"},{"code":"350112103","name":"玉田镇"},{"code":"350112104","name":"松下镇"},{"code":"350112105","name":"江田镇"},{"code":"350112106","name":"古槐镇"},{"code":"350112108","name":"鹤上镇"},{"code":"350112110","name":"湖南镇"},{"code":"350112111","name":"金峰镇"},{"code":"350112112","name":"文岭镇"},{"code":"350112113","name":"梅花镇"},{"code":"350112114","name":"潭头镇"},{"code":"350112200","name":"罗联乡"},{"code":"350112201","name":"猴屿乡"}]},{"code":"350121","name":"闽侯县","children":[{"code":"350121001","name":"甘蔗街道"},{"code":"350121101","name":"白沙镇"},{"code":"350121102","name":"南屿镇"},{"code":"350121103","name":"尚干镇"},{"code":"350121104","name":"祥谦镇"},{"code":"350121105","name":"青口镇"},{"code":"350121106","name":"南通镇"},{"code":"350121107","name":"上街镇"},{"code":"350121108","name":"荆溪镇"},{"code":"350121200","name":"竹岐乡"},{"code":"350121201","name":"鸿尾乡"},{"code":"350121202","name":"洋里乡"},{"code":"350121203","name":"大湖乡"},{"code":"350121204","name":"廷坪乡"},{"code":"350121206","name":"小箬乡"},{"code":"350121400","name":"江洋农场"}]},{"code":"350122","name":"连江县","children":[{"code":"350122100","name":"凤城镇"},{"code":"350122101","name":"敖江镇"},{"code":"350122102","name":"东岱镇"},{"code":"350122103","name":"琯头镇"},{"code":"350122104","name":"晓澳镇"},{"code":"350122105","name":"东湖镇"},{"code":"350122106","name":"丹阳镇"},{"code":"350122107","name":"长龙镇"},{"code":"350122108","name":"透堡镇"},{"code":"350122109","name":"马鼻镇"},{"code":"350122110","name":"官坂镇"},{"code":"350122111","name":"筱埕镇"},{"code":"350122112","name":"黄岐镇"},{"code":"350122113","name":"苔菉镇"},{"code":"350122114","name":"浦口镇"},{"code":"350122115","name":"坑园镇"},{"code":"350122116","name":"潘渡镇"},{"code":"350122117","name":"江南镇"},{"code":"350122118","name":"下宫镇"},{"code":"350122202","name":"蓼沿乡"},{"code":"350122203","name":"安凯乡"},{"code":"350122205","name":"小沧畲族乡"},{"code":"350122400","name":"马祖乡"}]},{"code":"350123","name":"罗源县","children":[{"code":"350123100","name":"凤山镇"},{"code":"350123101","name":"松山镇"},{"code":"350123102","name":"起步镇"},{"code":"350123103","name":"中房镇"},{"code":"350123104","name":"飞竹镇"},{"code":"350123105","name":"鉴江镇"},{"code":"350123200","name":"白塔乡"},{"code":"350123201","name":"洪洋乡"},{"code":"350123202","name":"西兰乡"},{"code":"350123203","name":"霍口畲族乡"},{"code":"350123204","name":"碧里乡"},{"code":"350123500","name":"罗源湾"}]},{"code":"350124","name":"闽清县","children":[{"code":"350124100","name":"梅城镇"},{"code":"350124101","name":"梅溪镇"},{"code":"350124102","name":"白樟镇"},{"code":"350124103","name":"金沙镇"},{"code":"350124104","name":"白中镇"},{"code":"350124105","name":"池园镇"},{"code":"350124106","name":"坂东镇"},{"code":"350124107","name":"塔庄镇"},{"code":"350124108","name":"省璜镇"},{"code":"350124109","name":"雄江镇"},{"code":"350124110","name":"东桥镇"},{"code":"350124200","name":"云龙乡"},{"code":"350124201","name":"上莲乡"},{"code":"350124204","name":"三溪乡"},{"code":"350124205","name":"桔林乡"},{"code":"350124206","name":"下祝乡"}]},{"code":"350125","name":"永泰县","children":[{"code":"350125100","name":"樟城镇"},{"code":"350125101","name":"嵩口镇"},{"code":"350125102","name":"梧桐镇"},{"code":"350125103","name":"葛岭镇"},{"code":"350125104","name":"城峰镇"},{"code":"350125105","name":"清凉镇"},{"code":"350125106","name":"长庆镇"},{"code":"350125107","name":"同安镇"},{"code":"350125108","name":"大洋镇"},{"code":"350125200","name":"塘前乡"},{"code":"350125201","name":"富泉乡"},{"code":"350125202","name":"岭路乡"},{"code":"350125203","name":"赤锡乡"},{"code":"350125204","name":"洑口乡"},{"code":"350125205","name":"盖洋乡"},{"code":"350125206","name":"东洋乡"},{"code":"350125207","name":"霞拔乡"},{"code":"350125208","name":"盘谷乡"},{"code":"350125209","name":"红星乡"},{"code":"350125210","name":"白云乡"},{"code":"350125211","name":"丹云乡"}]},{"code":"350128","name":"平潭县","children":[{"code":"350128001","name":"海坛街道"},{"code":"350128107","name":"金井镇"},{"code":"350128108","name":"君山镇"},{"code":"350128109","name":"苏平镇"},{"code":"350128201","name":"屿头乡"},{"code":"350128205","name":"东庠乡"},{"code":"350128207","name":"南海乡"}]},{"code":"350181","name":"福清市","children":[{"code":"350181002","name":"玉屏街道"},{"code":"350181003","name":"龙山街道"},{"code":"350181004","name":"龙江街道"},{"code":"350181005","name":"宏路街道"},{"code":"350181006","name":"石竹街道"},{"code":"350181007","name":"音西街道"},{"code":"350181008","name":"阳下街道"},{"code":"350181103","name":"海口镇"},{"code":"350181104","name":"城头镇"},{"code":"350181105","name":"南岭镇"},{"code":"350181106","name":"龙田镇"},{"code":"350181107","name":"江镜镇"},{"code":"350181108","name":"港头镇"},{"code":"350181109","name":"高山镇"},{"code":"350181110","name":"沙埔镇"},{"code":"350181111","name":"三山镇"},{"code":"350181112","name":"东瀚镇"},{"code":"350181113","name":"渔溪镇"},{"code":"350181114","name":"上迳镇"},{"code":"350181115","name":"新厝镇"},{"code":"350181116","name":"江阴镇"},{"code":"350181117","name":"东张镇"},{"code":"350181118","name":"镜洋镇"},{"code":"350181119","name":"一都镇"},{"code":"350181400","name":"江镜华侨"},{"code":"350181401","name":"东阁华侨"}]}]},{"code":"3502","name":"厦门市","children":[{"code":"350203","name":"思明区","children":[{"code":"350203001","name":"厦港街道"},{"code":"350203003","name":"中华街道"},{"code":"350203005","name":"滨海街道"},{"code":"350203006","name":"鹭江街道"},{"code":"350203007","name":"开元街道"},{"code":"350203008","name":"梧村街道"},{"code":"350203009","name":"筼筜街道"},{"code":"350203010","name":"莲前街道"},{"code":"350203011","name":"嘉莲街道"},{"code":"350203012","name":"鼓浪屿街道"}]},{"code":"350205","name":"海沧区","children":[{"code":"350205001","name":"海沧街道"},{"code":"350205002","name":"新阳街道"},{"code":"350205003","name":"嵩屿街道"},{"code":"350205004","name":"东孚街道"},{"code":"350205403","name":"天竺山林场"},{"code":"350205407","name":"厦门海沧保税港区"}]},{"code":"350206","name":"湖里区","children":[{"code":"350206001","name":"湖里街道"},{"code":"350206002","name":"殿前街道"},{"code":"350206003","name":"禾山街道"},{"code":"350206004","name":"江头街道"},{"code":"350206005","name":"金山街道"},{"code":"350206405","name":"火炬高技术开发区"},{"code":"350206406","name":"象屿保税区"}]},{"code":"350211","name":"集美区","children":[{"code":"350211001","name":"集美街道"},{"code":"350211002","name":"侨英街道"},{"code":"350211003","name":"杏林街道"},{"code":"350211004","name":"杏滨街道"},{"code":"350211102","name":"灌口镇"},{"code":"350211103","name":"后溪镇"},{"code":"350211401","name":"第二农场"},{"code":"350211402","name":"省天马种猪场"},{"code":"350211403","name":"天马华侨农场"},{"code":"350211404","name":"坂头防护林场"}]},{"code":"350212","name":"同安区","children":[{"code":"350212001","name":"大同街道"},{"code":"350212002","name":"祥平街道"},{"code":"350212105","name":"莲花镇"},{"code":"350212106","name":"新民镇"},{"code":"350212107","name":"洪塘镇"},{"code":"350212108","name":"西柯镇"},{"code":"350212109","name":"汀溪镇"},{"code":"350212110","name":"五显镇"}]},{"code":"350213","name":"翔安区","children":[{"code":"350213001","name":"大嶝街道"},{"code":"350213002","name":"马巷街道"},{"code":"350213003","name":"新店街道"},{"code":"350213004","name":"凤翔街道"},{"code":"350213005","name":"民安街道"},{"code":"350213006","name":"香山街道"},{"code":"350213007","name":"金海街道"},{"code":"350213103","name":"新圩镇"},{"code":"350213111","name":"内厝镇"},{"code":"350213404","name":"大帽山农场"}]}]},{"code":"3503","name":"莆田市","children":[{"code":"350302","name":"城厢区","children":[{"code":"350302001","name":"龙桥街道"},{"code":"350302002","name":"凤凰山街道"},{"code":"350302003","name":"霞林街道"},{"code":"350302100","name":"常太镇"},{"code":"350302101","name":"华亭镇"},{"code":"350302102","name":"灵川镇"},{"code":"350302103","name":"东海镇"}]},{"code":"350303","name":"涵江区","children":[{"code":"350303001","name":"涵东街道"},{"code":"350303002","name":"涵西街道"},{"code":"350303100","name":"三江口镇"},{"code":"350303101","name":"白塘镇"},{"code":"350303102","name":"国欢镇"},{"code":"350303103","name":"梧塘镇"},{"code":"350303104","name":"江口镇"},{"code":"350303105","name":"萩芦镇"},{"code":"350303106","name":"白沙镇"},{"code":"350303107","name":"庄边镇"},{"code":"350303108","name":"新县镇"},{"code":"350303200","name":"大洋乡"},{"code":"350303500","name":"赤港开发区"}]},{"code":"350304","name":"荔城区","children":[{"code":"350304001","name":"镇海街道"},{"code":"350304002","name":"拱辰街道"},{"code":"350304100","name":"西天尾镇"},{"code":"350304101","name":"黄石镇"},{"code":"350304102","name":"新度镇"},{"code":"350304103","name":"北高镇"}]},{"code":"350305","name":"秀屿区","children":[{"code":"350305100","name":"笏石镇"},{"code":"350305101","name":"东庄镇"},{"code":"350305102","name":"忠门镇"},{"code":"350305103","name":"东埔镇"},{"code":"350305104","name":"东峤镇"},{"code":"350305105","name":"埭头镇"},{"code":"350305106","name":"平海镇"},{"code":"350305107","name":"南日镇"},{"code":"350305108","name":"湄洲镇"},{"code":"350305109","name":"山亭镇"},{"code":"350305110","name":"月塘镇"},{"code":"350305400","name":"前沁农场"},{"code":"350305401","name":"后海管理局"}]},{"code":"350322","name":"仙游县","children":[{"code":"350322001","name":"鲤城街道"},{"code":"350322100","name":"枫亭镇"},{"code":"350322101","name":"榜头镇"},{"code":"350322102","name":"郊尾镇"},{"code":"350322103","name":"度尾镇"},{"code":"350322104","name":"鲤南镇"},{"code":"350322105","name":"赖店镇"},{"code":"350322106","name":"盖尾镇"},{"code":"350322107","name":"园庄镇"},{"code":"350322108","name":"大济镇"},{"code":"350322109","name":"龙华镇"},{"code":"350322110","name":"钟山镇"},{"code":"350322111","name":"游洋镇"},{"code":"350322200","name":"西苑乡"},{"code":"350322201","name":"石苍乡"},{"code":"350322202","name":"社硎乡"},{"code":"350322203","name":"书峰乡"},{"code":"350322204","name":"菜溪乡"}]}]},{"code":"3504","name":"三明市","children":[{"code":"350404","name":"三元区","children":[{"code":"350404001","name":"列东街道"},{"code":"350404002","name":"列西街道"},{"code":"350404003","name":"徐碧街道"},{"code":"350404004","name":"城关街道"},{"code":"350404005","name":"白沙街道"},{"code":"350404006","name":"富兴堡街道"},{"code":"350404007","name":"荆西街道"},{"code":"350404100","name":"陈大镇"},{"code":"350404101","name":"洋溪镇"},{"code":"350404102","name":"莘口镇"},{"code":"350404103","name":"岩前镇"},{"code":"350404200","name":"中村乡"},{"code":"350404500","name":"福建三元经济开发区"}]},{"code":"350405","name":"沙县区","children":[{"code":"350405001","name":"凤岗街道"},{"code":"350405002","name":"虬江街道"},{"code":"350405100","name":"青州镇"},{"code":"350405101","name":"夏茂镇"},{"code":"350405102","name":"高砂镇"},{"code":"350405103","name":"高桥镇"},{"code":"350405104","name":"富口镇"},{"code":"350405105","name":"大洛镇"},{"code":"350405200","name":"南霞乡"},{"code":"350405201","name":"南阳乡"},{"code":"350405202","name":"郑湖乡"},{"code":"350405203","name":"湖源乡"},{"code":"350405400","name":"金沙园开发区"},{"code":"350405401","name":"金古园开发区"},{"code":"350405402","name":"青山纸业工业区"},{"code":"350405403","name":"海西物流园区"}]},{"code":"350421","name":"明溪县","children":[{"code":"350421100","name":"雪峰镇"},{"code":"350421101","name":"盖洋镇"},{"code":"350421102","name":"胡坊镇"},{"code":"350421103","name":"瀚仙镇"},{"code":"350421200","name":"城关乡"},{"code":"350421201","name":"沙溪乡"},{"code":"350421202","name":"夏阳乡"},{"code":"350421203","name":"枫溪乡"},{"code":"350421204","name":"夏坊乡"}]},{"code":"350423","name":"清流县","children":[{"code":"350423100","name":"龙津镇"},{"code":"350423101","name":"嵩溪镇"},{"code":"350423102","name":"嵩口镇"},{"code":"350423103","name":"灵地镇"},{"code":"350423104","name":"长校镇"},{"code":"350423105","name":"赖坊镇"},{"code":"350423106","name":"林畲镇"},{"code":"350423201","name":"温郊乡"},{"code":"350423203","name":"田源乡"},{"code":"350423204","name":"沙芜乡"},{"code":"350423206","name":"余朋乡"},{"code":"350423208","name":"李家乡"},{"code":"350423209","name":"里田乡"}]},{"code":"350424","name":"宁化县","children":[{"code":"350424100","name":"翠江镇"},{"code":"350424101","name":"泉上镇"},{"code":"350424102","name":"湖村镇"},{"code":"350424103","name":"石壁镇"},{"code":"350424104","name":"曹坊镇"},{"code":"350424105","name":"安远镇"},{"code":"350424106","name":"淮土镇"},{"code":"350424107","name":"安乐镇"},{"code":"350424108","name":"水茜镇"},{"code":"350424109","name":"城郊镇"},{"code":"350424110","name":"城南镇"},{"code":"350424202","name":"济村乡"},{"code":"350424204","name":"方田乡"},{"code":"350424207","name":"治平畲族乡"},{"code":"350424208","name":"中沙乡"},{"code":"350424209","name":"河龙乡"}]},{"code":"350425","name":"大田县","children":[{"code":"350425100","name":"均溪镇"},{"code":"350425101","name":"石牌镇"},{"code":"350425102","name":"上京镇"},{"code":"350425103","name":"广平镇"},{"code":"350425104","name":"桃源镇"},{"code":"350425105","name":"太华镇"},{"code":"350425106","name":"建设镇"},{"code":"350425107","name":"奇韬镇"},{"code":"350425108","name":"华兴镇"},{"code":"350425109","name":"吴山镇"},{"code":"350425110","name":"文江镇"},{"code":"350425111","name":"梅山镇"},{"code":"350425201","name":"屏山乡"},{"code":"350425203","name":"济阳乡"},{"code":"350425204","name":"武陵乡"},{"code":"350425205","name":"谢洋乡"},{"code":"350425208","name":"湖美乡"},{"code":"350425209","name":"前坪乡"},{"code":"350425400","name":"东风农场生活区"}]},{"code":"350426","name":"尤溪县","children":[{"code":"350426100","name":"城关镇"},{"code":"350426101","name":"梅仙镇"},{"code":"350426102","name":"西滨镇"},{"code":"350426103","name":"洋中镇"},{"code":"350426104","name":"新阳镇"},{"code":"350426105","name":"管前镇"},{"code":"350426106","name":"西城镇"},{"code":"350426107","name":"尤溪口镇"},{"code":"350426108","name":"坂面镇"},{"code":"350426109","name":"联合镇"},{"code":"350426110","name":"中仙镇"},{"code":"350426201","name":"汤川乡"},{"code":"350426202","name":"溪尾乡"},{"code":"350426204","name":"台溪乡"},{"code":"350426206","name":"八字桥乡"}]},{"code":"350428","name":"将乐县","children":[{"code":"350428100","name":"古镛镇"},{"code":"350428101","name":"万安镇"},{"code":"350428102","name":"高唐镇"},{"code":"350428103","name":"白莲镇"},{"code":"350428104","name":"黄潭镇"},{"code":"350428105","name":"水南镇"},{"code":"350428106","name":"光明镇"},{"code":"350428107","name":"南口镇"},{"code":"350428201","name":"漠源乡"},{"code":"350428203","name":"万全乡"},{"code":"350428204","name":"安仁乡"},{"code":"350428205","name":"大源乡"},{"code":"350428206","name":"余坊乡"}]},{"code":"350429","name":"泰宁县","children":[{"code":"350429100","name":"杉城镇"},{"code":"350429101","name":"朱口镇"},{"code":"350429103","name":"下渠镇"},{"code":"350429200","name":"新桥乡"},{"code":"350429201","name":"上青乡"},{"code":"350429202","name":"大田乡"},{"code":"350429203","name":"梅口乡"},{"code":"350429205","name":"开善乡"},{"code":"350429208","name":"大龙乡"}]},{"code":"350430","name":"建宁县","children":[{"code":"350430100","name":"濉溪镇"},{"code":"350430101","name":"里心镇"},{"code":"350430102","name":"溪口镇"},{"code":"350430103","name":"均口镇"},{"code":"350430201","name":"伊家乡"},{"code":"350430202","name":"黄坊乡"},{"code":"350430203","name":"溪源乡"},{"code":"350430204","name":"客坊乡"},{"code":"350430205","name":"黄埠乡"},{"code":"350430400","name":"福建建宁经济开发区"}]},{"code":"350481","name":"永安市","children":[{"code":"350481001","name":"燕东街道"},{"code":"350481002","name":"燕西街道"},{"code":"350481003","name":"燕南街道"},{"code":"350481004","name":"燕北街道"},{"code":"350481100","name":"西洋镇"},{"code":"350481101","name":"贡川镇"},{"code":"350481102","name":"安砂镇"},{"code":"350481103","name":"小陶镇"},{"code":"350481104","name":"大湖镇"},{"code":"350481105","name":"曹远镇"},{"code":"350481106","name":"洪田镇"},{"code":"350481107","name":"槐南镇"},{"code":"350481202","name":"上坪乡"},{"code":"350481203","name":"罗坊乡"},{"code":"350481204","name":"青水畲族乡"}]}]},{"code":"3505","name":"泉州市","children":[{"code":"350502","name":"鲤城区","children":[{"code":"350502001","name":"海滨街道"},{"code":"350502002","name":"临江街道"},{"code":"350502003","name":"鲤中街道"},{"code":"350502004","name":"开元街道"},{"code":"350502005","name":"浮桥街道"},{"code":"350502006","name":"江南街道"},{"code":"350502007","name":"金龙街道"},{"code":"350502008","name":"常泰街道"},{"code":"350502400","name":"清濛经济开发区"}]},{"code":"350503","name":"丰泽区","children":[{"code":"350503001","name":"东湖街道"},{"code":"350503002","name":"丰泽街道"},{"code":"350503003","name":"泉秀街道"},{"code":"350503004","name":"清源街道"},{"code":"350503005","name":"华大街道"},{"code":"350503006","name":"城东街道"},{"code":"350503007","name":"东海街道"},{"code":"350503008","name":"北峰街道"}]},{"code":"350504","name":"洛江区","children":[{"code":"350504001","name":"万安街道"},{"code":"350504002","name":"双阳街道"},{"code":"350504100","name":"罗溪镇"},{"code":"350504101","name":"马甲镇"},{"code":"350504102","name":"河市镇"},{"code":"350504200","name":"虹山乡"}]},{"code":"350505","name":"泉港区","children":[{"code":"350505001","name":"山腰街道"},{"code":"350505100","name":"南埔镇"},{"code":"350505101","name":"界山镇"},{"code":"350505102","name":"后龙镇"},{"code":"350505103","name":"峰尾镇"},{"code":"350505105","name":"前黄镇"},{"code":"350505106","name":"涂岭镇"},{"code":"350505400","name":"石化工业园区"}]},{"code":"350521","name":"惠安县","children":[{"code":"350521100","name":"螺城镇"},{"code":"350521101","name":"螺阳镇"},{"code":"350521102","name":"黄塘镇"},{"code":"350521103","name":"紫山镇"},{"code":"350521104","name":"洛阳镇"},{"code":"350521105","name":"东园镇"},{"code":"350521106","name":"张坂镇"},{"code":"350521107","name":"崇武镇"},{"code":"350521108","name":"山霞镇"},{"code":"350521109","name":"涂寨镇"},{"code":"350521110","name":"东岭镇"},{"code":"350521111","name":"东桥镇"},{"code":"350521112","name":"净峰镇"},{"code":"350521113","name":"小岞镇"},{"code":"350521114","name":"辋川镇"},{"code":"350521200","name":"百崎回族乡"},{"code":"350521400","name":"城南工业区"},{"code":"350521401","name":"惠南工业区"},{"code":"350521402","name":"泉惠石化工业园区"},{"code":"350521403","name":"惠东工业园区"}]},{"code":"350524","name":"安溪县","children":[{"code":"350524100","name":"凤城镇"},{"code":"350524101","name":"蓬莱镇"},{"code":"350524102","name":"湖头镇"},{"code":"350524103","name":"官桥镇"},{"code":"350524104","name":"剑斗镇"},{"code":"350524105","name":"城厢镇"},{"code":"350524106","name":"金谷镇"},{"code":"350524107","name":"龙门镇"},{"code":"350524108","name":"虎邱镇"},{"code":"350524109","name":"芦田镇"},{"code":"350524110","name":"感德镇"},{"code":"350524111","name":"魁斗镇"},{"code":"350524112","name":"西坪镇"},{"code":"350524113","name":"参内镇"},{"code":"350524114","name":"长卿镇"},{"code":"350524201","name":"白濑乡"},{"code":"350524202","name":"湖上乡"},{"code":"350524203","name":"尚卿乡"},{"code":"350524204","name":"大坪乡"},{"code":"350524205","name":"龙涓乡"},{"code":"350524207","name":"蓝田乡"},{"code":"350524208","name":"祥华乡"},{"code":"350524209","name":"桃舟乡"},{"code":"350524210","name":"福田乡"}]},{"code":"350525","name":"永春县","children":[{"code":"350525100","name":"桃城镇"},{"code":"350525101","name":"五里街镇"},{"code":"350525102","name":"一都镇"},{"code":"350525103","name":"下洋镇"},{"code":"350525104","name":"蓬壶镇"},{"code":"350525105","name":"达埔镇"},{"code":"350525106","name":"吾峰镇"},{"code":"350525107","name":"石鼓镇"},{"code":"350525108","name":"岵山镇"},{"code":"350525109","name":"东平镇"},{"code":"350525110","name":"湖洋镇"},{"code":"350525111","name":"坑仔口镇"},{"code":"350525112","name":"玉斗镇"},{"code":"350525113","name":"锦斗镇"},{"code":"350525114","name":"东关镇"},{"code":"350525115","name":"桂洋镇"},{"code":"350525116","name":"苏坑镇"},{"code":"350525117","name":"仙夹镇"},{"code":"350525200","name":"横口乡"},{"code":"350525201","name":"呈祥乡"},{"code":"350525202","name":"介福乡"},{"code":"350525204","name":"外山乡"}]},{"code":"350526","name":"德化县","children":[{"code":"350526100","name":"浔中镇"},{"code":"350526101","name":"龙浔镇"},{"code":"350526102","name":"三班镇"},{"code":"350526103","name":"龙门滩镇"},{"code":"350526104","name":"雷峰镇"},{"code":"350526105","name":"南埕镇"},{"code":"350526106","name":"水口镇"},{"code":"350526107","name":"赤水镇"},{"code":"350526108","name":"上涌镇"},{"code":"350526109","name":"葛坑镇"},{"code":"350526110","name":"盖德镇"},{"code":"350526111","name":"美湖镇"},{"code":"350526200","name":"杨梅乡"},{"code":"350526202","name":"汤头乡"},{"code":"350526204","name":"桂阳乡"},{"code":"350526206","name":"国宝乡"},{"code":"350526208","name":"大铭乡"},{"code":"350526209","name":"春美乡"}]},{"code":"350527","name":"金门县","children":[{"code":"350527000","name":"金门县"}]},{"code":"350581","name":"石狮市","children":[{"code":"350581001","name":"湖滨街道"},{"code":"350581002","name":"凤里街道"},{"code":"350581100","name":"灵秀镇"},{"code":"350581101","name":"宝盖镇"},{"code":"350581102","name":"蚶江镇"},{"code":"350581103","name":"祥芝镇"},{"code":"350581104","name":"鸿山镇"},{"code":"350581105","name":"锦尚镇"},{"code":"350581106","name":"永宁镇"}]},{"code":"350582","name":"晋江市","children":[{"code":"350582001","name":"青阳街道"},{"code":"350582002","name":"梅岭街道"},{"code":"350582003","name":"西园街道"},{"code":"350582004","name":"罗山街道"},{"code":"350582005","name":"新塘街道"},{"code":"350582006","name":"灵源街道"},{"code":"350582101","name":"安海镇"},{"code":"350582102","name":"磁灶镇"},{"code":"350582103","name":"陈埭镇"},{"code":"350582104","name":"东石镇"},{"code":"350582105","name":"深沪镇"},{"code":"350582106","name":"金井镇"},{"code":"350582107","name":"池店镇"},{"code":"350582109","name":"内坑镇"},{"code":"350582110","name":"龙湖镇"},{"code":"350582111","name":"永和镇"},{"code":"350582112","name":"英林镇"},{"code":"350582113","name":"紫帽镇"},{"code":"350582114","name":"西滨镇"},{"code":"350582400","name":"安平开发区"},{"code":"350582401","name":"晋江市经济开发区"},{"code":"350582402","name":"泉州出口加工区"}]},{"code":"350583","name":"南安市","children":[{"code":"350583001","name":"溪美街道"},{"code":"350583002","name":"柳城街道"},{"code":"350583003","name":"美林街道"},{"code":"350583100","name":"省新镇"},{"code":"350583101","name":"仑苍镇"},{"code":"350583102","name":"东田镇"},{"code":"350583103","name":"英都镇"},{"code":"350583104","name":"翔云镇"},{"code":"350583105","name":"金淘镇"},{"code":"350583106","name":"诗山镇"},{"code":"350583107","name":"蓬华镇"},{"code":"350583108","name":"码头镇"},{"code":"350583109","name":"九都镇"},{"code":"350583110","name":"乐峰镇"},{"code":"350583111","name":"罗东镇"},{"code":"350583112","name":"梅山镇"},{"code":"350583113","name":"洪濑镇"},{"code":"350583114","name":"洪梅镇"},{"code":"350583115","name":"康美镇"},{"code":"350583116","name":"丰州镇"},{"code":"350583117","name":"霞美镇"},{"code":"350583118","name":"官桥镇"},{"code":"350583119","name":"水头镇"},{"code":"350583120","name":"石井镇"},{"code":"350583200","name":"眉山乡"},{"code":"350583201","name":"向阳乡"},{"code":"350583400","name":"雪峰管委会"}]}]},{"code":"3506","name":"漳州市","children":[{"code":"350602","name":"芗城区","children":[{"code":"350602001","name":"东铺头街道"},{"code":"350602002","name":"西桥街道"},{"code":"350602003","name":"新桥街道"},{"code":"350602004","name":"巷口街道"},{"code":"350602005","name":"南坑街道"},{"code":"350602006","name":"通北街道"},{"code":"350602007","name":"芝山街道"},{"code":"350602008","name":"石亭街道"},{"code":"350602100","name":"浦南镇"},{"code":"350602101","name":"天宝镇"},{"code":"350602400","name":"芗城区奶牛场"},{"code":"350602402","name":"天宝林场"}]},{"code":"350603","name":"龙文区","children":[{"code":"350603001","name":"步文街道"},{"code":"350603002","name":"碧湖街道"},{"code":"350603003","name":"蓝田街道"},{"code":"350603004","name":"朝阳街道"},{"code":"350603005","name":"景山街道"},{"code":"350603103","name":"郭坑镇"},{"code":"350603500","name":"蓝田开发区管委会"}]},{"code":"350604","name":"龙海区","children":[{"code":"350604001","name":"石码街道"},{"code":"350604100","name":"海澄镇"},{"code":"350604101","name":"角美镇"},{"code":"350604102","name":"白水镇"},{"code":"350604103","name":"浮宫镇"},{"code":"350604104","name":"程溪镇"},{"code":"350604105","name":"港尾镇"},{"code":"350604106","name":"九湖镇"},{"code":"350604107","name":"颜厝镇"},{"code":"350604108","name":"榜山镇"},{"code":"350604109","name":"紫泥镇"},{"code":"350604110","name":"东园镇"},{"code":"350604200","name":"东泗乡"},{"code":"350604201","name":"隆教畲族乡"},{"code":"350604400","name":"双第华侨农场"},{"code":"350604401","name":"九龙岭林场"},{"code":"350604402","name":"程溪农场"},{"code":"350604403","name":"良种场"},{"code":"350604405","name":"林下林场"},{"code":"350604501","name":"招商局漳州开发区"}]},{"code":"350605","name":"长泰区","children":[{"code":"350605100","name":"武安镇"},{"code":"350605101","name":"岩溪镇"},{"code":"350605102","name":"陈巷镇"},{"code":"350605103","name":"枋洋镇"},{"code":"350605200","name":"坂里乡"},{"code":"350605400","name":"国营古农农场"},{"code":"350605500","name":"长泰经济开发区"},{"code":"350605501","name":"马洋溪生态旅游区"},{"code":"350605502","name":"林墩工业区"}]},{"code":"350622","name":"云霄县","children":[{"code":"350622100","name":"云陵镇"},{"code":"350622101","name":"陈岱镇"},{"code":"350622102","name":"东厦镇"},{"code":"350622103","name":"莆美镇"},{"code":"350622104","name":"列屿镇"},{"code":"350622105","name":"火田镇"},{"code":"350622200","name":"下河乡"},{"code":"350622201","name":"马铺乡"},{"code":"350622202","name":"和平乡"},{"code":"350622500","name":"常山华侨经济开发区"},{"code":"350622501","name":"云陵工业开发区"}]},{"code":"350623","name":"漳浦县","children":[{"code":"350623100","name":"绥安镇"},{"code":"350623101","name":"旧镇镇"},{"code":"350623102","name":"佛昙镇"},{"code":"350623103","name":"赤湖镇"},{"code":"350623104","name":"杜浔镇"},{"code":"350623105","name":"霞美镇"},{"code":"350623106","name":"官浔镇"},{"code":"350623107","name":"石榴镇"},{"code":"350623108","name":"盘陀镇"},{"code":"350623109","name":"长桥镇"},{"code":"350623110","name":"前亭镇"},{"code":"350623111","name":"马坪镇"},{"code":"350623112","name":"深土镇"},{"code":"350623113","name":"六鳌镇"},{"code":"350623114","name":"沙西镇"},{"code":"350623115","name":"古雷镇"},{"code":"350623116","name":"大南坂镇"},{"code":"350623200","name":"南浦乡"},{"code":"350623201","name":"赤岭畲族乡"},{"code":"350623202","name":"湖西畲族乡"},{"code":"350623203","name":"赤土乡"},{"code":"350623400","name":"漳浦盐场"},{"code":"350623405","name":"南山华侨茶果场"},{"code":"350623406","name":"中西林场"},{"code":"350623408","name":"下蔡林场"}]},{"code":"350624","name":"诏安县","children":[{"code":"350624100","name":"南诏镇"},{"code":"350624101","name":"四都镇"},{"code":"350624102","name":"梅岭镇"},{"code":"350624103","name":"桥东镇"},{"code":"350624104","name":"深桥镇"},{"code":"350624105","name":"太平镇"},{"code":"350624106","name":"霞葛镇"},{"code":"350624107","name":"官陂镇"},{"code":"350624108","name":"秀篆镇"},{"code":"350624109","name":"西潭镇"},{"code":"350624200","name":"金星乡"},{"code":"350624202","name":"白洋乡"},{"code":"350624203","name":"建设乡"},{"code":"350624204","name":"红星乡"},{"code":"350624205","name":"梅洲乡"},{"code":"350624402","name":"国营湖内林场"},{"code":"350624403","name":"岭下溪国有防护林场"},{"code":"350624501","name":"诏安工业园区管委会"},{"code":"350624502","name":"诏安金都工业集中区管委会"}]},{"code":"350626","name":"东山县","children":[{"code":"350626100","name":"西埔镇"},{"code":"350626101","name":"樟塘镇"},{"code":"350626102","name":"康美镇"},{"code":"350626103","name":"杏陈镇"},{"code":"350626104","name":"陈城镇"},{"code":"350626105","name":"前楼镇"},{"code":"350626106","name":"铜陵镇"}]},{"code":"350627","name":"南靖县","children":[{"code":"350627100","name":"山城镇"},{"code":"350627101","name":"丰田镇"},{"code":"350627102","name":"靖城镇"},{"code":"350627103","name":"龙山镇"},{"code":"350627104","name":"金山镇"},{"code":"350627105","name":"和溪镇"},{"code":"350627106","name":"奎洋镇"},{"code":"350627107","name":"梅林镇"},{"code":"350627108","name":"书洋镇"},{"code":"350627109","name":"船场镇"},{"code":"350627110","name":"南坑镇"}]},{"code":"350628","name":"平和县","children":[{"code":"350628100","name":"小溪镇"},{"code":"350628101","name":"山格镇"},{"code":"350628102","name":"文峰镇"},{"code":"350628103","name":"南胜镇"},{"code":"350628104","name":"坂仔镇"},{"code":"350628105","name":"安厚镇"},{"code":"350628106","name":"大溪镇"},{"code":"350628107","name":"霞寨镇"},{"code":"350628108","name":"九峰镇"},{"code":"350628109","name":"芦溪镇"},{"code":"350628200","name":"五寨乡"},{"code":"350628201","name":"国强乡"},{"code":"350628202","name":"崎岭乡"},{"code":"350628203","name":"长乐乡"},{"code":"350628204","name":"秀峰乡"},{"code":"350628401","name":"福建平和工业园区"}]},{"code":"350629","name":"华安县","children":[{"code":"350629100","name":"华丰镇"},{"code":"350629101","name":"丰山镇"},{"code":"350629102","name":"沙建镇"},{"code":"350629103","name":"新圩镇"},{"code":"350629104","name":"高安镇"},{"code":"350629105","name":"仙都镇"},{"code":"350629200","name":"高车乡"},{"code":"350629201","name":"马坑乡"},{"code":"350629203","name":"湖林乡"},{"code":"350629400","name":"福建土楼(华安)旅游区"}]}]},{"code":"3507","name":"南平市","children":[{"code":"350702","name":"延平区","children":[{"code":"350702001","name":"梅山街道"},{"code":"350702002","name":"黄墩街道"},{"code":"350702003","name":"紫云街道"},{"code":"350702004","name":"四鹤街道"},{"code":"350702005","name":"水南街道"},{"code":"350702006","name":"水东街道"},{"code":"350702100","name":"来舟镇"},{"code":"350702101","name":"樟湖镇"},{"code":"350702102","name":"夏道镇"},{"code":"350702103","name":"西芹镇"},{"code":"350702104","name":"峡阳镇"},{"code":"350702105","name":"南山镇"},{"code":"350702106","name":"大横镇"},{"code":"350702107","name":"王台镇"},{"code":"350702108","name":"太平镇"},{"code":"350702109","name":"塔前镇"},{"code":"350702110","name":"茫荡镇"},{"code":"350702111","name":"洋后镇"},{"code":"350702112","name":"炉下镇"},{"code":"350702200","name":"巨口乡"},{"code":"350702202","name":"赤门乡"}]},{"code":"350703","name":"建阳区","children":[{"code":"350703001","name":"潭城街道"},{"code":"350703002","name":"童游街道"},{"code":"350703102","name":"将口镇"},{"code":"350703103","name":"徐市镇"},{"code":"350703104","name":"莒口镇"},{"code":"350703105","name":"麻沙镇"},{"code":"350703106","name":"黄坑镇"},{"code":"350703107","name":"水吉镇"},{"code":"350703108","name":"漳墩镇"},{"code":"350703109","name":"小湖镇"},{"code":"350703200","name":"崇雒乡"},{"code":"350703201","name":"书坊乡"},{"code":"350703202","name":"回龙乡"}]},{"code":"350721","name":"顺昌县","children":[{"code":"350721001","name":"双溪街道"},{"code":"350721100","name":"建西镇"},{"code":"350721101","name":"洋口镇"},{"code":"350721102","name":"元坑镇"},{"code":"350721103","name":"埔上镇"},{"code":"350721104","name":"大历镇"},{"code":"350721105","name":"大干镇"},{"code":"350721106","name":"仁寿镇"},{"code":"350721107","name":"郑坊镇"},{"code":"350721200","name":"洋墩乡"},{"code":"350721202","name":"岚下乡"},{"code":"350721203","name":"高阳乡"}]},{"code":"350722","name":"浦城县","children":[{"code":"350722001","name":"南浦街道"},{"code":"350722002","name":"河滨街道"},{"code":"350722101","name":"富岭镇"},{"code":"350722102","name":"石陂镇"},{"code":"350722103","name":"临江镇"},{"code":"350722104","name":"仙阳镇"},{"code":"350722105","name":"水北街镇"},{"code":"350722106","name":"永兴镇"},{"code":"350722107","name":"忠信镇"},{"code":"350722108","name":"莲塘镇"},{"code":"350722109","name":"九牧镇"},{"code":"350722200","name":"万安乡"},{"code":"350722201","name":"古楼乡"},{"code":"350722202","name":"山下乡"},{"code":"350722203","name":"枫溪乡"},{"code":"350722204","name":"濠村乡"},{"code":"350722205","name":"管厝乡"},{"code":"350722206","name":"盘亭乡"},{"code":"350722207","name":"官路乡"}]},{"code":"350723","name":"光泽县","children":[{"code":"350723100","name":"杭川镇"},{"code":"350723101","name":"寨里镇"},{"code":"350723102","name":"止马镇"},{"code":"350723200","name":"鸾凤乡"},{"code":"350723201","name":"崇仁乡"},{"code":"350723202","name":"李坊乡"},{"code":"350723203","name":"华桥乡"},{"code":"350723204","name":"司前乡"}]},{"code":"350724","name":"松溪县","children":[{"code":"350724001","name":"松源街道"},{"code":"350724101","name":"郑墩镇"},{"code":"350724102","name":"渭田镇"},{"code":"350724200","name":"河东乡"},{"code":"350724201","name":"茶平乡"},{"code":"350724202","name":"旧县乡"},{"code":"350724203","name":"溪东乡"},{"code":"350724204","name":"花桥乡"},{"code":"350724205","name":"祖墩乡"}]},{"code":"350725","name":"政和县","children":[{"code":"350725001","name":"熊山街道"},{"code":"350725101","name":"东平镇"},{"code":"350725102","name":"石屯镇"},{"code":"350725103","name":"铁山镇"},{"code":"350725104","name":"镇前镇"},{"code":"350725200","name":"星溪乡"},{"code":"350725201","name":"外屯乡"},{"code":"350725202","name":"杨源乡"},{"code":"350725203","name":"澄源乡"},{"code":"350725204","name":"岭腰乡"}]},{"code":"350781","name":"邵武市","children":[{"code":"350781001","name":"昭阳街道"},{"code":"350781002","name":"通泰街道"},{"code":"350781003","name":"水北街道"},{"code":"350781004","name":"晒口街道"},{"code":"350781100","name":"城郊镇"},{"code":"350781101","name":"水北镇"},{"code":"350781102","name":"下沙镇"},{"code":"350781103","name":"卫闽镇"},{"code":"350781104","name":"沿山镇"},{"code":"350781105","name":"拿口镇"},{"code":"350781106","name":"洪墩镇"},{"code":"350781107","name":"大埠岗镇"},{"code":"350781108","name":"和平镇"},{"code":"350781109","name":"肖家坊镇"},{"code":"350781110","name":"大竹镇"},{"code":"350781111","name":"吴家塘镇"},{"code":"350781200","name":"桂林乡"},{"code":"350781201","name":"张厝乡"},{"code":"350781202","name":"金坑乡"}]},{"code":"350782","name":"武夷山市","children":[{"code":"350782001","name":"崇安街道"},{"code":"350782002","name":"新丰街道"},{"code":"350782003","name":"武夷街道"},{"code":"350782100","name":"星村镇"},{"code":"350782101","name":"兴田镇"},{"code":"350782102","name":"五夫镇"},{"code":"350782200","name":"上梅乡"},{"code":"350782201","name":"吴屯乡"},{"code":"350782202","name":"岚谷乡"},{"code":"350782203","name":"洋庄乡"}]},{"code":"350783","name":"建瓯市","children":[{"code":"350783001","name":"建安街道"},{"code":"350783002","name":"通济街道"},{"code":"350783003","name":"瓯宁街道"},{"code":"350783004","name":"芝山街道"},{"code":"350783100","name":"徐墩镇"},{"code":"350783101","name":"吉阳镇"},{"code":"350783102","name":"房道镇"},{"code":"350783103","name":"南雅镇"},{"code":"350783104","name":"迪口镇"},{"code":"350783105","name":"小桥镇"},{"code":"350783106","name":"玉山镇"},{"code":"350783107","name":"东游镇"},{"code":"350783108","name":"东峰镇"},{"code":"350783109","name":"小松镇"},{"code":"350783200","name":"顺阳乡"},{"code":"350783201","name":"水源乡"},{"code":"350783202","name":"川石乡"},{"code":"350783203","name":"龙村乡"}]}]},{"code":"3508","name":"龙岩市","children":[{"code":"350802","name":"新罗区","children":[{"code":"350802001","name":"东城街道"},{"code":"350802002","name":"南城街道"},{"code":"350802003","name":"西城街道"},{"code":"350802004","name":"中城街道"},{"code":"350802005","name":"西陂街道"},{"code":"350802006","name":"曹溪街道"},{"code":"350802007","name":"东肖街道"},{"code":"350802008","name":"龙门街道"},{"code":"350802009","name":"铁山街道"},{"code":"350802010","name":"北城街道"},{"code":"350802100","name":"红坊镇"},{"code":"350802101","name":"适中镇"},{"code":"350802102","name":"雁石镇"},{"code":"350802103","name":"白沙镇"},{"code":"350802104","name":"万安镇"},{"code":"350802105","name":"大池镇"},{"code":"350802106","name":"小池镇"},{"code":"350802107","name":"江山镇"},{"code":"350802108","name":"岩山镇"},{"code":"350802109","name":"苏坂镇"}]},{"code":"350803","name":"永定区","children":[{"code":"350803001","name":"凤城街道"},{"code":"350803101","name":"坎市镇"},{"code":"350803102","name":"下洋镇"},{"code":"350803103","name":"湖雷镇"},{"code":"350803104","name":"高陂镇"},{"code":"350803105","name":"抚市镇"},{"code":"350803106","name":"湖坑镇"},{"code":"350803107","name":"培丰镇"},{"code":"350803108","name":"龙潭镇"},{"code":"350803109","name":"峰市镇"},{"code":"350803110","name":"城郊镇"},{"code":"350803111","name":"仙师镇"},{"code":"350803112","name":"虎岗镇"},{"code":"350803113","name":"堂堡镇"},{"code":"350803114","name":"岐岭镇"},{"code":"350803115","name":"金砂镇"},{"code":"350803116","name":"洪山镇"},{"code":"350803117","name":"高头镇"},{"code":"350803201","name":"西溪乡"},{"code":"350803205","name":"湖山乡"},{"code":"350803207","name":"古竹乡"},{"code":"350803209","name":"合溪乡"},{"code":"350803211","name":"大溪乡"},{"code":"350803212","name":"陈东乡"}]},{"code":"350821","name":"长汀县","children":[{"code":"350821100","name":"汀州镇"},{"code":"350821101","name":"大同镇"},{"code":"350821102","name":"古城镇"},{"code":"350821103","name":"新桥镇"},{"code":"350821104","name":"馆前镇"},{"code":"350821105","name":"童坊镇"},{"code":"350821106","name":"河田镇"},{"code":"350821107","name":"南山镇"},{"code":"350821108","name":"濯田镇"},{"code":"350821109","name":"四都镇"},{"code":"350821110","name":"涂坊镇"},{"code":"350821111","name":"策武镇"},{"code":"350821112","name":"三洲镇"},{"code":"350821201","name":"铁长乡"},{"code":"350821202","name":"庵杰乡"},{"code":"350821204","name":"宣成乡"},{"code":"350821205","name":"红山乡"},{"code":"350821206","name":"羊牯乡"}]},{"code":"350823","name":"上杭县","children":[{"code":"350823100","name":"临江镇"},{"code":"350823101","name":"临城镇"},{"code":"350823102","name":"中都镇"},{"code":"350823103","name":"蓝溪镇"},{"code":"350823104","name":"稔田镇"},{"code":"350823105","name":"白砂镇"},{"code":"350823106","name":"古田镇"},{"code":"350823107","name":"才溪镇"},{"code":"350823108","name":"南阳镇"},{"code":"350823109","name":"蛟洋镇"},{"code":"350823110","name":"旧县镇"},{"code":"350823111","name":"湖洋镇"},{"code":"350823112","name":"溪口镇"},{"code":"350823113","name":"太拔镇"},{"code":"350823114","name":"通贤镇"},{"code":"350823115","name":"下都镇"},{"code":"350823116","name":"茶地镇"},{"code":"350823202","name":"庐丰畲族乡"},{"code":"350823206","name":"泮境乡"},{"code":"350823208","name":"步云乡"},{"code":"350823211","name":"官庄畲族乡"},{"code":"350823212","name":"珊瑚乡"}]},{"code":"350824","name":"武平县","children":[{"code":"350824001","name":"平川街道"},{"code":"350824101","name":"中山镇"},{"code":"350824102","name":"岩前镇"},{"code":"350824103","name":"十方镇"},{"code":"350824104","name":"中堡镇"},{"code":"350824105","name":"桃溪镇"},{"code":"350824106","name":"城厢镇"},{"code":"350824107","name":"东留镇"},{"code":"350824108","name":"武东镇"},{"code":"350824109","name":"万安镇"},{"code":"350824110","name":"永平镇"},{"code":"350824111","name":"象洞镇"},{"code":"350824112","name":"中赤镇"},{"code":"350824113","name":"湘店镇"},{"code":"350824114","name":"大禾镇"},{"code":"350824203","name":"民主乡"},{"code":"350824204","name":"下坝乡"}]},{"code":"350825","name":"连城县","children":[{"code":"350825100","name":"莲峰镇"},{"code":"350825101","name":"北团镇"},{"code":"350825102","name":"姑田镇"},{"code":"350825103","name":"朋口镇"},{"code":"350825104","name":"莒溪镇"},{"code":"350825105","name":"新泉镇"},{"code":"350825106","name":"庙前镇"},{"code":"350825107","name":"文亨镇"},{"code":"350825108","name":"四堡镇"},{"code":"350825109","name":"林坊镇"},{"code":"350825110","name":"隔川镇"},{"code":"350825111","name":"宣和镇"},{"code":"350825200","name":"揭乐乡"},{"code":"350825201","name":"塘前乡"},{"code":"350825204","name":"罗坊乡"},{"code":"350825208","name":"曲溪乡"},{"code":"350825209","name":"赖源乡"}]},{"code":"350881","name":"漳平市","children":[{"code":"350881001","name":"菁城街道"},{"code":"350881002","name":"桂林街道"},{"code":"350881100","name":"新桥镇"},{"code":"350881101","name":"双洋镇"},{"code":"350881102","name":"永福镇"},{"code":"350881103","name":"溪南镇"},{"code":"350881104","name":"和平镇"},{"code":"350881105","name":"拱桥镇"},{"code":"350881106","name":"象湖镇"},{"code":"350881107","name":"赤水镇"},{"code":"350881108","name":"西园镇"},{"code":"350881109","name":"南洋镇"},{"code":"350881110","name":"芦芝镇"},{"code":"350881203","name":"官田乡"},{"code":"350881204","name":"吾祠乡"},{"code":"350881205","name":"灵地乡"}]}]},{"code":"3509","name":"宁德市","children":[{"code":"350902","name":"蕉城区","children":[{"code":"350902001","name":"蕉南街道"},{"code":"350902002","name":"蕉北街道"},{"code":"350902100","name":"城南镇"},{"code":"350902101","name":"漳湾镇"},{"code":"350902102","name":"七都镇"},{"code":"350902103","name":"八都镇"},{"code":"350902104","name":"九都镇"},{"code":"350902105","name":"霍童镇"},{"code":"350902106","name":"赤溪镇"},{"code":"350902107","name":"洋中镇"},{"code":"350902108","name":"飞鸾镇"},{"code":"350902109","name":"三都镇"},{"code":"350902110","name":"虎贝镇"},{"code":"350902200","name":"金涵畲族乡"},{"code":"350902201","name":"洪口乡"},{"code":"350902202","name":"石后乡"},{"code":"350902500","name":"东侨开发区"}]},{"code":"350921","name":"霞浦县","children":[{"code":"350921001","name":"松城街道"},{"code":"350921002","name":"松港街道"},{"code":"350921003","name":"松山街道"},{"code":"350921101","name":"长春镇"},{"code":"350921102","name":"牙城镇"},{"code":"350921103","name":"溪南镇"},{"code":"350921104","name":"沙江镇"},{"code":"350921105","name":"下浒镇"},{"code":"350921106","name":"三沙镇"},{"code":"350921200","name":"盐田畲族乡"},{"code":"350921201","name":"水门畲族乡"},{"code":"350921202","name":"崇儒畲族乡"},{"code":"350921203","name":"柏洋乡"},{"code":"350921204","name":"北壁乡"},{"code":"350921205","name":"海岛乡"}]},{"code":"350922","name":"古田县","children":[{"code":"350922001","name":"城东街道"},{"code":"350922002","name":"城西街道"},{"code":"350922101","name":"平湖镇"},{"code":"350922102","name":"大桥镇"},{"code":"350922103","name":"黄田镇"},{"code":"350922104","name":"鹤塘镇"},{"code":"350922105","name":"杉洋镇"},{"code":"350922106","name":"凤都镇"},{"code":"350922107","name":"水口镇"},{"code":"350922108","name":"大甲镇"},{"code":"350922201","name":"吉巷乡"},{"code":"350922203","name":"泮洋乡"},{"code":"350922204","name":"凤埔乡"},{"code":"350922205","name":"卓洋乡"}]},{"code":"350923","name":"屏南县","children":[{"code":"350923100","name":"古峰镇"},{"code":"350923101","name":"双溪镇"},{"code":"350923102","name":"代溪镇"},{"code":"350923103","name":"长桥镇"},{"code":"350923104","name":"棠口镇"},{"code":"350923200","name":"屏城乡"},{"code":"350923202","name":"甘棠乡"},{"code":"350923203","name":"熙岭乡"},{"code":"350923204","name":"路下乡"},{"code":"350923205","name":"寿山乡"},{"code":"350923206","name":"岭下乡"}]},{"code":"350924","name":"寿宁县","children":[{"code":"350924100","name":"鳌阳镇"},{"code":"350924101","name":"斜滩镇"},{"code":"350924102","name":"南阳镇"},{"code":"350924103","name":"武曲镇"},{"code":"350924104","name":"犀溪镇"},{"code":"350924105","name":"平溪镇"},{"code":"350924106","name":"凤阳镇"},{"code":"350924107","name":"清源镇"},{"code":"350924200","name":"大安乡"},{"code":"350924201","name":"坑底乡"},{"code":"350924203","name":"竹管垅乡"},{"code":"350924205","name":"芹洋乡"},{"code":"350924206","name":"托溪乡"},{"code":"350924209","name":"下党乡"}]},{"code":"350925","name":"周宁县","children":[{"code":"350925100","name":"狮城镇"},{"code":"350925101","name":"咸村镇"},{"code":"350925102","name":"浦源镇"},{"code":"350925103","name":"七步镇"},{"code":"350925104","name":"李墩镇"},{"code":"350925105","name":"纯池镇"},{"code":"350925200","name":"泗桥乡"},{"code":"350925201","name":"礼门乡"},{"code":"350925202","name":"玛坑乡"}]},{"code":"350926","name":"柘荣县","children":[{"code":"350926100","name":"双城镇"},{"code":"350926101","name":"富溪镇"},{"code":"350926200","name":"城郊乡"},{"code":"350926201","name":"乍洋乡"},{"code":"350926202","name":"东源乡"},{"code":"350926203","name":"黄柏乡"},{"code":"350926204","name":"宅中乡"},{"code":"350926205","name":"楮坪乡"},{"code":"350926206","name":"英山乡"}]},{"code":"350981","name":"福安市","children":[{"code":"350981001","name":"城南街道"},{"code":"350981002","name":"城北街道"},{"code":"350981003","name":"阳头街道"},{"code":"350981004","name":"罗江街道"},{"code":"350981100","name":"赛岐镇"},{"code":"350981101","name":"穆阳镇"},{"code":"350981102","name":"上白石镇"},{"code":"350981103","name":"潭头镇"},{"code":"350981104","name":"社口镇"},{"code":"350981105","name":"晓阳镇"},{"code":"350981106","name":"溪潭镇"},{"code":"350981107","name":"甘棠镇"},{"code":"350981108","name":"下白石镇"},{"code":"350981109","name":"溪尾镇"},{"code":"350981110","name":"溪柄镇"},{"code":"350981111","name":"湾坞镇"},{"code":"350981112","name":"城阳镇"},{"code":"350981201","name":"坂中畲族乡"},{"code":"350981202","name":"范坑乡"},{"code":"350981203","name":"穆云畲族乡"},{"code":"350981204","name":"康厝畲族乡"},{"code":"350981206","name":"松罗乡"},{"code":"350981501","name":"福安畲族开发区"},{"code":"350981502","name":"湾坞工业集中区"}]},{"code":"350982","name":"福鼎市","children":[{"code":"350982001","name":"桐山街道"},{"code":"350982002","name":"桐城街道"},{"code":"350982003","name":"山前街道"},{"code":"350982100","name":"贯岭镇"},{"code":"350982101","name":"前岐镇"},{"code":"350982102","name":"沙埕镇"},{"code":"350982103","name":"店下镇"},{"code":"350982104","name":"太姥山镇"},{"code":"350982105","name":"磻溪镇"},{"code":"350982106","name":"白琳镇"},{"code":"350982107","name":"点头镇"},{"code":"350982108","name":"管阳镇"},{"code":"350982109","name":"嵛山镇"},{"code":"350982200","name":"硖门畲族乡"},{"code":"350982201","name":"叠石乡"},{"code":"350982202","name":"佳阳乡"},{"code":"350982500","name":"龙安开发区"}]}]}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市","children":[{"code":"360102","name":"东湖区","children":[{"code":"360102001","name":"公园街道"},{"code":"360102002","name":"滕王阁街道"},{"code":"360102003","name":"八一桥街道"},{"code":"360102004","name":"百花洲街道"},{"code":"360102005","name":"墩子塘街道"},{"code":"360102006","name":"大院街道"},{"code":"360102007","name":"豫章街道"},{"code":"360102008","name":"董家窑街道"},{"code":"360102009","name":"彭家桥街道"},{"code":"360102100","name":"扬子洲镇"},{"code":"360102400","name":"贤士湖管理处"},{"code":"360102401","name":"扬农管理处"}]},{"code":"360103","name":"西湖区","children":[{"code":"360103001","name":"南浦街道"},{"code":"360103002","name":"朝阳洲街道"},{"code":"360103004","name":"广润门街道"},{"code":"360103005","name":"西湖街道"},{"code":"360103006","name":"系马桩街道"},{"code":"360103007","name":"绳金塔街道"},{"code":"360103009","name":"丁公路街道"},{"code":"360103010","name":"南站街道"},{"code":"360103011","name":"桃源街道"},{"code":"360103012","name":"十字街街道"},{"code":"360103013","name":"朝农街道"},{"code":"360103101","name":"桃花镇"}]},{"code":"360104","name":"青云谱区","children":[{"code":"360104002","name":"洪都街道"},{"code":"360104006","name":"京山街道"},{"code":"360104007","name":"三家店街道"},{"code":"360104008","name":"岱山街道"},{"code":"360104009","name":"徐家坊街道"},{"code":"360104100","name":"青云谱镇"},{"code":"360104400","name":"江西青云谱新经济产业集聚区"}]},{"code":"360111","name":"青山湖区","children":[{"code":"360111001","name":"青山路街道"},{"code":"360111003","name":"上海路街道"},{"code":"360111004","name":"南钢街道"},{"code":"360111005","name":"站东街道"},{"code":"360111100","name":"京东镇"},{"code":"360111103","name":"罗家镇"},{"code":"360111104","name":"湖坊镇"},{"code":"360111105","name":"塘山镇"},{"code":"360111180","name":"蛟桥镇"},{"code":"360111400","name":"江西青山湖高新技术产业园区"},{"code":"360111481","name":"白水湖管理处"},{"code":"360111482","name":"冠山管理处"},{"code":"360111490","name":"艾溪湖管理处"}]},{"code":"360112","name":"新建区","children":[{"code":"360112001","name":"站前街道"},{"code":"360112002","name":"幸福街道"},{"code":"360112100","name":"长堎镇"},{"code":"360112101","name":"望城镇"},{"code":"360112103","name":"西山镇"},{"code":"360112104","name":"石岗镇"},{"code":"360112105","name":"松湖镇"},{"code":"360112106","name":"樵舍镇"},{"code":"360112107","name":"乐化镇"},{"code":"360112108","name":"溪霞镇"},{"code":"360112109","name":"象山镇"},{"code":"360112110","name":"石埠镇"},{"code":"360112111","name":"联圩镇"},{"code":"360112112","name":"流湖镇"},{"code":"360112113","name":"太平镇"},{"code":"360112114","name":"罗亭镇"},{"code":"360112115","name":"招贤镇"},{"code":"360112116","name":"梅岭镇"},{"code":"360112202","name":"厚田乡"},{"code":"360112204","name":"金桥乡"},{"code":"360112205","name":"铁河乡"},{"code":"360112206","name":"大塘坪乡"},{"code":"360112207","name":"昌邑乡"},{"code":"360112208","name":"南矶乡"},{"code":"360112400","name":"恒湖垦殖场"},{"code":"360112402","name":"成新实业有限公司"},{"code":"360112403","name":"朱港实业有限公司"},{"code":"360112404","name":"江西新建经济开发区"},{"code":"360112460","name":"江西桑海集团有限公司"},{"code":"360112461","name":"新祺周管理处"},{"code":"360112502","name":"新丰管理处"}]},{"code":"360113","name":"红谷滩区","children":[{"code":"360113001","name":"沙井街道"},{"code":"360113002","name":"卫东街道"},{"code":"360113100","name":"生米镇"},{"code":"360113400","name":"凤凰洲管理处"},{"code":"360113401","name":"红角洲管理处"},{"code":"360113402","name":"九龙湖管理处"}]},{"code":"360121","name":"南昌县","children":[{"code":"360121001","name":"八月湖街道"},{"code":"360121100","name":"莲塘镇"},{"code":"360121101","name":"向塘镇"},{"code":"360121102","name":"三江镇"},{"code":"360121103","name":"塘南镇"},{"code":"360121104","name":"幽兰镇"},{"code":"360121105","name":"蒋巷镇"},{"code":"360121106","name":"武阳镇"},{"code":"360121107","name":"冈上镇"},{"code":"360121108","name":"广福镇"},{"code":"360121191","name":"昌东镇"},{"code":"360121192","name":"麻丘镇"},{"code":"360121200","name":"泾口乡"},{"code":"360121201","name":"南新乡"},{"code":"360121202","name":"塔城乡"},{"code":"360121203","name":"黄马乡"},{"code":"360121204","name":"富山乡"},{"code":"360121205","name":"东新乡"},{"code":"360121206","name":"八一乡"},{"code":"360121403","name":"小蓝经济开发区"},{"code":"360121404","name":"南昌航空城"},{"code":"360121471","name":"南昌县银三角管理委员会"},{"code":"360121501","name":"鲤鱼洲管理处"},{"code":"360121572","name":"江西省良种繁殖场"}]},{"code":"360123","name":"安义县","children":[{"code":"360123100","name":"龙津镇"},{"code":"360123101","name":"万埠镇"},{"code":"360123102","name":"石鼻镇"},{"code":"360123103","name":"鼎湖镇"},{"code":"360123104","name":"长埠镇"},{"code":"360123105","name":"东阳镇"},{"code":"360123106","name":"黄洲镇"},{"code":"360123200","name":"乔乐乡"},{"code":"360123201","name":"长均乡"},{"code":"360123202","name":"新民乡"},{"code":"360123402","name":"江西安义工业园区"},{"code":"360123501","name":"国营万埠垦殖场"}]},{"code":"360124","name":"进贤县","children":[{"code":"360124100","name":"民和镇"},{"code":"360124101","name":"李渡镇"},{"code":"360124102","name":"温圳镇"},{"code":"360124103","name":"文港镇"},{"code":"360124104","name":"梅庄镇"},{"code":"360124105","name":"张公镇"},{"code":"360124106","name":"罗溪镇"},{"code":"360124107","name":"架桥镇"},{"code":"360124108","name":"前坊镇"},{"code":"360124200","name":"三里乡"},{"code":"360124201","name":"二塘乡"},{"code":"360124202","name":"钟陵乡"},{"code":"360124203","name":"池溪乡"},{"code":"360124204","name":"南台乡"},{"code":"360124205","name":"三阳集乡"},{"code":"360124206","name":"七里乡"},{"code":"360124207","name":"下埠集乡"},{"code":"360124208","name":"衙前乡"},{"code":"360124209","name":"白圩乡"},{"code":"360124210","name":"长山晏乡"},{"code":"360124211","name":"泉岭乡"},{"code":"360124500","name":"五里垦殖场"}]}]},{"code":"3602","name":"景德镇市","children":[{"code":"360202","name":"昌江区","children":[{"code":"360202001","name":"西郊街道"},{"code":"360202002","name":"新枫街道"},{"code":"360202101","name":"鲇鱼山镇"},{"code":"360202102","name":"丽阳镇"},{"code":"360202202","name":"荷塘乡"},{"code":"360202290","name":"吕蒙乡"},{"code":"360202451","name":"昌江化工园区"},{"code":"360202452","name":"六零二所高科技园"},{"code":"360202453","name":"昌江开发区"},{"code":"360202500","name":"枫树山总场"}]},{"code":"360203","name":"珠山区","children":[{"code":"360203001","name":"石狮埠街道"},{"code":"360203002","name":"新厂街道"},{"code":"360203003","name":"里村街道"},{"code":"360203004","name":"周路口街道"},{"code":"360203005","name":"昌江街道"},{"code":"360203006","name":"新村街道"},{"code":"360203007","name":"珠山街道"},{"code":"360203008","name":"太白园街道"},{"code":"360203009","name":"昌河街道"},{"code":"360203100","name":"竟成镇"},{"code":"360203400","name":"高新技术开发区"}]},{"code":"360222","name":"浮梁县","children":[{"code":"360222100","name":"浮梁镇"},{"code":"360222101","name":"鹅湖镇"},{"code":"360222102","name":"经公桥镇"},{"code":"360222103","name":"蛟潭镇"},{"code":"360222104","name":"湘湖镇"},{"code":"360222105","name":"瑶里镇"},{"code":"360222106","name":"洪源镇"},{"code":"360222107","name":"寿安镇"},{"code":"360222108","name":"三龙镇"},{"code":"360222109","name":"峙滩镇"},{"code":"360222200","name":"王港乡"},{"code":"360222201","name":"臧湾乡"},{"code":"360222203","name":"黄坛乡"},{"code":"360222204","name":"兴田乡"},{"code":"360222205","name":"江村乡"},{"code":"360222207","name":"勒功乡"},{"code":"360222208","name":"西湖乡"},{"code":"360222209","name":"罗家桥乡"}]},{"code":"360281","name":"乐平市","children":[{"code":"360281001","name":"洎阳街道"},{"code":"360281002","name":"塔山街道"},{"code":"360281100","name":"镇桥镇"},{"code":"360281101","name":"乐港镇"},{"code":"360281102","name":"涌山镇"},{"code":"360281103","name":"众埠镇"},{"code":"360281104","name":"接渡镇"},{"code":"360281105","name":"洪岩镇"},{"code":"360281106","name":"礼林镇"},{"code":"360281107","name":"后港镇"},{"code":"360281108","name":"塔前镇"},{"code":"360281109","name":"双田镇"},{"code":"360281110","name":"临港镇"},{"code":"360281111","name":"高家镇"},{"code":"360281112","name":"名口镇"},{"code":"360281113","name":"浯口镇"},{"code":"360281114","name":"十里岗镇"},{"code":"360281200","name":"鸬鹚乡"},{"code":"360281400","name":"农业高新园"},{"code":"360281401","name":"江西乐平工业园区"}]}]},{"code":"3603","name":"萍乡市","children":[{"code":"360302","name":"安源区","children":[{"code":"360302001","name":"东大街街道"},{"code":"360302002","name":"凤凰街街道"},{"code":"360302003","name":"八一街街道"},{"code":"360302004","name":"后埠街街道"},{"code":"360302005","name":"丹江街街道"},{"code":"360302006","name":"白源街街道"},{"code":"360302100","name":"安源镇"},{"code":"360302101","name":"高坑镇"},{"code":"360302102","name":"五陂镇"},{"code":"360302103","name":"青山镇"},{"code":"360302400","name":"五陂下垦殖场"},{"code":"360302401","name":"城郊管委会"}]},{"code":"360313","name":"湘东区","children":[{"code":"360313001","name":"峡山口街道"},{"code":"360313101","name":"湘东镇"},{"code":"360313102","name":"荷尧镇"},{"code":"360313103","name":"老关镇"},{"code":"360313104","name":"腊市镇"},{"code":"360313105","name":"下埠镇"},{"code":"360313106","name":"排上镇"},{"code":"360313107","name":"东桥镇"},{"code":"360313108","name":"麻山镇"},{"code":"360313200","name":"广寒寨乡"},{"code":"360313201","name":"白竺乡"}]},{"code":"360321","name":"莲花县","children":[{"code":"360321101","name":"琴亭镇"},{"code":"360321102","name":"路口镇"},{"code":"360321103","name":"良坊镇"},{"code":"360321104","name":"升坊镇"},{"code":"360321105","name":"坊楼镇"},{"code":"360321200","name":"闪石乡"},{"code":"360321201","name":"湖上乡"},{"code":"360321202","name":"三板桥乡"},{"code":"360321203","name":"神泉乡"},{"code":"360321204","name":"六市乡"},{"code":"360321205","name":"高洲乡"},{"code":"360321206","name":"荷塘乡"},{"code":"360321207","name":"南岭乡"}]},{"code":"360322","name":"上栗县","children":[{"code":"360322101","name":"上栗镇"},{"code":"360322102","name":"桐木镇"},{"code":"360322103","name":"金山镇"},{"code":"360322104","name":"福田镇"},{"code":"360322105","name":"彭高镇"},{"code":"360322106","name":"赤山镇"},{"code":"360322200","name":"鸡冠山乡"},{"code":"360322201","name":"长平乡"},{"code":"360322202","name":"东源乡"},{"code":"360322203","name":"杨岐乡"}]},{"code":"360323","name":"芦溪县","children":[{"code":"360323101","name":"芦溪镇"},{"code":"360323102","name":"宣风镇"},{"code":"360323103","name":"上埠镇"},{"code":"360323104","name":"南坑镇"},{"code":"360323105","name":"银河镇"},{"code":"360323106","name":"麻田镇"},{"code":"360323200","name":"源南乡"},{"code":"360323201","name":"长丰乡"},{"code":"360323202","name":"张佳坊乡"},{"code":"360323203","name":"新泉乡"},{"code":"360323204","name":"万龙山乡"}]}]},{"code":"3604","name":"九江市","children":[{"code":"360402","name":"濂溪区","children":[{"code":"360402001","name":"十里街道"},{"code":"360402002","name":"五里街道"},{"code":"360402090","name":"七里湖街道"},{"code":"360402100","name":"姑塘镇"},{"code":"360402101","name":"威家镇"},{"code":"360402102","name":"新港镇"},{"code":"360402103","name":"莲花镇"},{"code":"360402105","name":"赛阳镇"},{"code":"360402200","name":"虞家河乡"},{"code":"360402201","name":"高垅乡"},{"code":"360402471","name":"庐山林科所"},{"code":"360402472","name":"庐山生态文化新城"}]},{"code":"360403","name":"浔阳区","children":[{"code":"360403001","name":"甘棠街道"},{"code":"360403002","name":"湓浦街道"},{"code":"360403003","name":"人民路街道"},{"code":"360403004","name":"白水湖街道"},{"code":"360403005","name":"金鸡坡街道"},{"code":"360403006","name":"八里湖街道"},{"code":"360403091","name":"向阳街道"},{"code":"360403092","name":"滨兴街道"},{"code":"360403400","name":"茅山头企业集团"}]},{"code":"360404","name":"柴桑区","children":[{"code":"360404001","name":"沙河街道"},{"code":"360404002","name":"狮子街道"},{"code":"360404003","name":"城门街道"},{"code":"360404101","name":"马回岭镇"},{"code":"360404102","name":"江洲镇"},{"code":"360404103","name":"城子镇"},{"code":"360404104","name":"港口街镇"},{"code":"360404105","name":"新合镇"},{"code":"360404200","name":"永安乡"},{"code":"360404201","name":"涌泉乡"},{"code":"360404202","name":"新塘乡"},{"code":"360404204","name":"岷山乡"},{"code":"360404403","name":"沙河经济技术开发区"},{"code":"360404501","name":"新洲垦殖场"},{"code":"360404502","name":"赛城湖水产场"},{"code":"360404503","name":"岷山林场"}]},{"code":"360423","name":"武宁县","children":[{"code":"360423001","name":"豫宁街道"},{"code":"360423100","name":"新宁镇"},{"code":"360423101","name":"泉口镇"},{"code":"360423102","name":"鲁溪镇"},{"code":"360423103","name":"船滩镇"},{"code":"360423104","name":"澧溪镇"},{"code":"360423105","name":"罗坪镇"},{"code":"360423106","name":"石门楼镇"},{"code":"360423107","name":"宋溪镇"},{"code":"360423200","name":"大洞乡"},{"code":"360423201","name":"横路乡"},{"code":"360423202","name":"官莲乡"},{"code":"360423203","name":"巾口乡"},{"code":"360423204","name":"东林乡"},{"code":"360423205","name":"上汤乡"},{"code":"360423206","name":"甫田乡"},{"code":"360423207","name":"清江乡"},{"code":"360423208","name":"石渡乡"},{"code":"360423209","name":"杨洲乡"},{"code":"360423210","name":"罗溪乡"},{"code":"360423500","name":"万福经济技术开发区管委会"}]},{"code":"360424","name":"修水县","children":[{"code":"360424100","name":"义宁镇"},{"code":"360424101","name":"白岭镇"},{"code":"360424102","name":"全丰镇"},{"code":"360424103","name":"古市镇"},{"code":"360424104","name":"大桥镇"},{"code":"360424105","name":"渣津镇"},{"code":"360424106","name":"马坳镇"},{"code":"360424107","name":"杭口镇"},{"code":"360424108","name":"港口镇"},{"code":"360424109","name":"溪口镇"},{"code":"360424110","name":"西港镇"},{"code":"360424111","name":"山口镇"},{"code":"360424112","name":"黄沙镇"},{"code":"360424113","name":"黄港镇"},{"code":"360424114","name":"何市镇"},{"code":"360424115","name":"上奉镇"},{"code":"360424116","name":"四都镇"},{"code":"360424117","name":"太阳升镇"},{"code":"360424118","name":"宁州镇"},{"code":"360424200","name":"路口乡"},{"code":"360424201","name":"黄龙乡"},{"code":"360424202","name":"上衫乡"},{"code":"360424203","name":"余段乡"},{"code":"360424204","name":"水源乡"},{"code":"360424205","name":"石坳乡"},{"code":"360424206","name":"东港乡"},{"code":"360424207","name":"上杭乡"},{"code":"360424209","name":"新湾乡"},{"code":"360424210","name":"布甲乡"},{"code":"360424211","name":"漫江乡"},{"code":"360424212","name":"复原乡"},{"code":"360424213","name":"竹坪乡"},{"code":"360424214","name":"征村乡"},{"code":"360424215","name":"庙岭乡"},{"code":"360424216","name":"黄坳乡"},{"code":"360424217","name":"大椿乡"}]},{"code":"360425","name":"永修县","children":[{"code":"360425100","name":"涂埠镇"},{"code":"360425101","name":"吴城镇"},{"code":"360425102","name":"三溪桥镇"},{"code":"360425103","name":"虬津镇"},{"code":"360425104","name":"艾城镇"},{"code":"360425105","name":"滩溪镇"},{"code":"360425106","name":"白槎镇"},{"code":"360425107","name":"梅棠镇"},{"code":"360425108","name":"燕坊镇"},{"code":"360425109","name":"马口镇"},{"code":"360425110","name":"柘林镇"},{"code":"360425200","name":"三角乡"},{"code":"360425201","name":"九合乡"},{"code":"360425202","name":"立新乡"},{"code":"360425203","name":"江上乡"},{"code":"360425404","name":"江西永修云山经济技术开发区"},{"code":"360425500","name":"云山企业集团"},{"code":"360425501","name":"恒丰企业集团"},{"code":"360425502","name":"八角岭垦殖场"},{"code":"360425503","name":"永丰垦殖场"}]},{"code":"360426","name":"德安县","children":[{"code":"360426100","name":"蒲亭镇"},{"code":"360426101","name":"聂桥镇"},{"code":"360426102","name":"车桥镇"},{"code":"360426103","name":"丰林镇"},{"code":"360426104","name":"吴山镇"},{"code":"360426200","name":"宝塔乡"},{"code":"360426201","name":"河东乡"},{"code":"360426202","name":"高塘乡"},{"code":"360426203","name":"林泉乡"},{"code":"360426205","name":"磨溪乡"},{"code":"360426206","name":"爱民乡"},{"code":"360426207","name":"邹桥乡"},{"code":"360426208","name":"塘山乡"},{"code":"360426500","name":"彭山林场"},{"code":"360426501","name":"园艺场"}]},{"code":"360428","name":"都昌县","children":[{"code":"360428100","name":"都昌镇"},{"code":"360428101","name":"周溪镇"},{"code":"360428102","name":"三汊港镇"},{"code":"360428103","name":"中馆镇"},{"code":"360428104","name":"大沙镇"},{"code":"360428105","name":"万户镇"},{"code":"360428106","name":"南峰镇"},{"code":"360428107","name":"土塘镇"},{"code":"360428108","name":"大港镇"},{"code":"360428109","name":"蔡岭镇"},{"code":"360428110","name":"徐埠镇"},{"code":"360428111","name":"左里镇"},{"code":"360428200","name":"和合乡"},{"code":"360428201","name":"阳峰乡"},{"code":"360428202","name":"西源乡"},{"code":"360428203","name":"芗溪乡"},{"code":"360428204","name":"狮山乡"},{"code":"360428205","name":"鸣山乡"},{"code":"360428206","name":"春桥乡"},{"code":"360428207","name":"苏山乡"},{"code":"360428208","name":"多宝乡"},{"code":"360428209","name":"汪墩乡"},{"code":"360428210","name":"北山乡"},{"code":"360428211","name":"大树乡"},{"code":"360428400","name":"江西省对外经济技术合作蔡岭示范区"},{"code":"360428500","name":"都昌县良种场"}]},{"code":"360429","name":"湖口县","children":[{"code":"360429100","name":"双钟镇"},{"code":"360429101","name":"流泗镇"},{"code":"360429102","name":"马影镇"},{"code":"360429103","name":"武山镇"},{"code":"360429104","name":"城山镇"},{"code":"360429105","name":"均桥镇"},{"code":"360429106","name":"凰村镇"},{"code":"360429200","name":"大垅乡"},{"code":"360429202","name":"张青乡"},{"code":"360429204","name":"付垅乡"},{"code":"360429205","name":"舜德乡"},{"code":"360429206","name":"流芳乡"},{"code":"360429500","name":"南北港水产场"},{"code":"360429501","name":"武山垦殖场"}]},{"code":"360430","name":"彭泽县","children":[{"code":"360430100","name":"龙城镇"},{"code":"360430101","name":"棉船镇"},{"code":"360430102","name":"马垱镇"},{"code":"360430103","name":"芙蓉墩镇"},{"code":"360430104","name":"定山镇"},{"code":"360430105","name":"天红镇"},{"code":"360430106","name":"杨梓镇"},{"code":"360430107","name":"东升镇"},{"code":"360430108","name":"瀼溪镇"},{"code":"360430109","name":"黄花镇"},{"code":"360430200","name":"太平关乡"},{"code":"360430201","name":"黄岭乡"},{"code":"360430202","name":"浩山乡"},{"code":"360430403","name":"建筑材料厂"},{"code":"360430404","name":"水产养殖场"},{"code":"360430500","name":"太泊湖农业综合开发区"},{"code":"360430501","name":"上十岭综合垦殖场"},{"code":"360430502","name":"芙蓉农场"},{"code":"360430503","name":"棉科所"},{"code":"360430504","name":"棉花原种场国营分场"},{"code":"360430505","name":"太泊湖水产养殖场"},{"code":"360430506","name":"黄乐林场"}]},{"code":"360481","name":"瑞昌市","children":[{"code":"360481001","name":"湓城街道"},{"code":"360481002","name":"桂林街道"},{"code":"360481100","name":"码头镇"},{"code":"360481101","name":"白杨镇"},{"code":"360481102","name":"南义镇"},{"code":"360481103","name":"横港镇"},{"code":"360481104","name":"范镇"},{"code":"360481105","name":"肇陈镇"},{"code":"360481106","name":"高丰镇"},{"code":"360481107","name":"夏畈镇"},{"code":"360481200","name":"乐园乡"},{"code":"360481201","name":"洪一乡"},{"code":"360481202","name":"花园乡"},{"code":"360481203","name":"洪下乡"},{"code":"360481204","name":"武蛟乡"},{"code":"360481205","name":"横立山乡"},{"code":"360481206","name":"黄金乡"},{"code":"360481207","name":"南阳乡"},{"code":"360481500","name":"赛湖农场"},{"code":"360481501","name":"青山林场"},{"code":"360481502","name":"瑞昌市大德山林场"}]},{"code":"360482","name":"共青城市","children":[{"code":"360482001","name":"茶山街道"},{"code":"360482100","name":"甘露镇"},{"code":"360482101","name":"江益镇"},{"code":"360482200","name":"金湖乡"},{"code":"360482201","name":"苏家垱乡"},{"code":"360482202","name":"泽泉乡"}]},{"code":"360483","name":"庐山市","children":[{"code":"360483100","name":"南康镇"},{"code":"360483101","name":"白鹿镇"},{"code":"360483102","name":"温泉镇"},{"code":"360483103","name":"星子镇"},{"code":"360483104","name":"华林镇"},{"code":"360483105","name":"蛟塘镇"},{"code":"360483106","name":"横塘镇"},{"code":"360483107","name":"牯岭镇"},{"code":"360483108","name":"海会镇"},{"code":"360483200","name":"蓼南乡"},{"code":"360483401","name":"东牯山林场"},{"code":"360483500","name":"沙湖山管理处"}]}]},{"code":"3605","name":"新余市","children":[{"code":"360502","name":"渝水区","children":[{"code":"360502001","name":"城南街道"},{"code":"360502002","name":"城北街道"},{"code":"360502003","name":"袁河街道"},{"code":"360502004","name":"新钢街道"},{"code":"360502100","name":"水北镇"},{"code":"360502101","name":"下村镇"},{"code":"360502102","name":"良山镇"},{"code":"360502103","name":"罗坊镇"},{"code":"360502104","name":"姚圩镇"},{"code":"360502105","name":"珠珊镇"},{"code":"360502108","name":"鹄山镇"},{"code":"360502170","name":"河下镇"},{"code":"360502180","name":"观巢镇"},{"code":"360502181","name":"欧里镇"},{"code":"360502190","name":"水西镇"},{"code":"360502201","name":"人和乡"},{"code":"360502202","name":"界水乡"},{"code":"360502203","name":"南安乡"},{"code":"360502204","name":"新溪乡"},{"code":"360502271","name":"九龙山乡"}]},{"code":"360521","name":"分宜县","children":[{"code":"360521001","name":"钤东街道"},{"code":"360521002","name":"钤西街道"},{"code":"360521100","name":"分宜镇"},{"code":"360521101","name":"杨桥镇"},{"code":"360521102","name":"湖泽镇"},{"code":"360521103","name":"双林镇"},{"code":"360521104","name":"钤山镇"},{"code":"360521105","name":"洋江镇"},{"code":"360521106","name":"凤阳镇"},{"code":"360521201","name":"洞村乡"},{"code":"360521202","name":"高岚乡"},{"code":"360521203","name":"操场乡"},{"code":"360521505","name":"东坑林场"}]}]},{"code":"3606","name":"鹰潭市","children":[{"code":"360602","name":"月湖区","children":[{"code":"360602001","name":"江边街道"},{"code":"360602002","name":"交通街道"},{"code":"360602003","name":"东湖街道"},{"code":"360602004","name":"梅园街道"},{"code":"360602005","name":"四青街道"},{"code":"360602006","name":"白露街道"},{"code":"360602100","name":"童家镇"},{"code":"360602200","name":"夏埠乡"}]},{"code":"360603","name":"余江区","children":[{"code":"360603001","name":"邓埠街道"},{"code":"360603101","name":"锦江镇"},{"code":"360603102","name":"潢溪镇"},{"code":"360603103","name":"中童镇"},{"code":"360603104","name":"马荃镇"},{"code":"360603105","name":"画桥镇"},{"code":"360603106","name":"春涛镇"},{"code":"360603200","name":"平定乡"},{"code":"360603202","name":"杨溪乡"},{"code":"360603203","name":"洪湖乡"},{"code":"360603204","name":"黄庄乡"},{"code":"360603205","name":"刘家站乡"},{"code":"360603408","name":"余江县工业园区"},{"code":"360603409","name":"鹰潭市龙岗新区"},{"code":"360603501","name":"高公寨营林场"},{"code":"360603503","name":"邓家埠水稻原种场"},{"code":"360603504","name":"余江县水产场"},{"code":"360603505","name":"塘潮源林场"},{"code":"360603506","name":"张公桥农场"},{"code":"360603508","name":"大桥农场"}]},{"code":"360681","name":"贵溪市","children":[{"code":"360681001","name":"花园街道"},{"code":"360681002","name":"雄石街道"},{"code":"360681003","name":"东门街道"},{"code":"360681100","name":"泗沥镇"},{"code":"360681101","name":"河潭镇"},{"code":"360681102","name":"周坊镇"},{"code":"360681103","name":"鸿塘镇"},{"code":"360681104","name":"志光镇"},{"code":"360681105","name":"流口镇"},{"code":"360681106","name":"罗河镇"},{"code":"360681107","name":"金屯镇"},{"code":"360681108","name":"塘湾镇"},{"code":"360681109","name":"文坊镇"},{"code":"360681110","name":"冷水镇"},{"code":"360681111","name":"滨江镇"},{"code":"360681112","name":"天禄镇"},{"code":"360681113","name":"雷溪镇"},{"code":"360681190","name":"龙虎山镇"},{"code":"360681191","name":"上清镇"},{"code":"360681201","name":"白田乡"},{"code":"360681203","name":"彭湾乡"},{"code":"360681204","name":"樟坪畲族乡"},{"code":"360681205","name":"耳口乡"},{"code":"360681407","name":"贵溪市工业园区"},{"code":"360681408","name":"江北"},{"code":"360681500","name":"塔桥园艺场"},{"code":"360681501","name":"河潭埠垦殖场"},{"code":"360681502","name":"西窑林场"},{"code":"360681503","name":"双圳林场"},{"code":"360681504","name":"耳口林场"},{"code":"360681505","name":"冷水林场"},{"code":"360681506","name":"三县岭林场"},{"code":"360681592","name":"上清林场"}]}]},{"code":"3607","name":"赣州市","children":[{"code":"360702","name":"章贡区","children":[{"code":"360702001","name":"解放街道"},{"code":"360702002","name":"赣江街道"},{"code":"360702003","name":"南外街道"},{"code":"360702004","name":"东外街道"},{"code":"360702005","name":"水南街道"},{"code":"360702006","name":"章江街道"},{"code":"360702091","name":"黄金岭街道"},{"code":"360702100","name":"沙石镇"},{"code":"360702101","name":"水东镇"},{"code":"360702103","name":"湖边镇"},{"code":"360702104","name":"沙河镇"},{"code":"360702105","name":"水西镇"},{"code":"360702190","name":"蟠龙镇"},{"code":"360702191","name":"潭口镇"},{"code":"360702192","name":"潭东镇"},{"code":"360702400","name":"赣州经济技术开发区"},{"code":"360702401","name":"沙河工业园"}]},{"code":"360703","name":"南康区","children":[{"code":"360703001","name":"蓉江街道"},{"code":"360703002","name":"东山街道"},{"code":"360703100","name":"唐江镇"},{"code":"360703101","name":"凤岗镇"},{"code":"360703103","name":"龙岭镇"},{"code":"360703104","name":"龙回镇"},{"code":"360703105","name":"镜坝镇"},{"code":"360703106","name":"横市镇"},{"code":"360703107","name":"龙华镇"},{"code":"360703200","name":"浮石乡"},{"code":"360703201","name":"赤土畲族乡"},{"code":"360703202","name":"横寨乡"},{"code":"360703203","name":"朱坊乡"},{"code":"360703204","name":"太窝乡"},{"code":"360703205","name":"三江乡"},{"code":"360703207","name":"十八塘乡"},{"code":"360703208","name":"麻双乡"},{"code":"360703209","name":"大坪乡"},{"code":"360703210","name":"坪市乡"},{"code":"360703211","name":"隆木乡"},{"code":"360703400","name":"南康市工业园"}]},{"code":"360704","name":"赣县区","children":[{"code":"360704100","name":"梅林镇"},{"code":"360704101","name":"王母渡镇"},{"code":"360704102","name":"沙地镇"},{"code":"360704103","name":"江口镇"},{"code":"360704104","name":"田村镇"},{"code":"360704105","name":"南塘镇"},{"code":"360704106","name":"茅店镇"},{"code":"360704107","name":"吉埠镇"},{"code":"360704108","name":"五云镇"},{"code":"360704109","name":"湖江镇"},{"code":"360704110","name":"储潭镇"},{"code":"360704111","name":"韩坊镇"},{"code":"360704201","name":"阳埠乡"},{"code":"360704202","name":"大埠乡"},{"code":"360704203","name":"长洛乡"},{"code":"360704204","name":"大田乡"},{"code":"360704207","name":"石芫乡"},{"code":"360704208","name":"三溪乡"},{"code":"360704209","name":"白鹭乡"},{"code":"360704400","name":"江西赣县经济开发区"}]},{"code":"360722","name":"信丰县","children":[{"code":"360722100","name":"嘉定镇"},{"code":"360722101","name":"大塘埠镇"},{"code":"360722102","name":"古陂镇"},{"code":"360722103","name":"大桥镇"},{"code":"360722104","name":"新田镇"},{"code":"360722105","name":"安西镇"},{"code":"360722106","name":"小江镇"},{"code":"360722107","name":"铁石口镇"},{"code":"360722108","name":"大阿镇"},{"code":"360722109","name":"油山镇"},{"code":"360722110","name":"小河镇"},{"code":"360722111","name":"西牛镇"},{"code":"360722112","name":"正平镇"},{"code":"360722200","name":"虎山乡"},{"code":"360722201","name":"崇仙乡"},{"code":"360722202","name":"万隆乡"},{"code":"360722400","name":"信丰县工业园"}]},{"code":"360723","name":"大余县","children":[{"code":"360723100","name":"南安镇"},{"code":"360723101","name":"新城镇"},{"code":"360723102","name":"樟斗镇"},{"code":"360723103","name":"池江镇"},{"code":"360723104","name":"青龙镇"},{"code":"360723105","name":"左拔镇"},{"code":"360723106","name":"黄龙镇"},{"code":"360723107","name":"吉村镇"},{"code":"360723200","name":"浮江乡"},{"code":"360723201","name":"河洞乡"},{"code":"360723202","name":"内良乡"},{"code":"360723400","name":"新世纪工业园"}]},{"code":"360724","name":"上犹县","children":[{"code":"360724100","name":"东山镇"},{"code":"360724101","name":"陡水镇"},{"code":"360724102","name":"社溪镇"},{"code":"360724103","name":"营前镇"},{"code":"360724104","name":"黄埠镇"},{"code":"360724105","name":"寺下镇"},{"code":"360724200","name":"梅水乡"},{"code":"360724201","name":"油石乡"},{"code":"360724202","name":"安和乡"},{"code":"360724204","name":"双溪乡"},{"code":"360724205","name":"水岩乡"},{"code":"360724206","name":"平富乡"},{"code":"360724207","name":"五指峰乡"},{"code":"360724208","name":"紫阳乡"},{"code":"360724400","name":"上犹工业园区"}]},{"code":"360725","name":"崇义县","children":[{"code":"360725100","name":"横水镇"},{"code":"360725101","name":"扬眉镇"},{"code":"360725102","name":"过埠镇"},{"code":"360725103","name":"铅厂镇"},{"code":"360725104","name":"长龙镇"},{"code":"360725105","name":"关田镇"},{"code":"360725200","name":"龙勾乡"},{"code":"360725201","name":"杰坝乡"},{"code":"360725202","name":"金坑乡"},{"code":"360725203","name":"思顺乡"},{"code":"360725204","name":"麟潭乡"},{"code":"360725205","name":"上堡乡"},{"code":"360725206","name":"聂都乡"},{"code":"360725207","name":"文英乡"},{"code":"360725208","name":"乐洞乡"},{"code":"360725209","name":"丰州乡"}]},{"code":"360726","name":"安远县","children":[{"code":"360726100","name":"欣山镇"},{"code":"360726101","name":"孔田镇"},{"code":"360726102","name":"版石镇"},{"code":"360726103","name":"天心镇"},{"code":"360726104","name":"龙布镇"},{"code":"360726105","name":"鹤子镇"},{"code":"360726106","name":"三百山镇"},{"code":"360726107","name":"车头镇"},{"code":"360726200","name":"镇岗乡"},{"code":"360726201","name":"凤山乡"},{"code":"360726202","name":"新龙乡"},{"code":"360726203","name":"蔡坊乡"},{"code":"360726204","name":"重石乡"},{"code":"360726205","name":"长沙乡"},{"code":"360726206","name":"浮槎乡"},{"code":"360726207","name":"双芫乡"},{"code":"360726208","name":"塘村乡"},{"code":"360726209","name":"高云山乡"},{"code":"360726400","name":"九龙工业园"}]},{"code":"360728","name":"定南县","children":[{"code":"360728100","name":"历市镇"},{"code":"360728101","name":"岿美山镇"},{"code":"360728102","name":"老城镇"},{"code":"360728103","name":"天九镇"},{"code":"360728104","name":"龙塘镇"},{"code":"360728105","name":"岭北镇"},{"code":"360728106","name":"鹅公镇"},{"code":"360728400","name":"定南县工业园"}]},{"code":"360729","name":"全南县","children":[{"code":"360729100","name":"城厢镇"},{"code":"360729101","name":"大吉山镇"},{"code":"360729102","name":"陂头镇"},{"code":"360729103","name":"金龙镇"},{"code":"360729104","name":"南迳镇"},{"code":"360729105","name":"龙源坝镇"},{"code":"360729200","name":"中寨乡"},{"code":"360729201","name":"社迳乡"},{"code":"360729202","name":"龙下乡"},{"code":"360729402","name":"全南县工业园"}]},{"code":"360730","name":"宁都县","children":[{"code":"360730100","name":"梅江镇"},{"code":"360730101","name":"青塘镇"},{"code":"360730102","name":"长胜镇"},{"code":"360730103","name":"黄陂镇"},{"code":"360730104","name":"固村镇"},{"code":"360730105","name":"赖村镇"},{"code":"360730106","name":"石上镇"},{"code":"360730107","name":"东山坝镇"},{"code":"360730108","name":"洛口镇"},{"code":"360730109","name":"小布镇"},{"code":"360730110","name":"黄石镇"},{"code":"360730111","name":"田头镇"},{"code":"360730200","name":"竹笮乡"},{"code":"360730201","name":"对坊乡"},{"code":"360730202","name":"固厚乡"},{"code":"360730203","name":"田埠乡"},{"code":"360730204","name":"会同乡"},{"code":"360730205","name":"湛田乡"},{"code":"360730206","name":"安福乡"},{"code":"360730207","name":"东韶乡"},{"code":"360730208","name":"肖田乡"},{"code":"360730209","name":"钓峰乡"},{"code":"360730210","name":"大沽乡"},{"code":"360730211","name":"蔡江乡"},{"code":"360730400","name":"宁都县水东工业园"}]},{"code":"360731","name":"于都县","children":[{"code":"360731100","name":"贡江镇"},{"code":"360731101","name":"铁山垅镇"},{"code":"360731102","name":"盘古山镇"},{"code":"360731103","name":"禾丰镇"},{"code":"360731104","name":"祁禄山镇"},{"code":"360731105","name":"梓山镇"},{"code":"360731106","name":"银坑镇"},{"code":"360731107","name":"岭背镇"},{"code":"360731108","name":"罗坳镇"},{"code":"360731200","name":"罗江乡"},{"code":"360731201","name":"小溪乡"},{"code":"360731202","name":"利村乡"},{"code":"360731203","name":"新陂乡"},{"code":"360731204","name":"靖石乡"},{"code":"360731205","name":"黄麟乡"},{"code":"360731206","name":"沙心乡"},{"code":"360731207","name":"宽田乡"},{"code":"360731208","name":"葛坳乡"},{"code":"360731209","name":"桥头乡"},{"code":"360731210","name":"马安乡"},{"code":"360731211","name":"仙下乡"},{"code":"360731212","name":"车溪乡"},{"code":"360731213","name":"段屋乡"},{"code":"360731400","name":"于都工业园"}]},{"code":"360732","name":"兴国县","children":[{"code":"360732100","name":"潋江镇"},{"code":"360732101","name":"江背镇"},{"code":"360732102","name":"古龙冈镇"},{"code":"360732103","name":"梅窖镇"},{"code":"360732104","name":"高兴镇"},{"code":"360732105","name":"良村镇"},{"code":"360732106","name":"龙口镇"},{"code":"360732107","name":"城岗镇"},{"code":"360732108","name":"永丰镇"},{"code":"360732200","name":"兴江乡"},{"code":"360732201","name":"樟木乡"},{"code":"360732202","name":"东村乡"},{"code":"360732203","name":"兴莲乡"},{"code":"360732204","name":"杰村乡"},{"code":"360732205","name":"社富乡"},{"code":"360732206","name":"埠头乡"},{"code":"360732208","name":"隆坪乡"},{"code":"360732209","name":"均村乡"},{"code":"360732210","name":"茶园乡"},{"code":"360732211","name":"崇贤乡"},{"code":"360732212","name":"枫边乡"},{"code":"360732213","name":"南坑乡"},{"code":"360732215","name":"方太乡"},{"code":"360732216","name":"鼎龙乡"},{"code":"360732217","name":"长冈乡"},{"code":"360732400","name":"兴国县工业园"}]},{"code":"360733","name":"会昌县","children":[{"code":"360733100","name":"文武坝镇"},{"code":"360733101","name":"筠门岭镇"},{"code":"360733102","name":"西江镇"},{"code":"360733103","name":"周田镇"},{"code":"360733104","name":"麻州镇"},{"code":"360733105","name":"庄口镇"},{"code":"360733200","name":"清溪乡"},{"code":"360733201","name":"右水乡"},{"code":"360733202","name":"高排乡"},{"code":"360733203","name":"晓龙乡"},{"code":"360733204","name":"珠兰乡"},{"code":"360733205","name":"洞头乡"},{"code":"360733206","name":"中村乡"},{"code":"360733207","name":"站塘乡"},{"code":"360733208","name":"永隆乡"},{"code":"360733209","name":"富城乡"},{"code":"360733210","name":"小密乡"},{"code":"360733211","name":"庄埠乡"},{"code":"360733212","name":"白鹅乡"},{"code":"360733400","name":"会昌县燕子窝工业园"}]},{"code":"360734","name":"寻乌县","children":[{"code":"360734100","name":"长宁镇"},{"code":"360734101","name":"晨光镇"},{"code":"360734102","name":"留车镇"},{"code":"360734103","name":"南桥镇"},{"code":"360734104","name":"吉潭镇"},{"code":"360734105","name":"澄江镇"},{"code":"360734106","name":"桂竹帽镇"},{"code":"360734200","name":"文峰乡"},{"code":"360734201","name":"三标乡"},{"code":"360734202","name":"菖蒲乡"},{"code":"360734203","name":"龙廷乡"},{"code":"360734204","name":"丹溪乡"},{"code":"360734205","name":"项山乡"},{"code":"360734206","name":"水源乡"},{"code":"360734207","name":"罗珊乡"}]},{"code":"360735","name":"石城县","children":[{"code":"360735100","name":"琴江镇"},{"code":"360735101","name":"小松镇"},{"code":"360735102","name":"屏山镇"},{"code":"360735103","name":"横江镇"},{"code":"360735104","name":"高田镇"},{"code":"360735105","name":"赣江源镇"},{"code":"360735200","name":"木兰乡"},{"code":"360735201","name":"丰山乡"},{"code":"360735202","name":"大由乡"},{"code":"360735203","name":"龙岗乡"},{"code":"360735204","name":"珠坑乡"}]},{"code":"360781","name":"瑞金市","children":[{"code":"360781100","name":"象湖镇"},{"code":"360781101","name":"瑞林镇"},{"code":"360781102","name":"壬田镇"},{"code":"360781103","name":"九堡镇"},{"code":"360781104","name":"沙洲坝镇"},{"code":"360781105","name":"谢坊镇"},{"code":"360781106","name":"武阳镇"},{"code":"360781107","name":"叶坪镇"},{"code":"360781201","name":"丁陂乡"},{"code":"360781202","name":"大柏地乡"},{"code":"360781203","name":"岗面乡"},{"code":"360781204","name":"日东乡"},{"code":"360781205","name":"万田乡"},{"code":"360781206","name":"黄柏乡"},{"code":"360781207","name":"云石山乡"},{"code":"360781208","name":"泽覃乡"},{"code":"360781209","name":"拔英乡"},{"code":"360781400","name":"江西瑞金经济开发区"}]},{"code":"360783","name":"龙南市","children":[{"code":"360783100","name":"龙南镇"},{"code":"360783101","name":"武当镇"},{"code":"360783102","name":"杨村镇"},{"code":"360783103","name":"汶龙镇"},{"code":"360783104","name":"程龙镇"},{"code":"360783105","name":"关西镇"},{"code":"360783106","name":"里仁镇"},{"code":"360783107","name":"渡江镇"},{"code":"360783108","name":"九连山镇"},{"code":"360783200","name":"桃江乡"},{"code":"360783201","name":"东江乡"},{"code":"360783202","name":"临塘乡"},{"code":"360783203","name":"南亨乡"},{"code":"360783204","name":"夹湖乡"},{"code":"360783400","name":"江西龙南经济技术开发区"},{"code":"360783500","name":"安基山林场"}]}]},{"code":"3608","name":"吉安市","children":[{"code":"360802","name":"吉州区","children":[{"code":"360802001","name":"古南街道"},{"code":"360802002","name":"永叔街道"},{"code":"360802003","name":"文山街道"},{"code":"360802004","name":"习溪桥街道"},{"code":"360802005","name":"北门街道"},{"code":"360802006","name":"白塘街道"},{"code":"360802007","name":"禾埠街道"},{"code":"360802100","name":"兴桥镇"},{"code":"360802101","name":"樟山镇"},{"code":"360802102","name":"长塘镇"},{"code":"360802103","name":"曲濑镇"},{"code":"360802400","name":"吉州区工业园小区"}]},{"code":"360803","name":"青原区","children":[{"code":"360803001","name":"河东街道"},{"code":"360803002","name":"滨江街道"},{"code":"360803100","name":"天玉镇"},{"code":"360803101","name":"值夏镇"},{"code":"360803102","name":"新圩镇"},{"code":"360803103","name":"富滩镇"},{"code":"360803104","name":"富田镇"},{"code":"360803105","name":"文陂镇"},{"code":"360803201","name":"东固畲族少数民族乡"},{"code":"360803400","name":"青原区河东经济开发区"},{"code":"360803500","name":"东固垦殖场"}]},{"code":"360821","name":"吉安县","children":[{"code":"360821001","name":"高新街道"},{"code":"360821002","name":"金鸡湖街道"},{"code":"360821100","name":"敦厚镇"},{"code":"360821101","name":"永阳镇"},{"code":"360821102","name":"天河镇"},{"code":"360821103","name":"横江镇"},{"code":"360821104","name":"固江镇"},{"code":"360821105","name":"万福镇"},{"code":"360821106","name":"永和镇"},{"code":"360821107","name":"桐坪镇"},{"code":"360821108","name":"凤凰镇"},{"code":"360821109","name":"油田镇"},{"code":"360821110","name":"敖城镇"},{"code":"360821111","name":"梅塘镇"},{"code":"360821112","name":"浬田镇"},{"code":"360821200","name":"北源乡"},{"code":"360821201","name":"大冲乡"},{"code":"360821204","name":"登龙乡"},{"code":"360821205","name":"安塘乡"},{"code":"360821206","name":"官田乡"},{"code":"360821207","name":"指阳乡"},{"code":"360821400","name":"吉安高新技术产业园区"},{"code":"360821401","name":"井冈山经济技术开发区"}]},{"code":"360822","name":"吉水县","children":[{"code":"360822100","name":"文峰镇"},{"code":"360822101","name":"阜田镇"},{"code":"360822102","name":"盘谷镇"},{"code":"360822103","name":"枫江镇"},{"code":"360822104","name":"黄桥镇"},{"code":"360822105","name":"金滩镇"},{"code":"360822106","name":"八都镇"},{"code":"360822107","name":"双村镇"},{"code":"360822108","name":"醪桥镇"},{"code":"360822109","name":"螺田镇"},{"code":"360822110","name":"白沙镇"},{"code":"360822111","name":"白水镇"},{"code":"360822112","name":"丁江镇"},{"code":"360822113","name":"乌江镇"},{"code":"360822114","name":"水南镇"},{"code":"360822200","name":"尚贤乡"},{"code":"360822201","name":"水田乡"},{"code":"360822202","name":"冠山乡"},{"code":"360822400","name":"吉水县工业园区"}]},{"code":"360823","name":"峡江县","children":[{"code":"360823100","name":"水边镇"},{"code":"360823101","name":"马埠镇"},{"code":"360823102","name":"巴邱镇"},{"code":"360823103","name":"仁和镇"},{"code":"360823104","name":"砚溪镇"},{"code":"360823105","name":"罗田镇"},{"code":"360823200","name":"桐林乡"},{"code":"360823201","name":"福民乡"},{"code":"360823202","name":"戈坪乡"},{"code":"360823203","name":"金江乡"},{"code":"360823204","name":"金坪民族乡"},{"code":"360823400","name":"峡江县工业园区"}]},{"code":"360824","name":"新干县","children":[{"code":"360824001","name":"洋峰街道"},{"code":"360824100","name":"金川镇"},{"code":"360824101","name":"三湖镇"},{"code":"360824102","name":"大洋洲镇"},{"code":"360824103","name":"七琴镇"},{"code":"360824104","name":"麦㙦镇"},{"code":"360824105","name":"界埠镇"},{"code":"360824106","name":"溧江镇"},{"code":"360824201","name":"桃溪乡"},{"code":"360824202","name":"城上乡"},{"code":"360824203","name":"潭丘乡"},{"code":"360824204","name":"神政桥乡"},{"code":"360824205","name":"沂江乡"},{"code":"360824207","name":"荷浦乡"},{"code":"360824404","name":"新干工业园区"},{"code":"360824405","name":"地质大队"},{"code":"360824502","name":"黎山林场"}]},{"code":"360825","name":"永丰县","children":[{"code":"360825100","name":"恩江镇"},{"code":"360825101","name":"坑田镇"},{"code":"360825102","name":"沿陂镇"},{"code":"360825103","name":"古县镇"},{"code":"360825104","name":"瑶田镇"},{"code":"360825105","name":"藤田镇"},{"code":"360825106","name":"石马镇"},{"code":"360825107","name":"沙溪镇"},{"code":"360825200","name":"佐龙乡"},{"code":"360825201","name":"八江乡"},{"code":"360825202","name":"潭城乡"},{"code":"360825203","name":"鹿冈乡"},{"code":"360825204","name":"七都乡"},{"code":"360825205","name":"陶唐乡"},{"code":"360825206","name":"中村乡"},{"code":"360825207","name":"上溪乡"},{"code":"360825208","name":"潭头乡"},{"code":"360825209","name":"三坊乡"},{"code":"360825210","name":"上固乡"},{"code":"360825211","name":"君埠乡"},{"code":"360825212","name":"龙冈畲族乡"},{"code":"360825403","name":"永丰县工业园区"},{"code":"360825501","name":"罗铺垦殖场"},{"code":"360825502","name":"官山林场"}]},{"code":"360826","name":"泰和县","children":[{"code":"360826100","name":"澄江镇"},{"code":"360826102","name":"桥头镇"},{"code":"360826103","name":"禾市镇"},{"code":"360826104","name":"螺溪镇"},{"code":"360826105","name":"苏溪镇"},{"code":"360826106","name":"马市镇"},{"code":"360826107","name":"塘洲镇"},{"code":"360826108","name":"冠朝镇"},{"code":"360826109","name":"沙村镇"},{"code":"360826110","name":"老营盘镇"},{"code":"360826111","name":"小龙镇"},{"code":"360826112","name":"灌溪镇"},{"code":"360826113","name":"苑前镇"},{"code":"360826114","name":"万合镇"},{"code":"360826115","name":"沿溪镇"},{"code":"360826200","name":"石山乡"},{"code":"360826201","name":"南溪乡"},{"code":"360826202","name":"上模乡"},{"code":"360826203","name":"水槎乡"},{"code":"360826204","name":"上圯乡"},{"code":"360826205","name":"中龙乡"},{"code":"360826402","name":"小龙矿区管委会"},{"code":"360826404","name":"井冈山机场"},{"code":"360826405","name":"泰和县高新产业园区"},{"code":"360826501","name":"武山垦殖场"},{"code":"360826502","name":"综合垦殖场"}]},{"code":"360827","name":"遂川县","children":[{"code":"360827100","name":"泉江镇"},{"code":"360827101","name":"雩田镇"},{"code":"360827102","name":"碧洲镇"},{"code":"360827103","name":"草林镇"},{"code":"360827104","name":"堆子前镇"},{"code":"360827105","name":"左安镇"},{"code":"360827106","name":"高坪镇"},{"code":"360827107","name":"大汾镇"},{"code":"360827108","name":"衙前镇"},{"code":"360827109","name":"禾源镇"},{"code":"360827110","name":"汤湖镇"},{"code":"360827111","name":"枚江镇"},{"code":"360827112","name":"珠田镇"},{"code":"360827201","name":"巾石乡"},{"code":"360827202","name":"大坑乡"},{"code":"360827204","name":"双桥乡"},{"code":"360827205","name":"新江乡"},{"code":"360827206","name":"五斗江乡"},{"code":"360827207","name":"西溪乡"},{"code":"360827208","name":"南江乡"},{"code":"360827209","name":"黄坑乡"},{"code":"360827210","name":"戴家埔乡"},{"code":"360827211","name":"营盘圩乡"},{"code":"360827402","name":"遂川县工业园区"},{"code":"360827501","name":"五指峰林场"},{"code":"360827502","name":"云岭林场"}]},{"code":"360828","name":"万安县","children":[{"code":"360828100","name":"芙蓉镇"},{"code":"360828101","name":"五丰镇"},{"code":"360828102","name":"枧头镇"},{"code":"360828103","name":"窑头镇"},{"code":"360828104","name":"百嘉镇"},{"code":"360828105","name":"高陂镇"},{"code":"360828106","name":"潞田镇"},{"code":"360828107","name":"沙坪镇"},{"code":"360828108","name":"夏造镇"},{"code":"360828200","name":"罗塘乡"},{"code":"360828201","name":"弹前乡"},{"code":"360828202","name":"武术乡"},{"code":"360828203","name":"宝山乡"},{"code":"360828204","name":"涧田乡"},{"code":"360828205","name":"顺峰乡"},{"code":"360828206","name":"韶口乡"},{"code":"360828401","name":"万安县工业园"},{"code":"360828501","name":"蔴源垦殖场"}]},{"code":"360829","name":"安福县","children":[{"code":"360829100","name":"平都镇"},{"code":"360829101","name":"浒坑镇"},{"code":"360829102","name":"洲湖镇"},{"code":"360829103","name":"横龙镇"},{"code":"360829104","name":"洋溪镇"},{"code":"360829105","name":"严田镇"},{"code":"360829106","name":"枫田镇"},{"code":"360829107","name":"羊狮慕镇"},{"code":"360829200","name":"竹江乡"},{"code":"360829201","name":"瓜畲乡"},{"code":"360829202","name":"钱山乡"},{"code":"360829203","name":"赤谷乡"},{"code":"360829204","name":"山庄乡"},{"code":"360829205","name":"洋门乡"},{"code":"360829206","name":"金田乡"},{"code":"360829207","name":"彭坊乡"},{"code":"360829209","name":"寮塘乡"},{"code":"360829210","name":"甘洛乡"},{"code":"360829211","name":"章庄乡"},{"code":"360829400","name":"江西安福高新技术产业园区"}]},{"code":"360830","name":"永新县","children":[{"code":"360830001","name":"三月坪街道"},{"code":"360830100","name":"禾川镇"},{"code":"360830101","name":"石桥镇"},{"code":"360830102","name":"龙源口镇"},{"code":"360830103","name":"澧田镇"},{"code":"360830104","name":"龙门镇"},{"code":"360830105","name":"沙市镇"},{"code":"360830106","name":"文竹镇"},{"code":"360830107","name":"埠前镇"},{"code":"360830108","name":"怀忠镇"},{"code":"360830109","name":"高桥楼镇"},{"code":"360830200","name":"坳南乡"},{"code":"360830201","name":"曲白乡"},{"code":"360830202","name":"才丰乡"},{"code":"360830203","name":"烟阁乡"},{"code":"360830204","name":"在中乡"},{"code":"360830205","name":"三湾乡"},{"code":"360830206","name":"台岭乡"},{"code":"360830207","name":"龙田乡"},{"code":"360830208","name":"高溪乡"},{"code":"360830209","name":"莲洲乡"},{"code":"360830210","name":"高市乡"},{"code":"360830211","name":"象形乡"},{"code":"360830212","name":"芦溪乡"},{"code":"360830400","name":"永新县工业园区"}]},{"code":"360881","name":"井冈山市","children":[{"code":"360881002","name":"红星街道"},{"code":"360881100","name":"厦坪镇"},{"code":"360881101","name":"龙市镇"},{"code":"360881102","name":"古城镇"},{"code":"360881103","name":"新城镇"},{"code":"360881105","name":"茨坪镇"},{"code":"360881106","name":"拿山镇"},{"code":"360881107","name":"碧溪镇"},{"code":"360881108","name":"茅坪镇"},{"code":"360881109","name":"罗浮镇"},{"code":"360881201","name":"黄垇乡"},{"code":"360881206","name":"柏露乡"},{"code":"360881208","name":"葛田乡"},{"code":"360881210","name":"睦村乡"},{"code":"360881211","name":"东上乡"},{"code":"360881212","name":"光明乡"},{"code":"360881401","name":"井冈山自然保护区"},{"code":"360881403","name":"井冈山市工业园区"},{"code":"360881501","name":"白石垦殖场"}]}]},{"code":"3609","name":"宜春市","children":[{"code":"360902","name":"袁州区","children":[{"code":"360902001","name":"灵泉街道"},{"code":"360902002","name":"秀江街道"},{"code":"360902004","name":"湛郎街道"},{"code":"360902005","name":"珠泉街道"},{"code":"360902006","name":"化成街道"},{"code":"360902007","name":"官园街道"},{"code":"360902008","name":"下浦街道"},{"code":"360902009","name":"凤凰街道"},{"code":"360902010","name":"金园街道"},{"code":"360902011","name":"新康府街道"},{"code":"360902100","name":"彬江镇"},{"code":"360902101","name":"西村镇"},{"code":"360902102","name":"金瑞镇"},{"code":"360902103","name":"温汤镇"},{"code":"360902104","name":"三阳镇"},{"code":"360902105","name":"慈化镇"},{"code":"360902106","name":"天台镇"},{"code":"360902107","name":"洪塘镇"},{"code":"360902108","name":"渥江镇"},{"code":"360902109","name":"新坊镇"},{"code":"360902110","name":"寨下镇"},{"code":"360902111","name":"芦村镇"},{"code":"360902112","name":"湖田镇"},{"code":"360902113","name":"新田镇"},{"code":"360902114","name":"南庙镇"},{"code":"360902115","name":"竹亭镇"},{"code":"360902116","name":"水江镇"},{"code":"360902117","name":"辽市镇"},{"code":"360902118","name":"洪江镇"},{"code":"360902206","name":"楠木乡"},{"code":"360902210","name":"柏木乡"},{"code":"360902213","name":"飞剑潭乡"},{"code":"360902400","name":"宜春经济开发区管理委员会"},{"code":"360902401","name":"袁州区工业园区"},{"code":"360902402","name":"宜春市明月山温泉风景名胜区管理局"},{"code":"360902403","name":"宜春市宜阳新区管理委员会"},{"code":"360902501","name":"西岭布果园场"},{"code":"360902502","name":"明月山采育林场"}]},{"code":"360921","name":"奉新县","children":[{"code":"360921100","name":"冯川镇"},{"code":"360921101","name":"赤岸镇"},{"code":"360921102","name":"赤田镇"},{"code":"360921103","name":"宋埠镇"},{"code":"360921104","name":"干洲镇"},{"code":"360921105","name":"澡下镇"},{"code":"360921106","name":"会埠镇"},{"code":"360921107","name":"罗市镇"},{"code":"360921108","name":"上富镇"},{"code":"360921109","name":"甘坊镇"},{"code":"360921200","name":"仰山乡"},{"code":"360921201","name":"澡溪乡"},{"code":"360921202","name":"柳溪乡"},{"code":"360921400","name":"奉新县工业园区"},{"code":"360921500","name":"石溪"},{"code":"360921501","name":"百丈山名胜风景区"},{"code":"360921502","name":"干洲垦殖场"},{"code":"360921503","name":"东风垦殖场"},{"code":"360921504","name":"农牧渔良种场"}]},{"code":"360922","name":"万载县","children":[{"code":"360922001","name":"康乐街道"},{"code":"360922100","name":"株潭镇"},{"code":"360922101","name":"黄茅镇"},{"code":"360922102","name":"潭埠镇"},{"code":"360922103","name":"双桥镇"},{"code":"360922104","name":"高村镇"},{"code":"360922105","name":"罗城镇"},{"code":"360922106","name":"三兴镇"},{"code":"360922107","name":"高城镇"},{"code":"360922108","name":"白良镇"},{"code":"360922200","name":"鹅峰乡"},{"code":"360922201","name":"马步乡"},{"code":"360922203","name":"赤兴乡"},{"code":"360922204","name":"岭东乡"},{"code":"360922205","name":"白水乡"},{"code":"360922206","name":"仙源乡"},{"code":"360922208","name":"茭湖乡"},{"code":"360922400","name":"万载县工业园区"}]},{"code":"360923","name":"上高县","children":[{"code":"360923001","name":"敖阳街道"},{"code":"360923002","name":"锦阳街道"},{"code":"360923100","name":"田心镇"},{"code":"360923101","name":"徐家渡镇"},{"code":"360923102","name":"锦江镇"},{"code":"360923103","name":"泗溪镇"},{"code":"360923104","name":"翰堂镇"},{"code":"360923105","name":"南港镇"},{"code":"360923106","name":"敖山镇"},{"code":"360923107","name":"新界埠镇"},{"code":"360923108","name":"蒙山镇"},{"code":"360923200","name":"芦洲乡"},{"code":"360923201","name":"塔下乡"},{"code":"360923203","name":"镇渡乡"},{"code":"360923204","name":"野市乡"},{"code":"360923206","name":"墨山乡"},{"code":"360923400","name":"上高县工业园区"},{"code":"360923501","name":"上甘山林场"}]},{"code":"360924","name":"宜丰县","children":[{"code":"360924100","name":"新昌镇"},{"code":"360924101","name":"澄塘镇"},{"code":"360924102","name":"棠浦镇"},{"code":"360924103","name":"新庄镇"},{"code":"360924104","name":"潭山镇"},{"code":"360924105","name":"芳溪镇"},{"code":"360924106","name":"石市镇"},{"code":"360924107","name":"黄岗镇"},{"code":"360924200","name":"花桥乡"},{"code":"360924201","name":"同安乡"},{"code":"360924202","name":"天宝乡"},{"code":"360924204","name":"桥西乡"},{"code":"360924400","name":"宜丰县工业园区"},{"code":"360924500","name":"车上林场"},{"code":"360924501","name":"双峰林场"},{"code":"360924502","name":"石花尖垦殖场"},{"code":"360924503","name":"黄岗山垦殖场"}]},{"code":"360925","name":"靖安县","children":[{"code":"360925100","name":"双溪镇"},{"code":"360925101","name":"仁首镇"},{"code":"360925102","name":"宝峰镇"},{"code":"360925103","name":"高湖镇"},{"code":"360925104","name":"璪都镇"},{"code":"360925105","name":"官庄镇"},{"code":"360925200","name":"香田乡"},{"code":"360925201","name":"水口乡"},{"code":"360925202","name":"中源乡"},{"code":"360925205","name":"三爪仑乡"},{"code":"360925206","name":"雷公尖乡"},{"code":"360925400","name":"靖安县工业园区"}]},{"code":"360926","name":"铜鼓县","children":[{"code":"360926100","name":"永宁镇"},{"code":"360926101","name":"温泉镇"},{"code":"360926102","name":"棋坪镇"},{"code":"360926103","name":"排埠镇"},{"code":"360926104","name":"三都镇"},{"code":"360926105","name":"大塅镇"},{"code":"360926200","name":"高桥乡"},{"code":"360926201","name":"港口乡"},{"code":"360926202","name":"带溪乡"},{"code":"360926404","name":"江西铜鼓工业园区"},{"code":"360926500","name":"花山林场"},{"code":"360926501","name":"大沩山林场"},{"code":"360926502","name":"茶山林场"},{"code":"360926503","name":"龙门林场"}]},{"code":"360981","name":"丰城市","children":[{"code":"360981002","name":"剑光街道"},{"code":"360981006","name":"河洲街道"},{"code":"360981007","name":"剑南街道"},{"code":"360981008","name":"孙渡街道"},{"code":"360981009","name":"尚庄街道"},{"code":"360981010","name":"龙津洲街道"},{"code":"360981101","name":"白土镇"},{"code":"360981102","name":"袁渡镇"},{"code":"360981104","name":"张巷镇"},{"code":"360981105","name":"杜市镇"},{"code":"360981106","name":"淘沙镇"},{"code":"360981107","name":"秀市镇"},{"code":"360981109","name":"洛市镇"},{"code":"360981110","name":"铁路镇"},{"code":"360981111","name":"丽村镇"},{"code":"360981115","name":"董家镇"},{"code":"360981116","name":"隍城镇"},{"code":"360981119","name":"小港镇"},{"code":"360981120","name":"石滩镇"},{"code":"360981121","name":"桥东镇"},{"code":"360981122","name":"荣塘镇"},{"code":"360981123","name":"拖船镇"},{"code":"360981124","name":"泉港镇"},{"code":"360981125","name":"梅林镇"},{"code":"360981126","name":"曲江镇"},{"code":"360981127","name":"上塘镇"},{"code":"360981201","name":"筱塘乡"},{"code":"360981202","name":"段潭乡"},{"code":"360981203","name":"蕉坑乡"},{"code":"360981204","name":"石江乡"},{"code":"360981205","name":"荷湖乡"},{"code":"360981206","name":"湖塘乡"},{"code":"360981207","name":"同田乡"},{"code":"360981402","name":"宜春丰城高新技术产业开发区"}]},{"code":"360982","name":"樟树市","children":[{"code":"360982001","name":"淦阳街道"},{"code":"360982002","name":"鹿江街道"},{"code":"360982003","name":"福城街道"},{"code":"360982004","name":"大桥街道"},{"code":"360982005","name":"张家山街道"},{"code":"360982100","name":"临江镇"},{"code":"360982101","name":"永泰镇"},{"code":"360982102","name":"黄土岗镇"},{"code":"360982103","name":"经楼镇"},{"code":"360982104","name":"昌傅镇"},{"code":"360982105","name":"店下镇"},{"code":"360982106","name":"阁山镇"},{"code":"360982107","name":"刘公庙镇"},{"code":"360982108","name":"观上镇"},{"code":"360982109","name":"义成镇"},{"code":"360982200","name":"中洲乡"},{"code":"360982201","name":"洲上乡"},{"code":"360982202","name":"洋湖乡"},{"code":"360982203","name":"吴城乡"},{"code":"360982400","name":"樟树市工业园区"},{"code":"360982401","name":"滨江新城"},{"code":"360982500","name":"省双金园艺场"}]},{"code":"360983","name":"高安市","children":[{"code":"360983001","name":"瑞州街道"},{"code":"360983002","name":"筠阳街道"},{"code":"360983100","name":"蓝坊镇"},{"code":"360983101","name":"荷岭镇"},{"code":"360983102","name":"黄沙岗镇"},{"code":"360983103","name":"新街镇"},{"code":"360983104","name":"八景镇"},{"code":"360983105","name":"独城镇"},{"code":"360983106","name":"太阳镇"},{"code":"360983107","name":"建山镇"},{"code":"360983108","name":"田南镇"},{"code":"360983109","name":"相城镇"},{"code":"360983110","name":"灰埠镇"},{"code":"360983111","name":"石脑镇"},{"code":"360983112","name":"龙潭镇"},{"code":"360983113","name":"杨圩镇"},{"code":"360983114","name":"村前镇"},{"code":"360983115","name":"伍桥镇"},{"code":"360983116","name":"祥符镇"},{"code":"360983117","name":"大城镇"},{"code":"360983118","name":"华林山镇"},{"code":"360983200","name":"上湖乡"},{"code":"360983201","name":"汪家圩乡"},{"code":"360983400","name":"高安市新世纪工业城管委会"},{"code":"360983405","name":"江西新茂实业公司"},{"code":"360983500","name":"相城垦殖场"},{"code":"360983501","name":"上游水库工程管理局"},{"code":"360983502","name":"江西省瑞州监狱"}]}]},{"code":"3610","name":"抚州市","children":[{"code":"361002","name":"临川区","children":[{"code":"361002001","name":"青云街道"},{"code":"361002002","name":"西大街街道"},{"code":"361002003","name":"荆公路街道"},{"code":"361002004","name":"六水桥街道"},{"code":"361002005","name":"文昌街道"},{"code":"361002091","name":"城西街道"},{"code":"361002092","name":"钟岭街道"},{"code":"361002100","name":"上顿渡镇"},{"code":"361002101","name":"温泉镇"},{"code":"361002102","name":"高坪镇"},{"code":"361002103","name":"秋溪镇"},{"code":"361002104","name":"荣山镇"},{"code":"361002105","name":"龙溪镇"},{"code":"361002107","name":"大岗镇"},{"code":"361002108","name":"云山镇"},{"code":"361002109","name":"唱凯镇"},{"code":"361002110","name":"罗针镇"},{"code":"361002111","name":"罗湖镇"},{"code":"361002112","name":"太阳镇"},{"code":"361002113","name":"东馆镇"},{"code":"361002114","name":"腾桥镇"},{"code":"361002115","name":"青泥镇"},{"code":"361002116","name":"孝桥镇"},{"code":"361002117","name":"抚北镇"},{"code":"361002118","name":"展坪镇"},{"code":"361002190","name":"崇岗镇"},{"code":"361002201","name":"连城乡"},{"code":"361002202","name":"桐源乡"},{"code":"361002203","name":"湖南乡"},{"code":"361002204","name":"七里岗乡"},{"code":"361002205","name":"嵩湖乡"},{"code":"361002206","name":"鹏田乡"},{"code":"361002207","name":"茅排乡"},{"code":"361002208","name":"河埠乡"},{"code":"361002400","name":"荣山垦殖场"},{"code":"361002401","name":"七里岗垦殖场"},{"code":"361002500","name":"开发区管理委员会"}]},{"code":"361003","name":"东乡区","children":[{"code":"361003001","name":"金峰街道"},{"code":"361003100","name":"孝岗镇"},{"code":"361003101","name":"小璜镇"},{"code":"361003102","name":"圩上桥镇"},{"code":"361003103","name":"马圩镇"},{"code":"361003104","name":"詹圩镇"},{"code":"361003105","name":"岗上积镇"},{"code":"361003106","name":"杨桥殿镇"},{"code":"361003107","name":"黎圩镇"},{"code":"361003108","name":"王桥镇"},{"code":"361003200","name":"珀玕乡"},{"code":"361003201","name":"邓家乡"},{"code":"361003202","name":"虎圩乡"},{"code":"361003203","name":"瑶圩乡"},{"code":"361003400","name":"红星垦殖场"},{"code":"361003401","name":"红光垦殖场"},{"code":"361003402","name":"红亮垦殖场"},{"code":"361003403","name":"甘坑生态林场"},{"code":"361003406","name":"东乡县经济开发区"}]},{"code":"361021","name":"南城县","children":[{"code":"361021100","name":"建昌镇"},{"code":"361021101","name":"株良镇"},{"code":"361021102","name":"上唐镇"},{"code":"361021103","name":"里塔镇"},{"code":"361021104","name":"洪门镇"},{"code":"361021105","name":"沙洲镇"},{"code":"361021106","name":"龙湖镇"},{"code":"361021107","name":"新丰街镇"},{"code":"361021108","name":"万坊镇"},{"code":"361021109","name":"徐家镇"},{"code":"361021201","name":"天井源乡"},{"code":"361021203","name":"浔溪乡"},{"code":"361021400","name":"南城县工业园区"}]},{"code":"361022","name":"黎川县","children":[{"code":"361022100","name":"日峰镇"},{"code":"361022101","name":"宏村镇"},{"code":"361022102","name":"洵口镇"},{"code":"361022103","name":"熊村镇"},{"code":"361022104","name":"龙安镇"},{"code":"361022105","name":"德胜镇"},{"code":"361022106","name":"华山镇"},{"code":"361022200","name":"潭溪乡"},{"code":"361022201","name":"湖坊乡"},{"code":"361022202","name":"荷源乡"},{"code":"361022203","name":"厚村乡"},{"code":"361022204","name":"社苹乡"},{"code":"361022205","name":"樟溪乡"},{"code":"361022206","name":"西城乡"},{"code":"361022207","name":"中田乡"},{"code":"361022401","name":"黎川县工业园区管理委员会"},{"code":"361022500","name":"德胜企业集团"}]},{"code":"361023","name":"南丰县","children":[{"code":"361023100","name":"琴城镇"},{"code":"361023101","name":"太和镇"},{"code":"361023102","name":"白舍镇"},{"code":"361023103","name":"市山镇"},{"code":"361023104","name":"洽湾镇"},{"code":"361023105","name":"桑田镇"},{"code":"361023106","name":"紫霄镇"},{"code":"361023200","name":"三溪乡"},{"code":"361023201","name":"东坪乡"},{"code":"361023202","name":"莱溪乡"},{"code":"361023203","name":"太源乡"},{"code":"361023204","name":"傅坊乡"},{"code":"361023400","name":"南丰县长红垦殖场"},{"code":"361023500","name":"南丰工业园区"}]},{"code":"361024","name":"崇仁县","children":[{"code":"361024100","name":"巴山镇"},{"code":"361024101","name":"相山镇"},{"code":"361024102","name":"航埠镇"},{"code":"361024103","name":"孙坊镇"},{"code":"361024104","name":"河上镇"},{"code":"361024105","name":"礼陂镇"},{"code":"361024106","name":"马鞍镇"},{"code":"361024200","name":"石庄乡"},{"code":"361024201","name":"六家桥乡"},{"code":"361024202","name":"白路乡"},{"code":"361024203","name":"三山乡"},{"code":"361024204","name":"白陂乡"},{"code":"361024205","name":"桃源乡"},{"code":"361024206","name":"许坊乡"},{"code":"361024207","name":"郭圩乡"}]},{"code":"361025","name":"乐安县","children":[{"code":"361025100","name":"鳌溪镇"},{"code":"361025101","name":"公溪镇"},{"code":"361025102","name":"山砀镇"},{"code":"361025103","name":"龚坊镇"},{"code":"361025104","name":"戴坊镇"},{"code":"361025105","name":"牛田镇"},{"code":"361025106","name":"万崇镇"},{"code":"361025107","name":"增田镇"},{"code":"361025108","name":"招携镇"},{"code":"361025200","name":"湖溪乡"},{"code":"361025201","name":"罗陂乡"},{"code":"361025202","name":"湖坪乡"},{"code":"361025203","name":"南村乡"},{"code":"361025204","name":"谷岗乡"},{"code":"361025205","name":"金竹畲族乡"},{"code":"361025206","name":"大马头乡"}]},{"code":"361026","name":"宜黄县","children":[{"code":"361026100","name":"凤冈镇"},{"code":"361026101","name":"棠阴镇"},{"code":"361026102","name":"黄陂镇"},{"code":"361026103","name":"东陂镇"},{"code":"361026104","name":"梨溪镇"},{"code":"361026105","name":"二都镇"},{"code":"361026106","name":"中港镇"},{"code":"361026107","name":"桃陂镇"},{"code":"361026201","name":"新丰乡"},{"code":"361026202","name":"神岗乡"},{"code":"361026203","name":"圳口乡"},{"code":"361026204","name":"南源乡"},{"code":"361026400","name":"黄柏岭垦殖场"},{"code":"361026401","name":"青年垦殖场"},{"code":"361026500","name":"宜黄县工业园区"}]},{"code":"361027","name":"金溪县","children":[{"code":"361027100","name":"秀谷镇"},{"code":"361027101","name":"浒湾镇"},{"code":"361027102","name":"双塘镇"},{"code":"361027103","name":"何源镇"},{"code":"361027104","name":"合市镇"},{"code":"361027105","name":"琅琚镇"},{"code":"361027106","name":"左坊镇"},{"code":"361027107","name":"对桥镇"},{"code":"361027200","name":"黄通乡"},{"code":"361027202","name":"陆坊乡"},{"code":"361027203","name":"陈坊积乡"},{"code":"361027204","name":"琉璃乡"},{"code":"361027205","name":"石门乡"},{"code":"361027400","name":"华侨管理区"},{"code":"361027401","name":"江西金溪工业园区管理委员会"}]},{"code":"361028","name":"资溪县","children":[{"code":"361028100","name":"鹤城镇"},{"code":"361028101","name":"马头山镇"},{"code":"361028102","name":"高阜镇"},{"code":"361028103","name":"嵩市镇"},{"code":"361028104","name":"乌石镇"},{"code":"361028200","name":"高田乡"},{"code":"361028201","name":"石峡乡"}]},{"code":"361030","name":"广昌县","children":[{"code":"361030100","name":"旴江镇"},{"code":"361030101","name":"头陂镇"},{"code":"361030103","name":"赤水镇"},{"code":"361030104","name":"驿前镇"},{"code":"361030105","name":"甘竹镇"},{"code":"361030106","name":"塘坊镇"},{"code":"361030200","name":"千善乡"},{"code":"361030201","name":"水南圩乡"},{"code":"361030202","name":"长桥乡"},{"code":"361030203","name":"杨溪乡"},{"code":"361030204","name":"尖峰乡"},{"code":"361030400","name":"翠雷山垦殖场"},{"code":"361030500","name":"广昌县工业园区"}]}]},{"code":"3611","name":"上饶市","children":[{"code":"361102","name":"信州区","children":[{"code":"361102001","name":"水南街道"},{"code":"361102002","name":"东市街道"},{"code":"361102003","name":"西市街道"},{"code":"361102004","name":"北门街道"},{"code":"361102005","name":"茅家岭街道"},{"code":"361102006","name":"灵溪街道"},{"code":"361102100","name":"沙溪镇"},{"code":"361102102","name":"朝阳镇"},{"code":"361102103","name":"秦峰镇"}]},{"code":"361103","name":"广丰区","children":[{"code":"361103001","name":"永丰街道"},{"code":"361103002","name":"芦林街道"},{"code":"361103003","name":"丰溪街道"},{"code":"361103004","name":"下溪街道"},{"code":"361103005","name":"大石街道"},{"code":"361103101","name":"五都镇"},{"code":"361103102","name":"洋口镇"},{"code":"361103103","name":"横山镇"},{"code":"361103104","name":"桐畈镇"},{"code":"361103105","name":"湖丰镇"},{"code":"361103106","name":"大南镇"},{"code":"361103107","name":"排山镇"},{"code":"361103108","name":"毛村镇"},{"code":"361103109","name":"枧底镇"},{"code":"361103110","name":"泉波镇"},{"code":"361103111","name":"壶峤镇"},{"code":"361103112","name":"霞峰镇"},{"code":"361103114","name":"吴村镇"},{"code":"361103115","name":"沙田镇"},{"code":"361103116","name":"铜钹山镇"},{"code":"361103202","name":"东阳乡"},{"code":"361103204","name":"嵩峰乡"},{"code":"361103206","name":"少阳乡"},{"code":"361103500","name":"铜拔山垦殖场"}]},{"code":"361104","name":"广信区","children":[{"code":"361104001","name":"旭日街道"},{"code":"361104002","name":"罗桥街道"},{"code":"361104003","name":"兴园街道"},{"code":"361104101","name":"田墩镇"},{"code":"361104102","name":"上泸镇"},{"code":"361104103","name":"华坛山镇"},{"code":"361104104","name":"茶亭镇"},{"code":"361104105","name":"皂头镇"},{"code":"361104106","name":"四十八镇"},{"code":"361104107","name":"枫岭头镇"},{"code":"361104108","name":"煌固镇"},{"code":"361104109","name":"花厅镇"},{"code":"361104110","name":"五府山镇"},{"code":"361104111","name":"郑坊镇"},{"code":"361104200","name":"望仙乡"},{"code":"361104201","name":"石人乡"},{"code":"361104202","name":"清水乡"},{"code":"361104203","name":"石狮乡"},{"code":"361104204","name":"湖村乡"},{"code":"361104207","name":"尊桥乡"},{"code":"361104209","name":"应家乡"},{"code":"361104210","name":"黄沙岭乡"},{"code":"361104211","name":"铁山乡"},{"code":"361104290","name":"董团乡"}]},{"code":"361123","name":"玉山县","children":[{"code":"361123002","name":"冰溪街道"},{"code":"361123003","name":"文成街道"},{"code":"361123101","name":"临湖镇"},{"code":"361123102","name":"必姆镇"},{"code":"361123103","name":"横街镇"},{"code":"361123105","name":"下镇镇"},{"code":"361123107","name":"岩瑞镇"},{"code":"361123108","name":"双明镇"},{"code":"361123109","name":"紫湖镇"},{"code":"361123110","name":"仙岩镇"},{"code":"361123111","name":"樟村镇"},{"code":"361123112","name":"枫林镇"},{"code":"361123200","name":"南山乡"},{"code":"361123201","name":"怀玉乡"},{"code":"361123202","name":"下塘乡"},{"code":"361123203","name":"四股桥乡"},{"code":"361123204","name":"六都乡"},{"code":"361123290","name":"三清乡"}]},{"code":"361124","name":"铅山县","children":[{"code":"361124100","name":"河口镇"},{"code":"361124101","name":"永平镇"},{"code":"361124102","name":"石塘镇"},{"code":"361124103","name":"鹅湖镇"},{"code":"361124105","name":"湖坊镇"},{"code":"361124106","name":"武夷山镇"},{"code":"361124108","name":"汪二镇"},{"code":"361124109","name":"葛仙山镇"},{"code":"361124200","name":"陈坊乡"},{"code":"361124201","name":"虹桥乡"},{"code":"361124202","name":"新滩乡"},{"code":"361124205","name":"稼轩乡"},{"code":"361124206","name":"英将乡"},{"code":"361124207","name":"紫溪乡"},{"code":"361124208","name":"太源畲族乡"},{"code":"361124209","name":"天柱山乡"},{"code":"361124210","name":"篁碧畲族乡"},{"code":"361124407","name":"铅山县青溪服务中心"},{"code":"361124501","name":"铅山县国营森林苗圃"}]},{"code":"361125","name":"横峰县","children":[{"code":"361125001","name":"兴安街道"},{"code":"361125100","name":"岑阳镇"},{"code":"361125101","name":"葛源镇"},{"code":"361125200","name":"姚家乡"},{"code":"361125201","name":"莲荷乡"},{"code":"361125202","name":"司铺乡"},{"code":"361125203","name":"港边乡"},{"code":"361125204","name":"龙门畈乡"},{"code":"361125205","name":"青板乡"},{"code":"361125401","name":"红桥垦殖场"},{"code":"361125502","name":"上坑源林场"},{"code":"361125503","name":"山黄林场"},{"code":"361125504","name":"新篁"}]},{"code":"361126","name":"弋阳县","children":[{"code":"361126001","name":"桃源街道"},{"code":"361126002","name":"花亭街道"},{"code":"361126003","name":"南岩街道"},{"code":"361126101","name":"曹溪镇"},{"code":"361126102","name":"漆工镇"},{"code":"361126103","name":"樟树墩镇"},{"code":"361126105","name":"朱坑镇"},{"code":"361126106","name":"圭峰镇"},{"code":"361126107","name":"叠山镇"},{"code":"361126108","name":"港口镇"},{"code":"361126109","name":"弋江镇"},{"code":"361126110","name":"三县岭镇"},{"code":"361126202","name":"中畈乡"},{"code":"361126203","name":"葛溪乡"},{"code":"361126204","name":"湾里乡"},{"code":"361126206","name":"清湖乡"},{"code":"361126207","name":"旭光乡"}]},{"code":"361127","name":"余干县","children":[{"code":"361127100","name":"玉亭镇"},{"code":"361127101","name":"瑞洪镇"},{"code":"361127102","name":"黄金埠镇"},{"code":"361127104","name":"古埠镇"},{"code":"361127105","name":"乌泥镇"},{"code":"361127106","name":"石口镇"},{"code":"361127107","name":"杨埠镇"},{"code":"361127108","name":"九龙镇"},{"code":"361127109","name":"社赓镇"},{"code":"361127200","name":"康山乡"},{"code":"361127202","name":"东塘乡"},{"code":"361127204","name":"大塘乡"},{"code":"361127206","name":"鹭鸶港乡"},{"code":"361127207","name":"三塘乡"},{"code":"361127209","name":"洪家嘴乡"},{"code":"361127210","name":"白马桥乡"},{"code":"361127211","name":"江埠乡"},{"code":"361127213","name":"枫港乡"},{"code":"361127214","name":"大溪乡"},{"code":"361127217","name":"梅港乡"},{"code":"361127400","name":"余干县城市社区"},{"code":"361127500","name":"渔池湖水产场"},{"code":"361127501","name":"县良种场"},{"code":"361127502","name":"李梅林场"},{"code":"361127503","name":"康山垦总场"},{"code":"361127504","name":"禾斛岭垦殖场"},{"code":"361127505","name":"峡山林场"},{"code":"361127506","name":"信丰垦殖场"}]},{"code":"361128","name":"鄱阳县","children":[{"code":"361128001","name":"饶州街道"},{"code":"361128100","name":"鄱阳镇"},{"code":"361128101","name":"谢家滩镇"},{"code":"361128102","name":"石门街镇"},{"code":"361128103","name":"四十里街镇"},{"code":"361128104","name":"油墩街镇"},{"code":"361128105","name":"田畈街镇"},{"code":"361128106","name":"金盘岭镇"},{"code":"361128107","name":"高家岭镇"},{"code":"361128108","name":"凰岗镇"},{"code":"361128109","name":"双港镇"},{"code":"361128110","name":"古县渡镇"},{"code":"361128111","name":"饶丰镇"},{"code":"361128112","name":"乐丰镇"},{"code":"361128113","name":"饶埠镇"},{"code":"361128201","name":"侯家岗乡"},{"code":"361128202","name":"莲花山乡"},{"code":"361128203","name":"响水滩乡"},{"code":"361128206","name":"枧田街乡"},{"code":"361128207","name":"柘港乡"},{"code":"361128208","name":"鸦鹊湖乡"},{"code":"361128209","name":"银宝湖乡"},{"code":"361128210","name":"游城乡"},{"code":"361128211","name":"珠湖乡"},{"code":"361128212","name":"白沙洲乡"},{"code":"361128213","name":"团林乡"},{"code":"361128215","name":"昌洲乡"},{"code":"361128216","name":"三庙前乡"},{"code":"361128217","name":"莲湖乡"},{"code":"361128218","name":"芦田乡"},{"code":"361128401","name":"农科所"},{"code":"361128402","name":"饶州监狱"}]},{"code":"361129","name":"万年县","children":[{"code":"361129100","name":"陈营镇"},{"code":"361129101","name":"石镇镇"},{"code":"361129102","name":"青云镇"},{"code":"361129103","name":"梓埠镇"},{"code":"361129104","name":"大源镇"},{"code":"361129105","name":"裴梅镇"},{"code":"361129200","name":"湖云乡"},{"code":"361129201","name":"齐埠乡"},{"code":"361129203","name":"汪家乡"},{"code":"361129205","name":"上坊乡"},{"code":"361129206","name":"苏桥乡"},{"code":"361129208","name":"珠田乡"}]},{"code":"361130","name":"婺源县","children":[{"code":"361130001","name":"蚺城街道"},{"code":"361130100","name":"紫阳镇"},{"code":"361130101","name":"清华镇"},{"code":"361130102","name":"秋口镇"},{"code":"361130103","name":"江湾镇"},{"code":"361130104","name":"思口镇"},{"code":"361130106","name":"赋春镇"},{"code":"361130107","name":"镇头镇"},{"code":"361130109","name":"太白镇"},{"code":"361130110","name":"中云镇"},{"code":"361130111","name":"许村镇"},{"code":"361130200","name":"溪头乡"},{"code":"361130201","name":"段莘乡"},{"code":"361130204","name":"浙源乡"},{"code":"361130205","name":"沱川乡"},{"code":"361130206","name":"大鄣山乡"},{"code":"361130208","name":"珍珠山乡"}]},{"code":"361181","name":"德兴市","children":[{"code":"361181001","name":"银城街道"},{"code":"361181002","name":"新营街道"},{"code":"361181003","name":"香屯街道"},{"code":"361181004","name":"铜矿街道"},{"code":"361181103","name":"绕二镇"},{"code":"361181105","name":"海口镇"},{"code":"361181106","name":"新岗山镇"},{"code":"361181107","name":"泗洲镇"},{"code":"361181108","name":"大茅山镇"},{"code":"361181190","name":"花桥镇"},{"code":"361181200","name":"黄柏乡"},{"code":"361181201","name":"万村乡"},{"code":"361181202","name":"张村乡"},{"code":"361181203","name":"昄大乡"},{"code":"361181204","name":"李宅乡"},{"code":"361181205","name":"龙头山乡"}]}]}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市","children":[{"code":"370102","name":"历下区","children":[{"code":"370102001","name":"解放路街道"},{"code":"370102002","name":"千佛山街道"},{"code":"370102003","name":"趵突泉街道"},{"code":"370102004","name":"泉城路街道"},{"code":"370102005","name":"大明湖街道"},{"code":"370102006","name":"东关街道"},{"code":"370102007","name":"文东街道"},{"code":"370102008","name":"建新街道"},{"code":"370102009","name":"甸柳街道"},{"code":"370102010","name":"燕山街道"},{"code":"370102011","name":"姚家街道"},{"code":"370102012","name":"龙洞街道"},{"code":"370102013","name":"智远街道"}]},{"code":"370103","name":"市中区","children":[{"code":"370103002","name":"大观园街道"},{"code":"370103003","name":"杆石桥街道"},{"code":"370103004","name":"四里村街道"},{"code":"370103006","name":"魏家庄街道"},{"code":"370103008","name":"二七街道"},{"code":"370103009","name":"七里山街道"},{"code":"370103010","name":"六里山街道"},{"code":"370103012","name":"舜玉路街道"},{"code":"370103014","name":"泺源街道"},{"code":"370103015","name":"王官庄街道"},{"code":"370103016","name":"舜耕街道"},{"code":"370103017","name":"白马山街道"},{"code":"370103018","name":"七贤街道"},{"code":"370103019","name":"十六里河街道"},{"code":"370103020","name":"兴隆街道"},{"code":"370103021","name":"党家街道"},{"code":"370103022","name":"陡沟街道"}]},{"code":"370104","name":"槐荫区","children":[{"code":"370104001","name":"振兴街街道"},{"code":"370104002","name":"中大槐树街道"},{"code":"370104003","name":"道德街街道"},{"code":"370104004","name":"西市场街道"},{"code":"370104005","name":"五里沟街道"},{"code":"370104006","name":"营市街街道"},{"code":"370104007","name":"青年公园街道"},{"code":"370104008","name":"南辛庄街道"},{"code":"370104009","name":"段店北路街道"},{"code":"370104010","name":"张庄路街道"},{"code":"370104011","name":"匡山街道"},{"code":"370104012","name":"美里湖街道"},{"code":"370104013","name":"腊山街道"},{"code":"370104014","name":"兴福街道"},{"code":"370104015","name":"玉清湖街道"},{"code":"370104016","name":"吴家堡街道"}]},{"code":"370105","name":"天桥区","children":[{"code":"370105001","name":"无影山街道"},{"code":"370105003","name":"天桥东街街道"},{"code":"370105004","name":"北村街道"},{"code":"370105005","name":"南村街道"},{"code":"370105006","name":"堤口路街道"},{"code":"370105007","name":"北坦街道"},{"code":"370105009","name":"制锦市街道"},{"code":"370105010","name":"宝华街道"},{"code":"370105011","name":"官扎营街道"},{"code":"370105012","name":"纬北路街道"},{"code":"370105013","name":"药山街道"},{"code":"370105014","name":"北园街道"},{"code":"370105015","name":"泺口街道"},{"code":"370105016","name":"桑梓店街道"},{"code":"370105017","name":"大桥街道"}]},{"code":"370112","name":"历城区","children":[{"code":"370112001","name":"山大路街道"},{"code":"370112002","name":"洪家楼街道"},{"code":"370112003","name":"东风街道"},{"code":"370112004","name":"全福街道"},{"code":"370112007","name":"华山街道"},{"code":"370112008","name":"荷花路街道"},{"code":"370112009","name":"王舍人街道"},{"code":"370112010","name":"鲍山街道"},{"code":"370112011","name":"郭店街道"},{"code":"370112012","name":"唐冶街道"},{"code":"370112013","name":"港沟街道"},{"code":"370112016","name":"董家街道"},{"code":"370112017","name":"彩石街道"},{"code":"370112018","name":"仲宫街道"},{"code":"370112019","name":"柳埠街道"},{"code":"370112020","name":"唐王街道"},{"code":"370112021","name":"西营街道"}]},{"code":"370113","name":"长清区","children":[{"code":"370113001","name":"文昌街道"},{"code":"370113002","name":"崮云湖街道"},{"code":"370113003","name":"平安街道"},{"code":"370113004","name":"五峰山街道"},{"code":"370113005","name":"归德街道"},{"code":"370113006","name":"张夏街道"},{"code":"370113007","name":"万德街道"},{"code":"370113008","name":"孝里街道"},{"code":"370113107","name":"马山镇"},{"code":"370113108","name":"双泉镇"}]},{"code":"370114","name":"章丘区","children":[{"code":"370114001","name":"明水街道"},{"code":"370114002","name":"双山街道"},{"code":"370114003","name":"枣园街道"},{"code":"370114004","name":"龙山街道"},{"code":"370114005","name":"埠村街道"},{"code":"370114006","name":"圣井街道"},{"code":"370114007","name":"普集街道"},{"code":"370114008","name":"绣惠街道"},{"code":"370114009","name":"相公庄街道"},{"code":"370114010","name":"文祖街道"},{"code":"370114011","name":"官庄街道"},{"code":"370114012","name":"高官寨街道"},{"code":"370114013","name":"白云湖街道"},{"code":"370114014","name":"宁家埠街道"},{"code":"370114015","name":"曹范街道"},{"code":"370114016","name":"刁镇街道"},{"code":"370114017","name":"黄河街道"},{"code":"370114101","name":"垛庄镇"}]},{"code":"370115","name":"济阳区","children":[{"code":"370115001","name":"济阳街道"},{"code":"370115002","name":"济北街道"},{"code":"370115003","name":"崔寨街道"},{"code":"370115004","name":"孙耿街道"},{"code":"370115005","name":"回河街道"},{"code":"370115006","name":"太平街道"},{"code":"370115007","name":"垛石街道"},{"code":"370115008","name":"曲堤街道"},{"code":"370115104","name":"仁风镇"},{"code":"370115110","name":"新市镇"}]},{"code":"370116","name":"莱芜区","children":[{"code":"370116001","name":"凤城街道"},{"code":"370116002","name":"张家洼街道"},{"code":"370116003","name":"高庄街道"},{"code":"370116004","name":"鹏泉街道"},{"code":"370116005","name":"口镇街道"},{"code":"370116006","name":"羊里街道"},{"code":"370116007","name":"方下街道"},{"code":"370116008","name":"雪野街道"},{"code":"370116103","name":"牛泉镇"},{"code":"370116104","name":"苗山镇"},{"code":"370116106","name":"大王庄镇"},{"code":"370116107","name":"寨里镇"},{"code":"370116108","name":"杨庄镇"},{"code":"370116109","name":"茶业口镇"},{"code":"370116110","name":"和庄镇"}]},{"code":"370117","name":"钢城区","children":[{"code":"370117001","name":"艾山街道"},{"code":"370117002","name":"里辛街道"},{"code":"370117003","name":"汶源街道"},{"code":"370117004","name":"颜庄街道"},{"code":"370117005","name":"辛庄街道"},{"code":"370117400","name":"棋山国家森林公园"},{"code":"370117401","name":"高新技术开发区"}]},{"code":"370124","name":"平阴县","children":[{"code":"370124001","name":"榆山街道"},{"code":"370124002","name":"锦水街道"},{"code":"370124102","name":"东阿镇"},{"code":"370124103","name":"孝直镇"},{"code":"370124104","name":"孔村镇"},{"code":"370124105","name":"洪范池镇"},{"code":"370124106","name":"玫瑰镇"},{"code":"370124107","name":"安城镇"}]},{"code":"370126","name":"商河县","children":[{"code":"370126001","name":"许商街道"},{"code":"370126101","name":"殷巷镇"},{"code":"370126102","name":"怀仁镇"},{"code":"370126104","name":"龙桑寺镇"},{"code":"370126105","name":"郑路镇"},{"code":"370126106","name":"贾庄镇"},{"code":"370126107","name":"玉皇庙镇"},{"code":"370126108","name":"白桥镇"},{"code":"370126109","name":"孙集镇"},{"code":"370126110","name":"韩庙镇"},{"code":"370126111","name":"沙河镇"},{"code":"370126112","name":"张坊镇"},{"code":"370126400","name":"商河经济开发区"}]},{"code":"370171","name":"济南高新技术产业开发区","children":[{"code":"370171001","name":"舜华路街道"},{"code":"370171002","name":"孙村街道"},{"code":"370171003","name":"巨野河街道"},{"code":"370171004","name":"遥墙街道"},{"code":"370171005","name":"临港街道"},{"code":"370171401","name":"章锦街道"}]}]},{"code":"3702","name":"青岛市","children":[{"code":"370202","name":"市南区","children":[{"code":"370202001","name":"香港中路街道"},{"code":"370202002","name":"八大峡街道"},{"code":"370202004","name":"云南路街道"},{"code":"370202005","name":"中山路街道"},{"code":"370202007","name":"江苏路街道"},{"code":"370202009","name":"八大关街道"},{"code":"370202010","name":"湛山街道"},{"code":"370202011","name":"金湖路街道"},{"code":"370202012","name":"八大湖街道"},{"code":"370202013","name":"金门路街道"},{"code":"370202014","name":"珠海路街道"}]},{"code":"370203","name":"市北区","children":[{"code":"370203005","name":"辽宁路街道"},{"code":"370203008","name":"延安路街道"},{"code":"370203011","name":"登州路街道"},{"code":"370203013","name":"宁夏路街道"},{"code":"370203014","name":"敦化路街道"},{"code":"370203015","name":"辽源路街道"},{"code":"370203016","name":"合肥路街道"},{"code":"370203019","name":"大港街道"},{"code":"370203020","name":"即墨路街道"},{"code":"370203021","name":"台东街道"},{"code":"370203022","name":"镇江路街道"},{"code":"370203025","name":"浮山新区街道"},{"code":"370203026","name":"阜新路街道"},{"code":"370203027","name":"海伦路街道"},{"code":"370203028","name":"四方街道"},{"code":"370203029","name":"兴隆路街道"},{"code":"370203030","name":"水清沟街道"},{"code":"370203031","name":"洛阳路街道"},{"code":"370203032","name":"河西街道"},{"code":"370203033","name":"湖岛街道"},{"code":"370203034","name":"开平路街道"},{"code":"370203035","name":"双山街道"}]},{"code":"370211","name":"黄岛区","children":[{"code":"370211001","name":"黄岛街道"},{"code":"370211002","name":"辛安街道"},{"code":"370211003","name":"薛家岛街道"},{"code":"370211004","name":"灵珠山街道"},{"code":"370211005","name":"长江路街道"},{"code":"370211006","name":"红石崖街道"},{"code":"370211007","name":"灵山卫街道"},{"code":"370211009","name":"珠海街道"},{"code":"370211010","name":"隐珠街道"},{"code":"370211011","name":"铁山街道"},{"code":"370211012","name":"滨海街道"},{"code":"370211013","name":"胶南街道"},{"code":"370211014","name":"王台街道"},{"code":"370211015","name":"张家楼街道"},{"code":"370211102","name":"琅琊镇"},{"code":"370211103","name":"泊里镇"},{"code":"370211104","name":"大场镇"},{"code":"370211105","name":"大村镇"},{"code":"370211106","name":"六汪镇"},{"code":"370211107","name":"海青镇"},{"code":"370211108","name":"宝山镇"},{"code":"370211109","name":"藏马镇"},{"code":"370211401","name":"灵山岛省级自然保护区"}]},{"code":"370212","name":"崂山区","children":[{"code":"370212001","name":"中韩街道"},{"code":"370212002","name":"沙子口街道"},{"code":"370212003","name":"王哥庄街道"},{"code":"370212004","name":"北宅街道"},{"code":"370212005","name":"金家岭街道"}]},{"code":"370213","name":"李沧区","children":[{"code":"370213001","name":"振华路街道"},{"code":"370213003","name":"沧口街道"},{"code":"370213004","name":"兴华路街道"},{"code":"370213005","name":"兴城路街道"},{"code":"370213006","name":"李村街道"},{"code":"370213007","name":"虎山路街道"},{"code":"370213008","name":"浮山路街道"},{"code":"370213010","name":"湘潭路街道"},{"code":"370213011","name":"楼山街道"},{"code":"370213012","name":"九水街道"},{"code":"370213013","name":"世园街道"}]},{"code":"370214","name":"城阳区","children":[{"code":"370214001","name":"城阳街道"},{"code":"370214002","name":"夏庄街道"},{"code":"370214003","name":"流亭街道"},{"code":"370214004","name":"棘洪滩街道"},{"code":"370214005","name":"上马街道"},{"code":"370214008","name":"惜福镇街道"},{"code":"370214009","name":"红岛街道"},{"code":"370214010","name":"河套街道"}]},{"code":"370215","name":"即墨区","children":[{"code":"370215001","name":"环秀街道"},{"code":"370215002","name":"潮海街道"},{"code":"370215003","name":"通济街道"},{"code":"370215004","name":"北安街道"},{"code":"370215005","name":"龙山街道"},{"code":"370215006","name":"龙泉街道"},{"code":"370215007","name":"鳌山卫街道"},{"code":"370215008","name":"温泉街道"},{"code":"370215009","name":"灵山街道"},{"code":"370215010","name":"蓝村街道"},{"code":"370215011","name":"大信街道"},{"code":"370215100","name":"田横镇"},{"code":"370215101","name":"金口镇"},{"code":"370215103","name":"段泊岚镇"},{"code":"370215104","name":"移风店镇"},{"code":"370215400","name":"通济新经济区"},{"code":"370215402","name":"田横岛省级旅游度假区"}]},{"code":"370271","name":"青岛高新技术产业开发区","children":[{"code":"370271400","name":"北部园区"}]},{"code":"370281","name":"胶州市","children":[{"code":"370281001","name":"阜安街道"},{"code":"370281002","name":"中云街道"},{"code":"370281004","name":"三里河街道"},{"code":"370281006","name":"九龙街道"},{"code":"370281007","name":"胶东街道"},{"code":"370281008","name":"胶北街道"},{"code":"370281009","name":"胶西街道"},{"code":"370281010","name":"胶莱街道"},{"code":"370281102","name":"李哥庄镇"},{"code":"370281105","name":"铺集镇"},{"code":"370281108","name":"里岔镇"},{"code":"370281111","name":"洋河镇"},{"code":"370281400","name":"胶州经济技术开发区"},{"code":"370281401","name":"大沽河省级生态旅游度假区"}]},{"code":"370283","name":"平度市","children":[{"code":"370283001","name":"东阁街道"},{"code":"370283002","name":"李园街道"},{"code":"370283003","name":"同和街道"},{"code":"370283004","name":"凤台街道"},{"code":"370283005","name":"白沙河街道"},{"code":"370283101","name":"古岘镇"},{"code":"370283102","name":"仁兆镇"},{"code":"370283105","name":"南村镇"},{"code":"370283108","name":"蓼兰镇"},{"code":"370283109","name":"崔家集镇"},{"code":"370283110","name":"明村镇"},{"code":"370283113","name":"田庄镇"},{"code":"370283116","name":"新河镇"},{"code":"370283119","name":"店子镇"},{"code":"370283120","name":"大泽山镇"},{"code":"370283122","name":"旧店镇"},{"code":"370283124","name":"云山镇"},{"code":"370283400","name":"平度经济开发区"}]},{"code":"370285","name":"莱西市","children":[{"code":"370285001","name":"水集街道"},{"code":"370285002","name":"望城街道"},{"code":"370285007","name":"沽河街道"},{"code":"370285101","name":"姜山镇"},{"code":"370285102","name":"夏格庄镇"},{"code":"370285104","name":"院上镇"},{"code":"370285105","name":"日庄镇"},{"code":"370285106","name":"南墅镇"},{"code":"370285107","name":"河头店镇"},{"code":"370285108","name":"店埠镇"},{"code":"370285116","name":"马连庄镇"},{"code":"370285400","name":"莱西经济开发区"}]}]},{"code":"3703","name":"淄博市","children":[{"code":"370302","name":"淄川区","children":[{"code":"370302001","name":"般阳路街道"},{"code":"370302002","name":"松龄路街道"},{"code":"370302004","name":"钟楼街道"},{"code":"370302005","name":"将军路街道"},{"code":"370302102","name":"昆仑镇"},{"code":"370302104","name":"岭子镇"},{"code":"370302111","name":"西河镇"},{"code":"370302112","name":"龙泉镇"},{"code":"370302113","name":"寨里镇"},{"code":"370302114","name":"罗村镇"},{"code":"370302115","name":"洪山镇"},{"code":"370302116","name":"双杨镇"},{"code":"370302117","name":"太河镇"}]},{"code":"370303","name":"张店区","children":[{"code":"370303001","name":"车站街道"},{"code":"370303002","name":"公园街道"},{"code":"370303003","name":"湖田街道"},{"code":"370303004","name":"和平街道"},{"code":"370303005","name":"科苑街道"},{"code":"370303006","name":"体育场街道"},{"code":"370303008","name":"四宝山街道"},{"code":"370303009","name":"马尚街道"},{"code":"370303101","name":"南定镇"},{"code":"370303102","name":"沣水镇"},{"code":"370303104","name":"傅家镇"},{"code":"370303105","name":"中埠镇"},{"code":"370303107","name":"房镇镇"}]},{"code":"370304","name":"博山区","children":[{"code":"370304001","name":"城东街道"},{"code":"370304002","name":"城西街道"},{"code":"370304004","name":"山头街道"},{"code":"370304102","name":"域城镇"},{"code":"370304103","name":"白塔镇"},{"code":"370304106","name":"八陡镇"},{"code":"370304108","name":"石马镇"},{"code":"370304111","name":"源泉镇"},{"code":"370304112","name":"池上镇"},{"code":"370304113","name":"博山镇"}]},{"code":"370305","name":"临淄区","children":[{"code":"370305001","name":"闻韶街道"},{"code":"370305002","name":"雪宫街道"},{"code":"370305003","name":"辛店街道"},{"code":"370305004","name":"稷下街道"},{"code":"370305005","name":"齐陵街道"},{"code":"370305100","name":"齐都镇"},{"code":"370305102","name":"皇城镇"},{"code":"370305103","name":"敬仲镇"},{"code":"370305104","name":"朱台镇"},{"code":"370305107","name":"金岭镇"},{"code":"370305109","name":"凤凰镇"},{"code":"370305111","name":"金山镇"}]},{"code":"370306","name":"周村区","children":[{"code":"370306001","name":"丝绸路街道"},{"code":"370306002","name":"大街街道"},{"code":"370306003","name":"青年路街道"},{"code":"370306004","name":"永安街道"},{"code":"370306005","name":"城北路街道"},{"code":"370306100","name":"北郊镇"},{"code":"370306101","name":"南郊镇"},{"code":"370306102","name":"王村镇"},{"code":"370306103","name":"萌水镇"},{"code":"370306104","name":"商家镇"}]},{"code":"370321","name":"桓台县","children":[{"code":"370321001","name":"索镇街道"},{"code":"370321002","name":"少海街道"},{"code":"370321101","name":"起凤镇"},{"code":"370321103","name":"田庄镇"},{"code":"370321104","name":"荆家镇"},{"code":"370321105","name":"马桥镇"},{"code":"370321107","name":"新城镇"},{"code":"370321109","name":"唐山镇"},{"code":"370321110","name":"果里镇"}]},{"code":"370322","name":"高青县","children":[{"code":"370322001","name":"田镇街道"},{"code":"370322002","name":"芦湖街道"},{"code":"370322101","name":"青城镇"},{"code":"370322102","name":"高城镇"},{"code":"370322103","name":"黑里寨镇"},{"code":"370322104","name":"唐坊镇"},{"code":"370322105","name":"常家镇"},{"code":"370322106","name":"花沟镇"},{"code":"370322108","name":"木李镇"}]},{"code":"370323","name":"沂源县","children":[{"code":"370323001","name":"历山街道"},{"code":"370323002","name":"南麻街道"},{"code":"370323102","name":"鲁村镇"},{"code":"370323103","name":"东里镇"},{"code":"370323104","name":"悦庄镇"},{"code":"370323105","name":"西里镇"},{"code":"370323106","name":"大张庄镇"},{"code":"370323107","name":"中庄镇"},{"code":"370323108","name":"张家坡镇"},{"code":"370323109","name":"燕崖镇"},{"code":"370323110","name":"石桥镇"},{"code":"370323111","name":"南鲁山镇"}]}]},{"code":"3704","name":"枣庄市","children":[{"code":"370402","name":"市中区","children":[{"code":"370402001","name":"中心街街道"},{"code":"370402002","name":"各塔埠街道"},{"code":"370402003","name":"矿区街道"},{"code":"370402004","name":"文化路街道"},{"code":"370402005","name":"龙山路街道"},{"code":"370402006","name":"光明路街道"},{"code":"370402101","name":"税郭镇"},{"code":"370402102","name":"孟庄镇"},{"code":"370402103","name":"齐村镇"},{"code":"370402104","name":"永安镇"},{"code":"370402105","name":"西王庄镇"}]},{"code":"370403","name":"薛城区","children":[{"code":"370403001","name":"临城街道"},{"code":"370403002","name":"兴仁街道"},{"code":"370403003","name":"兴城街道"},{"code":"370403004","name":"张范街道"},{"code":"370403005","name":"常庄街道"},{"code":"370403101","name":"沙沟镇"},{"code":"370403102","name":"周营镇"},{"code":"370403103","name":"邹坞镇"},{"code":"370403104","name":"陶庄镇"}]},{"code":"370404","name":"峄城区","children":[{"code":"370404001","name":"坛山街道"},{"code":"370404002","name":"吴林街道"},{"code":"370404100","name":"古邵镇"},{"code":"370404101","name":"阴平镇"},{"code":"370404102","name":"底阁镇"},{"code":"370404103","name":"榴园镇"},{"code":"370404104","name":"峨山镇"}]},{"code":"370405","name":"台儿庄区","children":[{"code":"370405001","name":"运河街道"},{"code":"370405100","name":"邳庄镇"},{"code":"370405101","name":"张山子镇"},{"code":"370405102","name":"泥沟镇"},{"code":"370405103","name":"涧头集镇"},{"code":"370405104","name":"马兰屯镇"}]},{"code":"370406","name":"山亭区","children":[{"code":"370406001","name":"山城街道"},{"code":"370406101","name":"店子镇"},{"code":"370406102","name":"西集镇"},{"code":"370406103","name":"桑村镇"},{"code":"370406104","name":"北庄镇"},{"code":"370406105","name":"城头镇"},{"code":"370406106","name":"徐庄镇"},{"code":"370406107","name":"水泉镇"},{"code":"370406108","name":"冯卯镇"},{"code":"370406109","name":"凫城镇"},{"code":"370406405","name":"山亭经济开发区"}]},{"code":"370481","name":"滕州市","children":[{"code":"370481001","name":"荆河街道"},{"code":"370481002","name":"龙泉街道"},{"code":"370481003","name":"北辛街道"},{"code":"370481004","name":"善南街道"},{"code":"370481005","name":"东沙河街道"},{"code":"370481101","name":"洪绪镇"},{"code":"370481102","name":"南沙河镇"},{"code":"370481103","name":"大坞镇"},{"code":"370481104","name":"滨湖镇"},{"code":"370481105","name":"级索镇"},{"code":"370481106","name":"西岗镇"},{"code":"370481107","name":"姜屯镇"},{"code":"370481108","name":"鲍沟镇"},{"code":"370481109","name":"张汪镇"},{"code":"370481110","name":"官桥镇"},{"code":"370481111","name":"柴胡店镇"},{"code":"370481112","name":"羊庄镇"},{"code":"370481113","name":"木石镇"},{"code":"370481114","name":"界河镇"},{"code":"370481115","name":"龙阳镇"},{"code":"370481116","name":"东郭镇"}]}]},{"code":"3705","name":"东营市","children":[{"code":"370502","name":"东营区","children":[{"code":"370502001","name":"文汇街道"},{"code":"370502002","name":"黄河路街道"},{"code":"370502003","name":"东城街道"},{"code":"370502004","name":"辛店街道"},{"code":"370502005","name":"胜利街道"},{"code":"370502006","name":"胜园街道"},{"code":"370502102","name":"牛庄镇"},{"code":"370502103","name":"六户镇"},{"code":"370502104","name":"史口镇"},{"code":"370502105","name":"龙居镇"},{"code":"370502400","name":"东营商贸园"}]},{"code":"370503","name":"河口区","children":[{"code":"370503001","name":"河口街道"},{"code":"370503002","name":"六合街道"},{"code":"370503100","name":"义和镇"},{"code":"370503101","name":"仙河镇"},{"code":"370503102","name":"孤岛镇"},{"code":"370503103","name":"新户镇"},{"code":"370503400","name":"河口经济开发区"},{"code":"370503401","name":"河口蓝色经济开发区"}]},{"code":"370505","name":"垦利区","children":[{"code":"370505001","name":"垦利街道"},{"code":"370505002","name":"兴隆街道"},{"code":"370505101","name":"胜坨镇"},{"code":"370505102","name":"郝家镇"},{"code":"370505104","name":"永安镇"},{"code":"370505105","name":"黄河口镇"},{"code":"370505106","name":"董集镇"},{"code":"370505400","name":"开发区类似乡级单位"},{"code":"370505402","name":"红光类似乡级单位"},{"code":"370505403","name":"垦东类似乡级单位"},{"code":"370505404","name":"东营市现代畜牧业示范区类似乡级单位"}]},{"code":"370522","name":"利津县","children":[{"code":"370522001","name":"利津街道"},{"code":"370522002","name":"凤凰城街道"},{"code":"370522101","name":"北宋镇"},{"code":"370522102","name":"盐窝镇"},{"code":"370522103","name":"陈庄镇"},{"code":"370522104","name":"汀罗镇"},{"code":"370522201","name":"明集乡"},{"code":"370522206","name":"刁口乡"},{"code":"370522400","name":"利津县经济开发区"}]},{"code":"370523","name":"广饶县","children":[{"code":"370523001","name":"广饶街道"},{"code":"370523002","name":"乐安街道"},{"code":"370523003","name":"丁庄街道"},{"code":"370523101","name":"大王镇"},{"code":"370523102","name":"稻庄镇"},{"code":"370523106","name":"李鹊镇"},{"code":"370523107","name":"大码头镇"},{"code":"370523108","name":"花官镇"},{"code":"370523109","name":"陈官镇"},{"code":"370523400","name":"东营农业高新技术产业示范区"},{"code":"370523401","name":"滨海新动能产业园"}]},{"code":"370571","name":"东营经济技术开发区","children":[{"code":"370571400","name":"经济开发区直属乡镇"}]},{"code":"370572","name":"东营港经济开发区","children":[{"code":"370572402","name":"经济开发区直属乡镇"}]}]},{"code":"3706","name":"烟台市","children":[{"code":"370602","name":"芝罘区","children":[{"code":"370602001","name":"向阳街道"},{"code":"370602002","name":"东山街道"},{"code":"370602003","name":"毓璜顶街道"},{"code":"370602004","name":"通伸街道"},{"code":"370602005","name":"凤凰台街道"},{"code":"370602006","name":"奇山街道"},{"code":"370602007","name":"白石街道"},{"code":"370602008","name":"芝罘岛街道"},{"code":"370602009","name":"黄务街道"},{"code":"370602010","name":"只楚街道"},{"code":"370602011","name":"世回尧街道"},{"code":"370602012","name":"幸福街道"}]},{"code":"370611","name":"福山区","children":[{"code":"370611001","name":"清洋街道"},{"code":"370611002","name":"福新街道"},{"code":"370611006","name":"东厅街道"},{"code":"370611007","name":"门楼街道"},{"code":"370611102","name":"高疃镇"},{"code":"370611103","name":"张格庄镇"},{"code":"370611104","name":"回里镇"},{"code":"370611105","name":"臧家庄镇"},{"code":"370611401","name":"山东烟台福山经济开发区"}]},{"code":"370612","name":"牟平区","children":[{"code":"370612001","name":"宁海街道"},{"code":"370612002","name":"文化街道"},{"code":"370612004","name":"武宁街道"},{"code":"370612005","name":"大窑街道"},{"code":"370612006","name":"姜格庄街道"},{"code":"370612101","name":"观水镇"},{"code":"370612105","name":"龙泉镇"},{"code":"370612106","name":"玉林店镇"},{"code":"370612107","name":"水道镇"},{"code":"370612109","name":"高陵镇"},{"code":"370612110","name":"王格庄镇"},{"code":"370612111","name":"昆嵛镇"},{"code":"370612112","name":"莒格庄镇"}]},{"code":"370613","name":"莱山区","children":[{"code":"370613001","name":"黄海路街道"},{"code":"370613002","name":"初家街道"},{"code":"370613003","name":"滨海路街道"},{"code":"370613004","name":"解甲庄街道"},{"code":"370613005","name":"莱山街道"},{"code":"370613006","name":"院格庄街道"}]},{"code":"370614","name":"蓬莱区","children":[{"code":"370614001","name":"登州街道"},{"code":"370614002","name":"紫荆山街道"},{"code":"370614003","name":"新港街道"},{"code":"370614004","name":"蓬莱阁街道"},{"code":"370614005","name":"南王街道"},{"code":"370614006","name":"南长山街道"},{"code":"370614102","name":"刘家沟镇"},{"code":"370614103","name":"潮水镇"},{"code":"370614105","name":"大柳行镇"},{"code":"370614106","name":"小门家镇"},{"code":"370614107","name":"大辛店镇"},{"code":"370614108","name":"村里集镇"},{"code":"370614109","name":"北沟镇"},{"code":"370614110","name":"砣矶镇"},{"code":"370614201","name":"北长山乡"},{"code":"370614202","name":"黑山乡"},{"code":"370614203","name":"大钦岛乡"},{"code":"370614204","name":"小钦岛乡"},{"code":"370614205","name":"南隍城乡"},{"code":"370614206","name":"北隍城乡"}]},{"code":"370671","name":"烟台高新技术产业开发区","children":[{"code":"370671007","name":"马山街道"}]},{"code":"370672","name":"烟台经济技术开发区","children":[{"code":"370672003","name":"古现街道"},{"code":"370672004","name":"大季家街道"},{"code":"370672008","name":"福莱山街道"}]},{"code":"370681","name":"龙口市","children":[{"code":"370681001","name":"东莱街道"},{"code":"370681002","name":"龙港街道"},{"code":"370681003","name":"新嘉街道"},{"code":"370681004","name":"徐福街道"},{"code":"370681005","name":"东江街道"},{"code":"370681102","name":"黄山馆镇"},{"code":"370681103","name":"北马镇"},{"code":"370681104","name":"芦头镇"},{"code":"370681106","name":"下丁家镇"},{"code":"370681107","name":"七甲镇"},{"code":"370681108","name":"石良镇"},{"code":"370681109","name":"兰高镇"},{"code":"370681110","name":"诸由观镇"},{"code":"370681401","name":"山东龙口高新技术产业园区"}]},{"code":"370682","name":"莱阳市","children":[{"code":"370682001","name":"城厢街道"},{"code":"370682002","name":"古柳街道"},{"code":"370682003","name":"龙旺庄街道"},{"code":"370682004","name":"冯格庄街道"},{"code":"370682005","name":"柏林庄街道"},{"code":"370682101","name":"沐浴店镇"},{"code":"370682102","name":"团旺镇"},{"code":"370682103","name":"穴坊镇"},{"code":"370682104","name":"羊郡镇"},{"code":"370682105","name":"姜疃镇"},{"code":"370682106","name":"万第镇"},{"code":"370682107","name":"照旺庄镇"},{"code":"370682108","name":"谭格庄镇"},{"code":"370682110","name":"河洛镇"},{"code":"370682111","name":"吕格庄镇"},{"code":"370682112","name":"高格庄镇"},{"code":"370682113","name":"大夼镇"},{"code":"370682114","name":"山前店镇"}]},{"code":"370683","name":"莱州市","children":[{"code":"370683001","name":"文昌路街道"},{"code":"370683002","name":"永安路街道"},{"code":"370683003","name":"三山岛街道"},{"code":"370683004","name":"城港路街道"},{"code":"370683005","name":"文峰路街道"},{"code":"370683006","name":"金仓街道"},{"code":"370683101","name":"沙河镇"},{"code":"370683102","name":"朱桥镇"},{"code":"370683103","name":"郭家店镇"},{"code":"370683104","name":"金城镇"},{"code":"370683105","name":"平里店镇"},{"code":"370683106","name":"驿道镇"},{"code":"370683107","name":"程郭镇"},{"code":"370683108","name":"虎头崖镇"},{"code":"370683109","name":"柞村镇"},{"code":"370683110","name":"夏邱镇"},{"code":"370683111","name":"土山镇"}]},{"code":"370685","name":"招远市","children":[{"code":"370685001","name":"罗峰街道"},{"code":"370685002","name":"泉山街道"},{"code":"370685003","name":"梦芝街道"},{"code":"370685004","name":"温泉街道"},{"code":"370685005","name":"大秦家街道"},{"code":"370685101","name":"辛庄镇"},{"code":"370685102","name":"蚕庄镇"},{"code":"370685103","name":"金岭镇"},{"code":"370685104","name":"毕郭镇"},{"code":"370685105","name":"玲珑镇"},{"code":"370685106","name":"张星镇"},{"code":"370685108","name":"夏甸镇"},{"code":"370685109","name":"阜山镇"},{"code":"370685110","name":"齐山镇"}]},{"code":"370686","name":"栖霞市","children":[{"code":"370686001","name":"翠屏街道"},{"code":"370686002","name":"庄园街道"},{"code":"370686003","name":"松山街道"},{"code":"370686101","name":"观里镇"},{"code":"370686102","name":"蛇窝泊镇"},{"code":"370686103","name":"唐家泊镇"},{"code":"370686104","name":"桃村镇"},{"code":"370686105","name":"亭口镇"},{"code":"370686107","name":"寺口镇"},{"code":"370686108","name":"苏家店镇"},{"code":"370686109","name":"杨础镇"},{"code":"370686110","name":"西城镇"},{"code":"370686111","name":"官道镇"},{"code":"370686113","name":"庙后镇"}]},{"code":"370687","name":"海阳市","children":[{"code":"370687001","name":"方圆街道"},{"code":"370687002","name":"东村街道"},{"code":"370687003","name":"凤城街道"},{"code":"370687004","name":"龙山街道"},{"code":"370687102","name":"留格庄镇"},{"code":"370687103","name":"盘石店镇"},{"code":"370687104","name":"郭城镇"},{"code":"370687105","name":"徐家店镇"},{"code":"370687106","name":"发城镇"},{"code":"370687107","name":"小纪镇"},{"code":"370687108","name":"行村镇"},{"code":"370687109","name":"辛安镇"},{"code":"370687110","name":"二十里店镇"},{"code":"370687112","name":"朱吴镇"},{"code":"370687401","name":"外向型工业加工区"},{"code":"370687402","name":"碧城工业区"},{"code":"370687403","name":"旅游度假区"},{"code":"370687404","name":"核电装备制造工业园区"}]}]},{"code":"3707","name":"潍坊市","children":[{"code":"370702","name":"潍城区","children":[{"code":"370702001","name":"城关街道"},{"code":"370702002","name":"南关街道"},{"code":"370702003","name":"西关街道"},{"code":"370702004","name":"北关街道"},{"code":"370702005","name":"于河街道"},{"code":"370702006","name":"望留街道"},{"code":"370702400","name":"潍城经济开发区"}]},{"code":"370703","name":"寒亭区","children":[{"code":"370703001","name":"寒亭街道"},{"code":"370703002","name":"开元街道"},{"code":"370703003","name":"固堤街道"},{"code":"370703006","name":"高里街道"},{"code":"370703007","name":"朱里街道"}]},{"code":"370704","name":"坊子区","children":[{"code":"370704003","name":"凤凰街道"},{"code":"370704004","name":"坊安街道"},{"code":"370704005","name":"坊城街道"},{"code":"370704006","name":"九龙街道"},{"code":"370704007","name":"黄旗堡街道"},{"code":"370704008","name":"太保庄街道"},{"code":"370704009","name":"王家庄街道"}]},{"code":"370705","name":"奎文区","children":[{"code":"370705001","name":"东关街道"},{"code":"370705002","name":"大虞街道"},{"code":"370705003","name":"梨园街道"},{"code":"370705004","name":"廿里堡街道"},{"code":"370705005","name":"潍州路街道"},{"code":"370705006","name":"北苑街道"},{"code":"370705007","name":"广文街道"},{"code":"370705009","name":"新城街道"},{"code":"370705010","name":"清池街道"},{"code":"370705012","name":"北海路街道"}]},{"code":"370724","name":"临朐县","children":[{"code":"370724001","name":"城关街道"},{"code":"370724002","name":"东城街道"},{"code":"370724003","name":"冶源街道"},{"code":"370724004","name":"辛寨街道"},{"code":"370724101","name":"五井镇"},{"code":"370724104","name":"寺头镇"},{"code":"370724105","name":"九山镇"},{"code":"370724112","name":"山旺镇"},{"code":"370724113","name":"柳山镇"},{"code":"370724116","name":"蒋峪镇"}]},{"code":"370725","name":"昌乐县","children":[{"code":"370725001","name":"宝都街道"},{"code":"370725002","name":"宝城街道"},{"code":"370725003","name":"朱刘街道"},{"code":"370725005","name":"五图街道"},{"code":"370725107","name":"乔官镇"},{"code":"370725108","name":"唐吾镇"},{"code":"370725110","name":"红河镇"},{"code":"370725116","name":"营丘镇"}]},{"code":"370772","name":"潍坊滨海经济技术开发区","children":[{"code":"370772004","name":"央子街道"},{"code":"370772005","name":"大家洼街道"}]},{"code":"370781","name":"青州市","children":[{"code":"370781001","name":"王府街道"},{"code":"370781002","name":"益都街道"},{"code":"370781006","name":"云门山街道"},{"code":"370781007","name":"黄楼街道"},{"code":"370781100","name":"弥河镇"},{"code":"370781101","name":"王坟镇"},{"code":"370781103","name":"庙子镇"},{"code":"370781105","name":"邵庄镇"},{"code":"370781109","name":"高柳镇"},{"code":"370781111","name":"何官镇"},{"code":"370781113","name":"东夏镇"},{"code":"370781115","name":"谭坊镇"},{"code":"370781400","name":"王母宫经济发展区"}]},{"code":"370782","name":"诸城市","children":[{"code":"370782001","name":"密州街道"},{"code":"370782002","name":"龙都街道"},{"code":"370782003","name":"舜王街道"},{"code":"370782101","name":"枳沟镇"},{"code":"370782102","name":"贾悦镇"},{"code":"370782105","name":"石桥子镇"},{"code":"370782108","name":"相州镇"},{"code":"370782110","name":"昌城镇"},{"code":"370782111","name":"百尺河镇"},{"code":"370782112","name":"辛兴镇"},{"code":"370782114","name":"林家村镇"},{"code":"370782117","name":"皇华镇"},{"code":"370782118","name":"桃林镇"},{"code":"370782400","name":"诸城经济开发区管理委员会"}]},{"code":"370783","name":"寿光市","children":[{"code":"370783001","name":"圣城街道"},{"code":"370783003","name":"文家街道"},{"code":"370783004","name":"古城街道"},{"code":"370783005","name":"洛城街道"},{"code":"370783006","name":"孙家集街道"},{"code":"370783100","name":"化龙镇"},{"code":"370783103","name":"营里镇"},{"code":"370783104","name":"台头镇"},{"code":"370783106","name":"田柳镇"},{"code":"370783108","name":"上口镇"},{"code":"370783109","name":"侯镇"},{"code":"370783111","name":"纪台镇"},{"code":"370783112","name":"稻田镇"},{"code":"370783115","name":"羊口镇"},{"code":"370783400","name":"双王城生态经济园区管委会"}]},{"code":"370784","name":"安丘市","children":[{"code":"370784001","name":"兴安街道"},{"code":"370784003","name":"新安街道"},{"code":"370784004","name":"凌河街道"},{"code":"370784100","name":"景芝镇"},{"code":"370784104","name":"官庄镇"},{"code":"370784107","name":"大盛镇"},{"code":"370784111","name":"石埠子镇"},{"code":"370784112","name":"石堆镇"},{"code":"370784118","name":"柘山镇"},{"code":"370784119","name":"辉渠镇"},{"code":"370784120","name":"吾山镇"},{"code":"370784121","name":"金冢子镇"}]},{"code":"370785","name":"高密市","children":[{"code":"370785001","name":"高密市朝阳街道"},{"code":"370785002","name":"高密市醴泉街道"},{"code":"370785003","name":"高密市密水街道"},{"code":"370785100","name":"柏城镇"},{"code":"370785103","name":"夏庄镇"},{"code":"370785104","name":"姜庄镇"},{"code":"370785106","name":"大牟家镇"},{"code":"370785109","name":"阚家镇"},{"code":"370785111","name":"井沟镇"},{"code":"370785114","name":"柴沟镇"}]},{"code":"370786","name":"昌邑市","children":[{"code":"370786001","name":"奎聚街道"},{"code":"370786002","name":"都昌街道"},{"code":"370786003","name":"围子街道"},{"code":"370786101","name":"柳疃镇"},{"code":"370786102","name":"龙池镇"},{"code":"370786104","name":"卜庄镇"},{"code":"370786108","name":"饮马镇"},{"code":"370786109","name":"北孟镇"},{"code":"370786112","name":"下营镇"}]}]},{"code":"3708","name":"济宁市","children":[{"code":"370811","name":"任城区","children":[{"code":"370811002","name":"许庄街道"},{"code":"370811005","name":"李营街道"},{"code":"370811006","name":"南张街道"},{"code":"370811007","name":"仙营街道"},{"code":"370811008","name":"金城街道"},{"code":"370811009","name":"廿里铺街道"},{"code":"370811011","name":"古槐街道"},{"code":"370811012","name":"济阳街道"},{"code":"370811013","name":"阜桥街道"},{"code":"370811014","name":"越河街道"},{"code":"370811015","name":"观音阁街道"},{"code":"370811016","name":"南苑街道"},{"code":"370811017","name":"安居街道"},{"code":"370811018","name":"唐口街道"},{"code":"370811102","name":"长沟镇"},{"code":"370811109","name":"石桥镇"},{"code":"370811111","name":"喻屯镇"},{"code":"370811401","name":"济东物业服务中心"}]},{"code":"370812","name":"兖州区","children":[{"code":"370812001","name":"鼓楼街道"},{"code":"370812003","name":"龙桥街道"},{"code":"370812006","name":"酒仙桥街道"},{"code":"370812007","name":"兴隆庄街道"},{"code":"370812101","name":"大安镇"},{"code":"370812102","name":"新驿镇"},{"code":"370812103","name":"颜店镇"},{"code":"370812105","name":"新兖镇"},{"code":"370812107","name":"漕河镇"},{"code":"370812111","name":"小孟镇"}]},{"code":"370826","name":"微山县","children":[{"code":"370826001","name":"夏镇街道"},{"code":"370826002","name":"昭阳街道"},{"code":"370826003","name":"傅村街道"},{"code":"370826101","name":"韩庄镇"},{"code":"370826102","name":"欢城镇"},{"code":"370826103","name":"南阳镇"},{"code":"370826104","name":"鲁桥镇"},{"code":"370826106","name":"留庄镇"},{"code":"370826107","name":"两城镇"},{"code":"370826108","name":"马坡镇"},{"code":"370826109","name":"赵庙镇"},{"code":"370826110","name":"张楼镇"},{"code":"370826111","name":"微山岛镇"},{"code":"370826112","name":"西平镇"},{"code":"370826206","name":"高楼乡"}]},{"code":"370827","name":"鱼台县","children":[{"code":"370827001","name":"谷亭街道"},{"code":"370827002","name":"滨湖街道"},{"code":"370827101","name":"清河镇"},{"code":"370827102","name":"鱼城镇"},{"code":"370827103","name":"王鲁镇"},{"code":"370827104","name":"张黄镇"},{"code":"370827105","name":"王庙镇"},{"code":"370827106","name":"李阁镇"},{"code":"370827107","name":"唐马镇"},{"code":"370827108","name":"老砦镇"},{"code":"370827109","name":"罗屯镇"}]},{"code":"370828","name":"金乡县","children":[{"code":"370828001","name":"金乡街道"},{"code":"370828002","name":"高河街道"},{"code":"370828003","name":"鱼山街道"},{"code":"370828004","name":"王丕街道"},{"code":"370828101","name":"羊山镇"},{"code":"370828102","name":"胡集镇"},{"code":"370828103","name":"霄云镇"},{"code":"370828104","name":"鸡黍镇"},{"code":"370828107","name":"司马镇"},{"code":"370828109","name":"马庙镇"},{"code":"370828110","name":"化雨镇"},{"code":"370828111","name":"卜集镇"},{"code":"370828112","name":"兴隆镇"}]},{"code":"370829","name":"嘉祥县","children":[{"code":"370829001","name":"嘉祥镇街道"},{"code":"370829002","name":"卧龙山街道"},{"code":"370829003","name":"万张街道"},{"code":"370829101","name":"纸坊镇"},{"code":"370829102","name":"梁宝寺镇"},{"code":"370829104","name":"疃里镇"},{"code":"370829105","name":"马村镇"},{"code":"370829106","name":"金屯镇"},{"code":"370829107","name":"大张楼镇"},{"code":"370829108","name":"马集镇"},{"code":"370829110","name":"孟姑集镇"},{"code":"370829111","name":"老僧堂镇"},{"code":"370829112","name":"仲山镇"},{"code":"370829113","name":"满硐镇"},{"code":"370829114","name":"黄垓镇"},{"code":"370829400","name":"嘉祥经济开发区管理委员会"}]},{"code":"370830","name":"汶上县","children":[{"code":"370830001","name":"中都街道"},{"code":"370830002","name":"汶上街道"},{"code":"370830003","name":"南站街道"},{"code":"370830102","name":"南旺镇"},{"code":"370830103","name":"次邱镇"},{"code":"370830104","name":"寅寺镇"},{"code":"370830105","name":"郭楼镇"},{"code":"370830106","name":"康驿镇"},{"code":"370830107","name":"苑庄镇"},{"code":"370830108","name":"义桥镇"},{"code":"370830109","name":"郭仓镇"},{"code":"370830110","name":"白石镇"},{"code":"370830111","name":"杨店镇"},{"code":"370830112","name":"刘楼镇"},{"code":"370830205","name":"军屯乡"}]},{"code":"370831","name":"泗水县","children":[{"code":"370831001","name":"泗河街道"},{"code":"370831002","name":"济河街道"},{"code":"370831101","name":"泉林镇"},{"code":"370831102","name":"星村镇"},{"code":"370831103","name":"柘沟镇"},{"code":"370831104","name":"金庄镇"},{"code":"370831105","name":"苗馆镇"},{"code":"370831106","name":"中册镇"},{"code":"370831107","name":"杨柳镇"},{"code":"370831108","name":"泗张镇"},{"code":"370831109","name":"圣水峪镇"},{"code":"370831110","name":"高峪镇"},{"code":"370831111","name":"华村镇"}]},{"code":"370832","name":"梁山县","children":[{"code":"370832001","name":"水泊街道"},{"code":"370832002","name":"梁山街道"},{"code":"370832101","name":"小路口镇"},{"code":"370832102","name":"韩岗镇"},{"code":"370832104","name":"拳铺镇"},{"code":"370832105","name":"杨营镇"},{"code":"370832106","name":"韩垓镇"},{"code":"370832107","name":"馆驿镇"},{"code":"370832108","name":"小安山镇"},{"code":"370832109","name":"寿张集镇"},{"code":"370832110","name":"黑虎庙镇"},{"code":"370832111","name":"马营镇"},{"code":"370832215","name":"赵堌堆乡"},{"code":"370832217","name":"大路口乡"}]},{"code":"370871","name":"济宁高新技术产业开发区","children":[{"code":"370871001","name":"洸河街道"},{"code":"370871002","name":"柳行街道"},{"code":"370871003","name":"接庄街道"},{"code":"370871004","name":"王因街道"},{"code":"370871005","name":"黄屯街道"}]},{"code":"370881","name":"曲阜市","children":[{"code":"370881001","name":"鲁城街道"},{"code":"370881002","name":"书院街道"},{"code":"370881003","name":"时庄街道"},{"code":"370881004","name":"小雪街道"},{"code":"370881101","name":"吴村镇"},{"code":"370881102","name":"姚村镇"},{"code":"370881103","name":"陵城镇"},{"code":"370881105","name":"尼山镇"},{"code":"370881108","name":"王庄镇"},{"code":"370881109","name":"息陬镇"},{"code":"370881110","name":"石门山镇"},{"code":"370881111","name":"防山镇"}]},{"code":"370883","name":"邹城市","children":[{"code":"370883001","name":"钢山街道"},{"code":"370883002","name":"千泉街道"},{"code":"370883003","name":"凫山街道"},{"code":"370883101","name":"香城镇"},{"code":"370883102","name":"城前镇"},{"code":"370883103","name":"大束镇"},{"code":"370883104","name":"北宿镇"},{"code":"370883105","name":"中心店镇"},{"code":"370883106","name":"唐村镇"},{"code":"370883107","name":"太平镇"},{"code":"370883109","name":"石墙镇"},{"code":"370883110","name":"峄山镇"},{"code":"370883111","name":"看庄镇"},{"code":"370883112","name":"张庄镇"},{"code":"370883113","name":"田黄镇"},{"code":"370883114","name":"郭里镇"}]}]},{"code":"3709","name":"泰安市","children":[{"code":"370902","name":"泰山区","children":[{"code":"370902001","name":"岱庙街道"},{"code":"370902002","name":"财源街道"},{"code":"370902003","name":"泰前街道"},{"code":"370902004","name":"上高街道"},{"code":"370902005","name":"徐家楼街道"},{"code":"370902100","name":"省庄镇"},{"code":"370902101","name":"邱家店镇"},{"code":"370902202","name":"大津口乡"}]},{"code":"370911","name":"岱岳区","children":[{"code":"370911001","name":"粥店街道"},{"code":"370911002","name":"天平街道"},{"code":"370911003","name":"北集坡街道"},{"code":"370911100","name":"山口镇"},{"code":"370911101","name":"祝阳镇"},{"code":"370911102","name":"范镇"},{"code":"370911103","name":"角峪镇"},{"code":"370911104","name":"徂徕镇"},{"code":"370911106","name":"满庄镇"},{"code":"370911107","name":"夏张镇"},{"code":"370911108","name":"道朗镇"},{"code":"370911109","name":"黄前镇"},{"code":"370911110","name":"大汶口镇"},{"code":"370911111","name":"马庄镇"},{"code":"370911112","name":"房村镇"},{"code":"370911113","name":"良庄镇"},{"code":"370911114","name":"下港镇"},{"code":"370911201","name":"化马湾乡"}]},{"code":"370921","name":"宁阳县","children":[{"code":"370921001","name":"文庙街道"},{"code":"370921002","name":"八仙桥街道"},{"code":"370921101","name":"泗店镇"},{"code":"370921102","name":"东疏镇"},{"code":"370921103","name":"伏山镇"},{"code":"370921105","name":"堽城镇"},{"code":"370921107","name":"蒋集镇"},{"code":"370921109","name":"磁窑镇"},{"code":"370921110","name":"华丰镇"},{"code":"370921111","name":"葛石镇"},{"code":"370921112","name":"东庄镇"},{"code":"370921113","name":"鹤山镇"},{"code":"370921206","name":"乡饮乡"}]},{"code":"370923","name":"东平县","children":[{"code":"370923001","name":"东平街道地区"},{"code":"370923002","name":"州城街道地区"},{"code":"370923003","name":"彭集街道地区"},{"code":"370923101","name":"沙河站镇"},{"code":"370923106","name":"老湖镇"},{"code":"370923107","name":"银山镇"},{"code":"370923108","name":"斑鸠店镇"},{"code":"370923109","name":"接山镇"},{"code":"370923110","name":"大羊镇"},{"code":"370923111","name":"梯门镇"},{"code":"370923112","name":"新湖镇"},{"code":"370923113","name":"戴庙镇"},{"code":"370923206","name":"商老庄乡"},{"code":"370923208","name":"旧县乡"}]},{"code":"370982","name":"新泰市","children":[{"code":"370982001","name":"青云街道"},{"code":"370982002","name":"新汶街道"},{"code":"370982003","name":"新甫街道"},{"code":"370982101","name":"东都镇"},{"code":"370982102","name":"小协镇"},{"code":"370982103","name":"翟镇"},{"code":"370982104","name":"泉沟镇"},{"code":"370982105","name":"羊流镇"},{"code":"370982106","name":"果都镇"},{"code":"370982107","name":"西张庄镇"},{"code":"370982108","name":"天宝镇"},{"code":"370982110","name":"楼德镇"},{"code":"370982111","name":"禹村镇"},{"code":"370982112","name":"宫里镇"},{"code":"370982113","name":"谷里镇"},{"code":"370982114","name":"石莱镇"},{"code":"370982115","name":"放城镇"},{"code":"370982116","name":"刘杜镇"},{"code":"370982117","name":"汶南镇"},{"code":"370982119","name":"龙廷镇"},{"code":"370982203","name":"岳家庄乡"}]},{"code":"370983","name":"肥城市","children":[{"code":"370983001","name":"新城街道"},{"code":"370983002","name":"老城街道"},{"code":"370983003","name":"王瓜店街道"},{"code":"370983004","name":"仪阳街道"},{"code":"370983101","name":"潮泉镇"},{"code":"370983103","name":"桃园镇"},{"code":"370983104","name":"王庄镇"},{"code":"370983105","name":"湖屯镇"},{"code":"370983106","name":"石横镇"},{"code":"370983107","name":"安临站镇"},{"code":"370983108","name":"孙伯镇"},{"code":"370983109","name":"安驾庄镇"},{"code":"370983110","name":"汶阳镇"},{"code":"370983111","name":"边院镇"}]}]},{"code":"3710","name":"威海市","children":[{"code":"371002","name":"环翠区","children":[{"code":"371002001","name":"环翠楼街道"},{"code":"371002002","name":"鲸园街道"},{"code":"371002003","name":"竹岛街道"},{"code":"371002011","name":"孙家疃街道"},{"code":"371002012","name":"嵩山街道"},{"code":"371002100","name":"张村镇"},{"code":"371002101","name":"羊亭镇"},{"code":"371002102","name":"温泉镇"},{"code":"371002109","name":"桥头镇"}]},{"code":"371003","name":"文登区","children":[{"code":"371003001","name":"龙山路街道"},{"code":"371003002","name":"天福路街道"},{"code":"371003003","name":"环山路街道"},{"code":"371003100","name":"文登营镇"},{"code":"371003101","name":"大水泊镇"},{"code":"371003102","name":"张家产镇"},{"code":"371003103","name":"高村镇"},{"code":"371003104","name":"泽库镇"},{"code":"371003105","name":"侯家镇"},{"code":"371003106","name":"宋村镇"},{"code":"371003107","name":"泽头镇"},{"code":"371003108","name":"小观镇"},{"code":"371003109","name":"葛家镇"},{"code":"371003110","name":"米山镇"},{"code":"371003111","name":"界石镇"},{"code":"371003400","name":"开发区"}]},{"code":"371071","name":"威海火炬高技术产业开发区","children":[{"code":"371071004","name":"怡园街道"},{"code":"371071007","name":"田和街道"},{"code":"371071108","name":"初村镇"}]},{"code":"371072","name":"威海经济技术开发区","children":[{"code":"371072008","name":"皇冠街道"},{"code":"371072009","name":"凤林街道"},{"code":"371072010","name":"西苑街道"},{"code":"371072103","name":"崮山镇"},{"code":"371072105","name":"泊于镇"}]},{"code":"371073","name":"威海临港经济技术开发区","children":[{"code":"371073107","name":"草庙子镇"},{"code":"371073112","name":"汪疃镇"},{"code":"371073113","name":"苘山镇"}]},{"code":"371082","name":"荣成市","children":[{"code":"371082001","name":"宁津街道"},{"code":"371082002","name":"港湾街道"},{"code":"371082003","name":"桃园街道"},{"code":"371082004","name":"王连街道"},{"code":"371082005","name":"东山街道"},{"code":"371082006","name":"斥山街道"},{"code":"371082007","name":"崖头街道"},{"code":"371082008","name":"城西街道"},{"code":"371082009","name":"寻山街道"},{"code":"371082010","name":"崂山街道"},{"code":"371082101","name":"俚岛镇"},{"code":"371082102","name":"成山镇"},{"code":"371082103","name":"埠柳镇"},{"code":"371082104","name":"港西镇"},{"code":"371082105","name":"夏庄镇"},{"code":"371082106","name":"崖西镇"},{"code":"371082107","name":"荫子镇"},{"code":"371082108","name":"滕家镇"},{"code":"371082109","name":"大疃镇"},{"code":"371082110","name":"上庄镇"},{"code":"371082111","name":"虎山镇"},{"code":"371082112","name":"人和镇"}]},{"code":"371083","name":"乳山市","children":[{"code":"371083001","name":"城区街道"},{"code":"371083100","name":"夏村镇"},{"code":"371083101","name":"乳山口镇"},{"code":"371083102","name":"海阳所镇"},{"code":"371083103","name":"白沙滩镇"},{"code":"371083104","name":"大孤山镇"},{"code":"371083105","name":"南黄镇"},{"code":"371083106","name":"冯家镇"},{"code":"371083107","name":"下初镇"},{"code":"371083108","name":"午极镇"},{"code":"371083109","name":"育黎镇"},{"code":"371083110","name":"崖子镇"},{"code":"371083111","name":"诸往镇"},{"code":"371083112","name":"乳山寨镇"},{"code":"371083114","name":"徐家镇"}]}]},{"code":"3711","name":"日照市","children":[{"code":"371102","name":"东港区","children":[{"code":"371102001","name":"日照街道"},{"code":"371102002","name":"石臼街道"},{"code":"371102004","name":"秦楼街道"},{"code":"371102008","name":"卧龙山街道"},{"code":"371102009","name":"两城街道"},{"code":"371102100","name":"河山镇"},{"code":"371102104","name":"后村镇"},{"code":"371102106","name":"西湖镇"},{"code":"371102107","name":"陈疃镇"},{"code":"371102108","name":"南湖镇"},{"code":"371102109","name":"三庄镇"},{"code":"371102110","name":"涛雒镇"}]},{"code":"371103","name":"岚山区","children":[{"code":"371103001","name":"岚山头街道"},{"code":"371103002","name":"安东卫街道"},{"code":"371103100","name":"碑廓镇"},{"code":"371103101","name":"虎山镇"},{"code":"371103102","name":"巨峰镇"},{"code":"371103103","name":"高兴镇"},{"code":"371103105","name":"黄墩镇"},{"code":"371103108","name":"中楼镇"},{"code":"371103200","name":"前三岛乡"}]},{"code":"371121","name":"五莲县","children":[{"code":"371121001","name":"洪凝街道"},{"code":"371121002","name":"高泽街道"},{"code":"371121102","name":"街头镇"},{"code":"371121103","name":"潮河镇"},{"code":"371121104","name":"许孟镇"},{"code":"371121105","name":"于里镇"},{"code":"371121106","name":"汪湖镇"},{"code":"371121107","name":"叩官镇"},{"code":"371121108","name":"中至镇"},{"code":"371121110","name":"松柏镇"},{"code":"371121201","name":"石场乡"},{"code":"371121202","name":"户部乡"}]},{"code":"371122","name":"莒县","children":[{"code":"371122001","name":"城阳街道"},{"code":"371122002","name":"店子集街道"},{"code":"371122003","name":"陵阳街道"},{"code":"371122004","name":"浮来山街道"},{"code":"371122005","name":"阎庄街道"},{"code":"371122102","name":"招贤镇"},{"code":"371122104","name":"夏庄镇"},{"code":"371122105","name":"刘官庄镇"},{"code":"371122106","name":"峤山镇"},{"code":"371122107","name":"小店镇"},{"code":"371122109","name":"龙山镇"},{"code":"371122110","name":"东莞镇"},{"code":"371122114","name":"长岭镇"},{"code":"371122115","name":"安庄镇"},{"code":"371122116","name":"棋山镇"},{"code":"371122117","name":"洛河镇"},{"code":"371122118","name":"寨里河镇"},{"code":"371122119","name":"桑园镇"},{"code":"371122120","name":"果庄镇"},{"code":"371122206","name":"库山乡"},{"code":"371122400","name":"莒县经济开发区"}]},{"code":"371171","name":"日照经济技术开发区","children":[{"code":"371171003","name":"奎山街道"},{"code":"371171007","name":"北京路街道"}]}]},{"code":"3713","name":"临沂市","children":[{"code":"371302","name":"兰山区","children":[{"code":"371302001","name":"兰山街道"},{"code":"371302002","name":"银雀山街道"},{"code":"371302003","name":"金雀山街道"},{"code":"371302004","name":"柳青街道"},{"code":"371302101","name":"白沙埠镇"},{"code":"371302102","name":"枣园镇"},{"code":"371302103","name":"半程镇"},{"code":"371302105","name":"义堂镇"},{"code":"371302107","name":"李官镇"},{"code":"371302109","name":"方城镇"},{"code":"371302110","name":"汪沟镇"}]},{"code":"371311","name":"罗庄区","children":[{"code":"371311001","name":"罗庄街道"},{"code":"371311002","name":"傅庄街道"},{"code":"371311003","name":"盛庄街道"},{"code":"371311006","name":"册山街道"},{"code":"371311007","name":"高都街道"},{"code":"371311100","name":"沂堂镇"},{"code":"371311101","name":"褚墩镇"},{"code":"371311102","name":"黄山镇"}]},{"code":"371312","name":"河东区","children":[{"code":"371312001","name":"九曲街道"},{"code":"371312004","name":"相公街道"},{"code":"371312005","name":"太平街道"},{"code":"371312006","name":"汤头街道"},{"code":"371312007","name":"凤凰岭街道"},{"code":"371312009","name":"芝麻墩街道"},{"code":"371312010","name":"梅家埠街道"},{"code":"371312011","name":"朝阳街道"},{"code":"371312104","name":"汤河镇"},{"code":"371312107","name":"八湖镇"},{"code":"371312108","name":"郑旺镇"}]},{"code":"371321","name":"沂南县","children":[{"code":"371321001","name":"界湖街道"},{"code":"371321101","name":"岸堤镇"},{"code":"371321102","name":"孙祖镇"},{"code":"371321103","name":"双堠镇"},{"code":"371321104","name":"青驼镇"},{"code":"371321105","name":"张庄镇"},{"code":"371321106","name":"砖埠镇"},{"code":"371321109","name":"大庄镇"},{"code":"371321110","name":"辛集镇"},{"code":"371321111","name":"蒲汪镇"},{"code":"371321112","name":"湖头镇"},{"code":"371321113","name":"苏村镇"},{"code":"371321114","name":"铜井镇"},{"code":"371321115","name":"依汶镇"},{"code":"371321201","name":"马牧池乡"}]},{"code":"371322","name":"郯城县","children":[{"code":"371322001","name":"郯城街道"},{"code":"371322101","name":"马头镇"},{"code":"371322102","name":"重坊镇"},{"code":"371322103","name":"李庄镇"},{"code":"371322105","name":"杨集镇"},{"code":"371322107","name":"港上镇"},{"code":"371322108","name":"高峰头镇"},{"code":"371322109","name":"庙山镇"},{"code":"371322111","name":"红花镇"},{"code":"371322112","name":"胜利镇"},{"code":"371322113","name":"花园镇"},{"code":"371322114","name":"泉源镇"},{"code":"371322203","name":"归昌乡"}]},{"code":"371323","name":"沂水县","children":[{"code":"371323001","name":"沂城街道"},{"code":"371323002","name":"龙家圈街道"},{"code":"371323101","name":"马站镇"},{"code":"371323102","name":"高桥镇"},{"code":"371323103","name":"许家湖镇"},{"code":"371323104","name":"黄山铺镇"},{"code":"371323106","name":"诸葛镇"},{"code":"371323107","name":"崔家峪镇"},{"code":"371323108","name":"四十里堡镇"},{"code":"371323109","name":"杨庄镇"},{"code":"371323110","name":"夏蔚镇"},{"code":"371323111","name":"沙沟镇"},{"code":"371323112","name":"高庄镇"},{"code":"371323113","name":"院东头镇"},{"code":"371323115","name":"富官庄镇"},{"code":"371323116","name":"道托镇"},{"code":"371323117","name":"泉庄镇"},{"code":"371323201","name":"圈里乡"}]},{"code":"371324","name":"兰陵县","children":[{"code":"371324001","name":"卞庄街道"},{"code":"371324002","name":"苍山街道"},{"code":"371324101","name":"大仲村镇"},{"code":"371324102","name":"兰陵镇"},{"code":"371324103","name":"长城镇"},{"code":"371324104","name":"磨山镇"},{"code":"371324105","name":"神山镇"},{"code":"371324106","name":"车辋镇"},{"code":"371324107","name":"尚岩镇"},{"code":"371324108","name":"向城镇"},{"code":"371324109","name":"新兴镇"},{"code":"371324110","name":"南桥镇"},{"code":"371324112","name":"庄坞镇"},{"code":"371324114","name":"鲁城镇"},{"code":"371324115","name":"矿坑镇"},{"code":"371324117","name":"芦柞镇"},{"code":"371324202","name":"下村乡"}]},{"code":"371325","name":"费县","children":[{"code":"371325001","name":"费城街道"},{"code":"371325101","name":"上冶镇"},{"code":"371325102","name":"薛庄镇"},{"code":"371325105","name":"探沂镇"},{"code":"371325106","name":"朱田镇"},{"code":"371325107","name":"梁邱镇"},{"code":"371325108","name":"新庄镇"},{"code":"371325109","name":"马庄镇"},{"code":"371325112","name":"胡阳镇"},{"code":"371325113","name":"石井镇"},{"code":"371325115","name":"东蒙镇"},{"code":"371325200","name":"大田庄乡"}]},{"code":"371326","name":"平邑县","children":[{"code":"371326001","name":"平邑街道"},{"code":"371326101","name":"仲村镇"},{"code":"371326102","name":"武台镇"},{"code":"371326103","name":"保太镇"},{"code":"371326104","name":"柏林镇"},{"code":"371326105","name":"卞桥镇"},{"code":"371326106","name":"地方镇"},{"code":"371326107","name":"铜石镇"},{"code":"371326108","name":"温水镇"},{"code":"371326109","name":"流峪镇"},{"code":"371326110","name":"郑城镇"},{"code":"371326111","name":"白彦镇"},{"code":"371326112","name":"临涧镇"},{"code":"371326113","name":"丰阳镇"}]},{"code":"371327","name":"莒南县","children":[{"code":"371327001","name":"十字路街道"},{"code":"371327102","name":"大店镇"},{"code":"371327103","name":"坊前镇"},{"code":"371327106","name":"板泉镇"},{"code":"371327107","name":"洙边镇"},{"code":"371327108","name":"文疃镇"},{"code":"371327111","name":"石莲子镇"},{"code":"371327112","name":"岭泉镇"},{"code":"371327113","name":"筵宾镇"},{"code":"371327114","name":"涝坡镇"},{"code":"371327116","name":"道口镇"},{"code":"371327117","name":"相沟镇"},{"code":"371327118","name":"团林镇"},{"code":"371327119","name":"坪上镇"},{"code":"371327120","name":"壮岗镇"},{"code":"371327121","name":"朱芦镇"}]},{"code":"371328","name":"蒙阴县","children":[{"code":"371328001","name":"蒙阴街道"},{"code":"371328101","name":"常路镇"},{"code":"371328102","name":"岱崮镇"},{"code":"371328103","name":"坦埠镇"},{"code":"371328104","name":"垛庄镇"},{"code":"371328105","name":"高都镇"},{"code":"371328106","name":"野店镇"},{"code":"371328107","name":"桃墟镇"},{"code":"371328109","name":"联城镇"},{"code":"371328201","name":"旧寨乡"}]},{"code":"371329","name":"临沭县","children":[{"code":"371329001","name":"临沭街道"},{"code":"371329002","name":"郑山街道"},{"code":"371329101","name":"蛟龙镇"},{"code":"371329102","name":"大兴镇"},{"code":"371329103","name":"石门镇"},{"code":"371329104","name":"曹庄镇"},{"code":"371329108","name":"青云镇"},{"code":"371329109","name":"玉山镇"},{"code":"371329110","name":"店头镇"}]},{"code":"371371","name":"临沂高新技术产业开发区","children":[{"code":"371371001","name":"罗西街道"},{"code":"371371100","name":"马厂湖镇"}]}]},{"code":"3714","name":"德州市","children":[{"code":"371402","name":"德城区","children":[{"code":"371402001","name":"新湖街道"},{"code":"371402002","name":"新华街道"},{"code":"371402003","name":"天衢街道"},{"code":"371402006","name":"广川街道"},{"code":"371402009","name":"运河街道"},{"code":"371402100","name":"二屯镇"},{"code":"371402101","name":"黄河涯镇"}]},{"code":"371403","name":"陵城区","children":[{"code":"371403001","name":"安德街道"},{"code":"371403002","name":"临齐街道"},{"code":"371403101","name":"郑家寨镇"},{"code":"371403102","name":"糜镇"},{"code":"371403103","name":"宋家镇"},{"code":"371403104","name":"徽王庄镇"},{"code":"371403105","name":"神头镇"},{"code":"371403106","name":"滋镇"},{"code":"371403107","name":"前孙镇"},{"code":"371403108","name":"边临镇"},{"code":"371403109","name":"义渡口镇"},{"code":"371403110","name":"丁庄镇"},{"code":"371403202","name":"于集乡"}]},{"code":"371422","name":"宁津县","children":[{"code":"371422001","name":"宁城街道"},{"code":"371422002","name":"津城街道"},{"code":"371422101","name":"柴胡店镇"},{"code":"371422102","name":"长官镇"},{"code":"371422103","name":"杜集镇"},{"code":"371422104","name":"保店镇"},{"code":"371422105","name":"大柳镇"},{"code":"371422106","name":"大曹镇"},{"code":"371422107","name":"相衙镇"},{"code":"371422108","name":"时集镇"},{"code":"371422109","name":"张大庄镇"},{"code":"371422201","name":"刘营伍乡"}]},{"code":"371423","name":"庆云县","children":[{"code":"371423001","name":"渤海路街道"},{"code":"371423100","name":"庆云镇"},{"code":"371423101","name":"常家镇"},{"code":"371423102","name":"尚堂镇"},{"code":"371423103","name":"崔口镇"},{"code":"371423104","name":"东辛店镇"},{"code":"371423200","name":"严务乡"},{"code":"371423202","name":"中丁乡"},{"code":"371423203","name":"徐园子乡"}]},{"code":"371424","name":"临邑县","children":[{"code":"371424001","name":"邢侗街道"},{"code":"371424002","name":"恒源街道"},{"code":"371424003","name":"临盘街道"},{"code":"371424100","name":"临邑镇"},{"code":"371424102","name":"临南镇"},{"code":"371424103","name":"德平镇"},{"code":"371424104","name":"林子镇"},{"code":"371424105","name":"兴隆镇"},{"code":"371424106","name":"孟寺镇"},{"code":"371424107","name":"翟家镇"},{"code":"371424108","name":"理合务镇"},{"code":"371424202","name":"宿安乡"}]},{"code":"371425","name":"齐河县","children":[{"code":"371425001","name":"晏城街道"},{"code":"371425002","name":"晏北街道"},{"code":"371425101","name":"表白寺镇"},{"code":"371425102","name":"焦庙镇"},{"code":"371425103","name":"赵官镇"},{"code":"371425104","name":"祝阿镇"},{"code":"371425105","name":"仁里集镇"},{"code":"371425106","name":"潘店镇"},{"code":"371425107","name":"胡官屯镇"},{"code":"371425108","name":"宣章屯镇"},{"code":"371425109","name":"马集镇"},{"code":"371425110","name":"华店镇"},{"code":"371425111","name":"刘桥镇"},{"code":"371425201","name":"安头乡"},{"code":"371425204","name":"大黄乡"}]},{"code":"371426","name":"平原县","children":[{"code":"371426001","name":"龙门街道"},{"code":"371426002","name":"桃园街道"},{"code":"371426003","name":"德原街道"},{"code":"371426101","name":"王凤楼镇"},{"code":"371426102","name":"前曹镇"},{"code":"371426103","name":"恩城镇"},{"code":"371426104","name":"王庙镇"},{"code":"371426105","name":"王杲铺镇"},{"code":"371426106","name":"张华镇"},{"code":"371426107","name":"腰站镇"},{"code":"371426108","name":"王打卦镇"},{"code":"371426202","name":"三唐乡"}]},{"code":"371427","name":"夏津县","children":[{"code":"371427001","name":"银城街道"},{"code":"371427002","name":"北城街道"},{"code":"371427100","name":"南城镇"},{"code":"371427101","name":"苏留庄镇"},{"code":"371427102","name":"新盛店镇"},{"code":"371427103","name":"雷集镇"},{"code":"371427104","name":"郑保屯镇"},{"code":"371427105","name":"白马湖镇"},{"code":"371427106","name":"东李官屯镇"},{"code":"371427107","name":"宋楼镇"},{"code":"371427108","name":"香赵庄镇"},{"code":"371427109","name":"双庙镇"},{"code":"371427200","name":"渡口驿乡"},{"code":"371427204","name":"田庄乡"}]},{"code":"371428","name":"武城县","children":[{"code":"371428001","name":"广运街道"},{"code":"371428100","name":"武城镇"},{"code":"371428101","name":"老城镇"},{"code":"371428103","name":"鲁权屯镇"},{"code":"371428104","name":"郝王庄镇"},{"code":"371428106","name":"甲马营镇"},{"code":"371428107","name":"四女寺镇"},{"code":"371428108","name":"李家户镇"}]},{"code":"371471","name":"德州经济技术开发区","children":[{"code":"371471007","name":"长河街道"},{"code":"371471008","name":"宋官屯街道"},{"code":"371471108","name":"袁桥镇"}]},{"code":"371472","name":"德州运河经济开发区","children":[{"code":"371472100","name":"赵虎镇"},{"code":"371472101","name":"抬头寺镇"},{"code":"371472400","name":"新区服务管理办公室"}]},{"code":"371481","name":"乐陵市","children":[{"code":"371481001","name":"市中街道"},{"code":"371481002","name":"胡家街道"},{"code":"371481003","name":"云红街道"},{"code":"371481004","name":"郭家街道"},{"code":"371481100","name":"杨安镇"},{"code":"371481101","name":"朱集镇"},{"code":"371481102","name":"黄夹镇"},{"code":"371481103","name":"丁坞镇"},{"code":"371481104","name":"花园镇"},{"code":"371481105","name":"郑店镇"},{"code":"371481106","name":"化楼镇"},{"code":"371481107","name":"孔镇"},{"code":"371481108","name":"铁营镇"},{"code":"371481200","name":"西段乡"},{"code":"371481201","name":"大孙乡"},{"code":"371481203","name":"寨头堡乡"}]},{"code":"371482","name":"禹城市","children":[{"code":"371482001","name":"市中街道"},{"code":"371482002","name":"禹兴街道"},{"code":"371482100","name":"伦镇"},{"code":"371482101","name":"房寺镇"},{"code":"371482102","name":"张庄镇"},{"code":"371482103","name":"辛店镇"},{"code":"371482104","name":"安仁镇"},{"code":"371482105","name":"辛寨镇"},{"code":"371482106","name":"梁家镇"},{"code":"371482107","name":"十里望回族镇"},{"code":"371482108","name":"莒镇"}]}]},{"code":"3715","name":"聊城市","children":[{"code":"371502","name":"东昌府区","children":[{"code":"371502001","name":"古楼街道"},{"code":"371502002","name":"柳园街道"},{"code":"371502003","name":"新区街道"},{"code":"371502004","name":"湖西街道"},{"code":"371502005","name":"道口铺街道"},{"code":"371502006","name":"闫寺街道"},{"code":"371502008","name":"北城街道"},{"code":"371502009","name":"东城街道"},{"code":"371502010","name":"蒋官屯街道"},{"code":"371502011","name":"李海务街道"},{"code":"371502100","name":"侯营镇"},{"code":"371502101","name":"沙镇镇"},{"code":"371502102","name":"堂邑镇"},{"code":"371502103","name":"梁水镇"},{"code":"371502104","name":"斗虎屯镇"},{"code":"371502105","name":"郑家镇"},{"code":"371502106","name":"张炉集镇"},{"code":"371502107","name":"于集镇"},{"code":"371502108","name":"许营镇"},{"code":"371502109","name":"朱老庄镇"},{"code":"371502110","name":"顾官屯镇"},{"code":"371502115","name":"韩集镇"},{"code":"371502116","name":"广平镇"},{"code":"371502400","name":"香江光彩大市场服务中心"}]},{"code":"371503","name":"茌平区","children":[{"code":"371503001","name":"振兴街道"},{"code":"371503002","name":"信发街道"},{"code":"371503003","name":"温陈街道"},{"code":"371503101","name":"乐平铺镇"},{"code":"371503102","name":"冯官屯镇"},{"code":"371503103","name":"菜屯镇"},{"code":"371503104","name":"博平镇"},{"code":"371503105","name":"杜郎口镇"},{"code":"371503106","name":"韩屯镇"},{"code":"371503107","name":"胡屯镇"},{"code":"371503108","name":"肖家庄镇"},{"code":"371503109","name":"贾寨镇"},{"code":"371503110","name":"洪官屯镇"},{"code":"371503208","name":"杨官屯乡"}]},{"code":"371521","name":"阳谷县","children":[{"code":"371521001","name":"博济桥街道"},{"code":"371521002","name":"侨润街道"},{"code":"371521003","name":"狮子楼街道"},{"code":"371521101","name":"阎楼镇"},{"code":"371521103","name":"阿城镇"},{"code":"371521104","name":"七级镇"},{"code":"371521105","name":"安乐镇"},{"code":"371521106","name":"定水镇"},{"code":"371521107","name":"石佛镇"},{"code":"371521108","name":"李台镇"},{"code":"371521109","name":"寿张镇"},{"code":"371521111","name":"十五里园镇"},{"code":"371521112","name":"张秋镇"},{"code":"371521113","name":"郭店屯镇"},{"code":"371521114","name":"西湖镇"},{"code":"371521115","name":"高庙王镇"},{"code":"371521116","name":"金斗营镇"},{"code":"371521203","name":"大布乡"}]},{"code":"371522","name":"莘县","children":[{"code":"371522001","name":"燕塔街道"},{"code":"371522002","name":"莘亭街道"},{"code":"371522003","name":"莘州街道"},{"code":"371522004","name":"东鲁街道"},{"code":"371522101","name":"张鲁镇"},{"code":"371522102","name":"朝城镇"},{"code":"371522103","name":"观城镇"},{"code":"371522104","name":"古城镇"},{"code":"371522105","name":"大张家镇"},{"code":"371522106","name":"古云镇"},{"code":"371522107","name":"十八里铺镇"},{"code":"371522109","name":"燕店镇"},{"code":"371522110","name":"董杜庄镇"},{"code":"371522111","name":"王奉镇"},{"code":"371522112","name":"樱桃园镇"},{"code":"371522113","name":"河店镇"},{"code":"371522114","name":"妹冢镇"},{"code":"371522115","name":"魏庄镇"},{"code":"371522116","name":"张寨镇"},{"code":"371522117","name":"大王寨镇"},{"code":"371522118","name":"徐庄镇"},{"code":"371522119","name":"王庄集镇"},{"code":"371522120","name":"柿子园镇"},{"code":"371522121","name":"俎店镇"}]},{"code":"371524","name":"东阿县","children":[{"code":"371524001","name":"铜城街道"},{"code":"371524002","name":"新城街道"},{"code":"371524101","name":"刘集镇"},{"code":"371524102","name":"牛角店镇"},{"code":"371524103","name":"大桥镇"},{"code":"371524104","name":"高集镇"},{"code":"371524105","name":"姜楼镇"},{"code":"371524107","name":"姚寨镇"},{"code":"371524108","name":"鱼山镇"},{"code":"371524109","name":"陈集镇"}]},{"code":"371525","name":"冠县","children":[{"code":"371525001","name":"清泉街道"},{"code":"371525002","name":"崇文街道"},{"code":"371525003","name":"烟庄街道"},{"code":"371525101","name":"贾镇"},{"code":"371525102","name":"桑阿镇"},{"code":"371525103","name":"柳林镇"},{"code":"371525104","name":"清水镇"},{"code":"371525105","name":"东古城镇"},{"code":"371525106","name":"北馆陶镇"},{"code":"371525107","name":"店子镇"},{"code":"371525108","name":"定远寨镇"},{"code":"371525109","name":"辛集镇"},{"code":"371525110","name":"梁堂镇"},{"code":"371525111","name":"范寨镇"},{"code":"371525112","name":"甘官屯镇"},{"code":"371525200","name":"斜店乡"},{"code":"371525206","name":"兰沃乡"},{"code":"371525209","name":"万善乡"}]},{"code":"371526","name":"高唐县","children":[{"code":"371526001","name":"鱼邱湖街道"},{"code":"371526002","name":"汇鑫街道"},{"code":"371526003","name":"人和街道"},{"code":"371526101","name":"梁村镇"},{"code":"371526102","name":"尹集镇"},{"code":"371526103","name":"清平镇"},{"code":"371526104","name":"固河镇"},{"code":"371526105","name":"三十里铺镇"},{"code":"371526106","name":"琉璃寺镇"},{"code":"371526107","name":"赵寨子镇"},{"code":"371526108","name":"姜店镇"},{"code":"371526109","name":"杨屯镇"}]},{"code":"371581","name":"临清市","children":[{"code":"371581001","name":"青年路街道"},{"code":"371581002","name":"新华路街道"},{"code":"371581003","name":"先锋路街道"},{"code":"371581004","name":"大辛庄街道"},{"code":"371581101","name":"松林镇"},{"code":"371581102","name":"老赵庄镇"},{"code":"371581103","name":"康庄镇"},{"code":"371581104","name":"魏湾镇"},{"code":"371581105","name":"刘垓子镇"},{"code":"371581107","name":"八岔路镇"},{"code":"371581108","name":"潘庄镇"},{"code":"371581109","name":"烟店镇"},{"code":"371581110","name":"唐园镇"},{"code":"371581111","name":"金郝庄镇"},{"code":"371581112","name":"戴湾镇"},{"code":"371581113","name":"尚店镇"}]}]},{"code":"3716","name":"滨州市","children":[{"code":"371602","name":"滨城区","children":[{"code":"371602001","name":"市中街道"},{"code":"371602002","name":"市西街道"},{"code":"371602003","name":"北镇街道"},{"code":"371602004","name":"市东街道"},{"code":"371602005","name":"彭李街道"},{"code":"371602007","name":"小营街道"},{"code":"371602008","name":"滨北街道"},{"code":"371602009","name":"梁才街道"},{"code":"371602010","name":"杜店街道"},{"code":"371602011","name":"沙河街道"},{"code":"371602012","name":"里则街道"},{"code":"371602013","name":"青田街道"},{"code":"371602105","name":"三河湖镇"},{"code":"371602106","name":"杨柳雪镇"},{"code":"371602203","name":"秦皇台乡"}]},{"code":"371603","name":"沾化区","children":[{"code":"371603001","name":"富国街道"},{"code":"371603002","name":"富源街道"},{"code":"371603101","name":"下洼镇"},{"code":"371603102","name":"古城镇"},{"code":"371603103","name":"冯家镇"},{"code":"371603104","name":"泊头镇"},{"code":"371603105","name":"大高镇"},{"code":"371603106","name":"黄升镇"},{"code":"371603107","name":"滨海镇"},{"code":"371603203","name":"下河乡"},{"code":"371603204","name":"利国乡"},{"code":"371603400","name":"海防乡"}]},{"code":"371621","name":"惠民县","children":[{"code":"371621001","name":"孙武街道"},{"code":"371621003","name":"何坊街道"},{"code":"371621101","name":"石庙镇"},{"code":"371621102","name":"桑落墅镇"},{"code":"371621103","name":"淄角镇"},{"code":"371621104","name":"胡集镇"},{"code":"371621105","name":"李庄镇"},{"code":"371621107","name":"麻店镇"},{"code":"371621108","name":"魏集镇"},{"code":"371621109","name":"清河镇"},{"code":"371621111","name":"姜楼镇"},{"code":"371621113","name":"辛店镇"},{"code":"371621114","name":"大年陈镇"},{"code":"371621115","name":"皂户李镇"}]},{"code":"371622","name":"阳信县","children":[{"code":"371622001","name":"信城街道"},{"code":"371622002","name":"金阳街道"},{"code":"371622101","name":"商店镇"},{"code":"371622102","name":"温店镇"},{"code":"371622103","name":"河流镇"},{"code":"371622104","name":"翟王镇"},{"code":"371622105","name":"流坡坞镇"},{"code":"371622106","name":"水落坡镇"},{"code":"371622107","name":"劳店镇"},{"code":"371622204","name":"洋湖乡"}]},{"code":"371623","name":"无棣县","children":[{"code":"371623001","name":"棣丰街道"},{"code":"371623002","name":"海丰街道"},{"code":"371623101","name":"水湾镇"},{"code":"371623102","name":"碣石山镇"},{"code":"371623103","name":"小泊头镇"},{"code":"371623104","name":"埕口镇"},{"code":"371623105","name":"马山子镇"},{"code":"371623106","name":"车王镇"},{"code":"371623107","name":"柳堡镇"},{"code":"371623108","name":"佘家镇"},{"code":"371623109","name":"信阳镇"},{"code":"371623110","name":"西小王镇"}]},{"code":"371625","name":"博兴县","children":[{"code":"371625001","name":"城东街道"},{"code":"371625002","name":"锦秋街道"},{"code":"371625003","name":"博昌街道"},{"code":"371625101","name":"曹王镇"},{"code":"371625102","name":"兴福镇"},{"code":"371625103","name":"陈户镇"},{"code":"371625104","name":"湖滨镇"},{"code":"371625106","name":"店子镇"},{"code":"371625107","name":"吕艺镇"},{"code":"371625108","name":"纯化镇"},{"code":"371625109","name":"庞家镇"},{"code":"371625110","name":"乔庄镇"}]},{"code":"371681","name":"邹平市","children":[{"code":"371681001","name":"黛溪街道"},{"code":"371681002","name":"黄山街道"},{"code":"371681003","name":"高新街道"},{"code":"371681004","name":"好生街道"},{"code":"371681005","name":"西董街道"},{"code":"371681101","name":"长山镇"},{"code":"371681102","name":"魏桥镇"},{"code":"371681105","name":"临池镇"},{"code":"371681108","name":"焦桥镇"},{"code":"371681109","name":"韩店镇"},{"code":"371681110","name":"孙镇镇"},{"code":"371681111","name":"九户镇"},{"code":"371681112","name":"青阳镇"},{"code":"371681113","name":"明集镇"},{"code":"371681114","name":"台子镇"},{"code":"371681115","name":"码头镇"}]}]},{"code":"3717","name":"菏泽市","children":[{"code":"371702","name":"牡丹区","children":[{"code":"371702001","name":"东城街道"},{"code":"371702002","name":"西城街道"},{"code":"371702003","name":"南城街道"},{"code":"371702004","name":"北城街道"},{"code":"371702005","name":"牡丹街道"},{"code":"371702009","name":"何楼街道"},{"code":"371702011","name":"皇镇街道"},{"code":"371702100","name":"沙土镇"},{"code":"371702101","name":"吴店镇"},{"code":"371702102","name":"王浩屯镇"},{"code":"371702103","name":"黄堽镇"},{"code":"371702104","name":"都司镇"},{"code":"371702105","name":"高庄镇"},{"code":"371702106","name":"小留镇"},{"code":"371702107","name":"李村镇"},{"code":"371702109","name":"安兴镇"},{"code":"371702110","name":"大黄集镇"},{"code":"371702112","name":"胡集镇"}]},{"code":"371703","name":"定陶区","children":[{"code":"371703001","name":"天中街道"},{"code":"371703002","name":"滨河街道"},{"code":"371703102","name":"冉固镇"},{"code":"371703103","name":"张湾镇"},{"code":"371703104","name":"黄店镇"},{"code":"371703105","name":"孟海镇"},{"code":"371703106","name":"马集镇"},{"code":"371703107","name":"仿山镇"},{"code":"371703108","name":"半堤镇"},{"code":"371703109","name":"杜堂镇"},{"code":"371703110","name":"南王店镇"}]},{"code":"371721","name":"曹县","children":[{"code":"371721001","name":"曹城街道"},{"code":"371721002","name":"磐石街道"},{"code":"371721003","name":"青菏街道"},{"code":"371721004","name":"郑庄街道"},{"code":"371721005","name":"倪集街道"},{"code":"371721101","name":"庄寨镇"},{"code":"371721102","name":"普连集镇"},{"code":"371721103","name":"青固集镇"},{"code":"371721105","name":"韩集镇"},{"code":"371721106","name":"砖庙镇"},{"code":"371721107","name":"古营集镇"},{"code":"371721108","name":"魏湾镇"},{"code":"371721109","name":"侯集回族镇"},{"code":"371721110","name":"苏集镇"},{"code":"371721111","name":"孙老家镇"},{"code":"371721112","name":"阎店楼镇"},{"code":"371721113","name":"梁堤头镇"},{"code":"371721114","name":"安才楼镇"},{"code":"371721115","name":"曹县邵庄镇"},{"code":"371721116","name":"曹县王集镇"},{"code":"371721117","name":"青岗集镇"},{"code":"371721120","name":"常乐集镇"},{"code":"371721121","name":"曹县大集镇"},{"code":"371721122","name":"曹县仵楼镇"},{"code":"371721123","name":"曹县楼庄镇"},{"code":"371721124","name":"曹县朱洪庙镇"}]},{"code":"371722","name":"单县","children":[{"code":"371722001","name":"北城街道"},{"code":"371722002","name":"南城街道"},{"code":"371722003","name":"园艺街道"},{"code":"371722004","name":"东城街道"},{"code":"371722101","name":"郭村镇"},{"code":"371722102","name":"黄岗镇"},{"code":"371722103","name":"终兴镇"},{"code":"371722105","name":"高韦庄镇"},{"code":"371722106","name":"徐寨镇"},{"code":"371722107","name":"蔡堂镇"},{"code":"371722108","name":"朱集镇"},{"code":"371722109","name":"李新庄镇"},{"code":"371722110","name":"浮岗镇"},{"code":"371722111","name":"莱河镇"},{"code":"371722112","name":"时楼镇"},{"code":"371722113","name":"杨楼镇"},{"code":"371722114","name":"张集镇"},{"code":"371722115","name":"龙王庙镇"},{"code":"371722116","name":"谢集镇"},{"code":"371722117","name":"李田楼镇"},{"code":"371722201","name":"高老家乡"},{"code":"371722202","name":"曹庄乡"}]},{"code":"371723","name":"成武县","children":[{"code":"371723001","name":"文亭街道"},{"code":"371723002","name":"永昌街道"},{"code":"371723101","name":"成武县大田集镇"},{"code":"371723102","name":"成武县天宫庙镇"},{"code":"371723103","name":"成武县汶上集镇"},{"code":"371723104","name":"成武县南鲁集镇"},{"code":"371723105","name":"成武县伯乐集镇"},{"code":"371723106","name":"成武县苟村集镇"},{"code":"371723107","name":"成武县白浮图镇"},{"code":"371723108","name":"成武县孙寺镇"},{"code":"371723109","name":"成武县九女集镇"},{"code":"371723110","name":"成武县党集镇"},{"code":"371723111","name":"成武县张楼镇"}]},{"code":"371724","name":"巨野县","children":[{"code":"371724001","name":"凤凰街道"},{"code":"371724002","name":"永丰街道"},{"code":"371724101","name":"龙固镇"},{"code":"371724102","name":"大义镇"},{"code":"371724103","name":"柳林镇"},{"code":"371724104","name":"章缝镇"},{"code":"371724105","name":"大谢集镇"},{"code":"371724106","name":"独山镇"},{"code":"371724107","name":"麒麟镇"},{"code":"371724108","name":"核桃园镇"},{"code":"371724109","name":"田庄镇"},{"code":"371724110","name":"太平镇"},{"code":"371724111","name":"万丰镇"},{"code":"371724112","name":"陶庙镇"},{"code":"371724113","name":"董官屯镇"},{"code":"371724114","name":"田桥镇"},{"code":"371724115","name":"营里镇"}]},{"code":"371725","name":"郓城县","children":[{"code":"371725001","name":"郓州街道"},{"code":"371725002","name":"唐塔街道"},{"code":"371725003","name":"丁里长街道"},{"code":"371725004","name":"张营街道"},{"code":"371725101","name":"黄安镇"},{"code":"371725102","name":"杨庄集镇"},{"code":"371725103","name":"侯咽集镇"},{"code":"371725104","name":"武安镇"},{"code":"371725105","name":"郭屯镇"},{"code":"371725107","name":"玉皇庙镇"},{"code":"371725108","name":"程屯镇"},{"code":"371725109","name":"随官屯镇"},{"code":"371725111","name":"潘渡镇"},{"code":"371725112","name":"双桥镇"},{"code":"371725113","name":"南赵楼镇"},{"code":"371725114","name":"黄泥冈镇"},{"code":"371725115","name":"唐庙镇"},{"code":"371725116","name":"李集镇"},{"code":"371725117","name":"黄集镇"},{"code":"371725118","name":"张鲁集镇"},{"code":"371725208","name":"水堡乡"},{"code":"371725209","name":"陈坡乡"}]},{"code":"371726","name":"鄄城县","children":[{"code":"371726001","name":"陈王街道"},{"code":"371726002","name":"古泉街道"},{"code":"371726101","name":"什集镇"},{"code":"371726102","name":"红船镇"},{"code":"371726103","name":"旧城镇"},{"code":"371726104","name":"闫什镇"},{"code":"371726105","name":"箕山镇"},{"code":"371726106","name":"李进士堂镇"},{"code":"371726107","name":"董口镇"},{"code":"371726108","name":"临濮镇"},{"code":"371726109","name":"彭楼镇"},{"code":"371726110","name":"凤凰镇"},{"code":"371726111","name":"郑营镇"},{"code":"371726112","name":"大埝镇"},{"code":"371726113","name":"引马镇"},{"code":"371726114","name":"左营镇"},{"code":"371726115","name":"富春镇"}]},{"code":"371728","name":"东明县","children":[{"code":"371728001","name":"城关街道"},{"code":"371728002","name":"渔沃街道"},{"code":"371728101","name":"东明集镇"},{"code":"371728102","name":"刘楼镇"},{"code":"371728103","name":"陆圈镇"},{"code":"371728104","name":"马头镇"},{"code":"371728105","name":"三春集镇"},{"code":"371728106","name":"大屯镇"},{"code":"371728107","name":"武胜桥镇"},{"code":"371728108","name":"菜园集镇"},{"code":"371728109","name":"沙窝镇"},{"code":"371728110","name":"小井镇"},{"code":"371728204","name":"长兴集乡"},{"code":"371728205","name":"焦园乡"}]},{"code":"371771","name":"菏泽经济技术开发区","children":[{"code":"371771001","name":"丹阳街道"},{"code":"371771002","name":"岳程街道"},{"code":"371771003","name":"佃户屯街道"},{"code":"371771101","name":"陈集镇"}]},{"code":"371772","name":"菏泽高新技术开发区","children":[{"code":"371772001","name":"万福街道"},{"code":"371772100","name":"吕陵镇"},{"code":"371772108","name":"马岭岗镇"}]}]}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市","children":[{"code":"410102","name":"中原区","children":[{"code":"410102001","name":"林山寨街道"},{"code":"410102002","name":"建设路街道"},{"code":"410102003","name":"棉纺路街道"},{"code":"410102004","name":"秦岭路街道"},{"code":"410102005","name":"桐柏路街道"},{"code":"410102006","name":"三官庙街道"},{"code":"410102007","name":"绿东村街道"},{"code":"410102008","name":"汝河路街道"},{"code":"410102009","name":"航海西路街道"},{"code":"410102010","name":"中原西路街道"},{"code":"410102011","name":"西流湖街道"},{"code":"410102012","name":"须水街道"},{"code":"410102013","name":"莲湖街道"},{"code":"410102014","name":"柳湖街道"}]},{"code":"410103","name":"二七区","children":[{"code":"410103001","name":"淮河路街道"},{"code":"410103002","name":"解放路街道"},{"code":"410103003","name":"铭功路街道"},{"code":"410103004","name":"一马路街道"},{"code":"410103005","name":"蜜蜂张街道"},{"code":"410103006","name":"五里堡街道"},{"code":"410103007","name":"大学路街道"},{"code":"410103008","name":"建中街街道"},{"code":"410103009","name":"福华街街道"},{"code":"410103010","name":"德化街街道"},{"code":"410103011","name":"嵩山路街道"},{"code":"410103012","name":"京广路街道"},{"code":"410103013","name":"长江路街道"},{"code":"410103015","name":"人和路街道"},{"code":"410103016","name":"侯寨街道"},{"code":"410103100","name":"马寨镇"}]},{"code":"410104","name":"管城回族区","children":[{"code":"410104001","name":"北下街街道"},{"code":"410104002","name":"西大街街道"},{"code":"410104003","name":"南关街街道"},{"code":"410104004","name":"城东路街道"},{"code":"410104005","name":"东大街街道"},{"code":"410104006","name":"二里岗街道"},{"code":"410104007","name":"陇海马路街道"},{"code":"410104008","name":"紫荆山南路街道"},{"code":"410104009","name":"航海东路街道"},{"code":"410104010","name":"十八里河街道"},{"code":"410104011","name":"南曹街道"},{"code":"410104012","name":"金岱街道"},{"code":"410104202","name":"圃田乡"},{"code":"410104570","name":"商都路街道"}]},{"code":"410105","name":"金水区","children":[{"code":"410105001","name":"经八路街道"},{"code":"410105002","name":"花园路街道"},{"code":"410105003","name":"人民路街道"},{"code":"410105004","name":"杜岭街道"},{"code":"410105005","name":"大石桥街道"},{"code":"410105006","name":"南阳路街道"},{"code":"410105007","name":"南阳新村街道"},{"code":"410105008","name":"文化路街道"},{"code":"410105009","name":"丰产路街道"},{"code":"410105010","name":"东风路街道"},{"code":"410105011","name":"北林路街道"},{"code":"410105012","name":"未来路街道"},{"code":"410105013","name":"凤凰台街道"},{"code":"410105014","name":"龙子湖街道"},{"code":"410105015","name":"祭城路街道"},{"code":"410105016","name":"兴达路街道"},{"code":"410105017","name":"国基路街道"},{"code":"410105018","name":"杨金路街道"},{"code":"410105019","name":"丰庆路街道"},{"code":"410105560","name":"如意湖街道"},{"code":"410105561","name":"博学路街道"},{"code":"410105562","name":"龙湖街道"},{"code":"410105563","name":"龙源路街道"},{"code":"410105564","name":"金光路街道"}]},{"code":"410106","name":"上街区","children":[{"code":"410106001","name":"济源路街道"},{"code":"410106002","name":"中心路街道"},{"code":"410106003","name":"新安路街道"},{"code":"410106004","name":"工业路街道"},{"code":"410106005","name":"矿山街道"},{"code":"410106100","name":"峡窝镇"}]},{"code":"410108","name":"惠济区","children":[{"code":"410108001","name":"新城街道"},{"code":"410108002","name":"刘寨街道"},{"code":"410108003","name":"江山路街道"},{"code":"410108004","name":"长兴路街道"},{"code":"410108005","name":"迎宾路街道"},{"code":"410108006","name":"大河路街道"},{"code":"410108100","name":"花园口镇"},{"code":"410108101","name":"古荥镇"}]},{"code":"410122","name":"中牟县","children":[{"code":"410122001","name":"青年路街道"},{"code":"410122002","name":"东风路街道"},{"code":"410122003","name":"广惠街街道"},{"code":"410122101","name":"韩寺镇"},{"code":"410122102","name":"官渡镇"},{"code":"410122103","name":"狼城岗镇"},{"code":"410122104","name":"万滩镇"},{"code":"410122105","name":"白沙镇"},{"code":"410122106","name":"郑庵镇"},{"code":"410122109","name":"黄店镇"},{"code":"410122110","name":"大孟镇"},{"code":"410122112","name":"刘集镇"},{"code":"410122114","name":"雁鸣湖镇"},{"code":"410122115","name":"姚家镇"},{"code":"410122208","name":"刁家乡"},{"code":"410122570","name":"杨桥街道"},{"code":"410122571","name":"豫兴街道"}]},{"code":"410171","name":"郑州经济技术开发区","children":[{"code":"410171111","name":"九龙镇"},{"code":"410171560","name":"郑州经济技术开发区明湖街道"},{"code":"410171561","name":"郑州经济技术开发区潮河街道"},{"code":"410171562","name":"郑州经济技术开发区京航街道"},{"code":"410171563","name":"郑州经济技术开发区前程街道"},{"code":"410171565","name":"郑州经济技术开发区祥云街道"}]},{"code":"410172","name":"郑州高新技术产业开发区","children":[{"code":"410172160","name":"石佛镇"},{"code":"410172360","name":"沟赵乡"},{"code":"410172560","name":"枫杨街道"},{"code":"410172561","name":"梧桐街道"},{"code":"410172562","name":"双桥街道"}]},{"code":"410173","name":"郑州航空港经济综合实验区","children":[{"code":"410173108","name":"张庄镇"},{"code":"410173113","name":"八岗镇"},{"code":"410173116","name":"三官庙镇"},{"code":"410173202","name":"八千乡"},{"code":"410173203","name":"龙王乡"},{"code":"410173400","name":"新港街道"},{"code":"410173401","name":"郑港街道"},{"code":"410173404","name":"银河街道"},{"code":"410173405","name":"明港街道"},{"code":"410173580","name":"滨河街道"},{"code":"410173581","name":"冯堂街道"},{"code":"410173582","name":"清河街道"},{"code":"410173583","name":"龙港街道"}]},{"code":"410181","name":"巩义市","children":[{"code":"410181001","name":"新华路街道"},{"code":"410181002","name":"杜甫路街道"},{"code":"410181003","name":"永安路街道"},{"code":"410181004","name":"孝义街道"},{"code":"410181005","name":"紫荆路街道"},{"code":"410181100","name":"米河镇"},{"code":"410181101","name":"新中镇"},{"code":"410181102","name":"小关镇"},{"code":"410181103","name":"竹林镇"},{"code":"410181104","name":"大峪沟镇"},{"code":"410181105","name":"河洛镇"},{"code":"410181106","name":"站街镇"},{"code":"410181108","name":"康店镇"},{"code":"410181110","name":"北山口镇"},{"code":"410181111","name":"西村镇"},{"code":"410181112","name":"芝田镇"},{"code":"410181113","name":"回郭镇"},{"code":"410181114","name":"鲁庄镇"},{"code":"410181115","name":"夹津口镇"},{"code":"410181116","name":"涉村镇"}]},{"code":"410182","name":"荥阳市","children":[{"code":"410182001","name":"索河街道"},{"code":"410182002","name":"京城路街道"},{"code":"410182101","name":"乔楼镇"},{"code":"410182102","name":"豫龙镇"},{"code":"410182103","name":"广武镇"},{"code":"410182104","name":"王村镇"},{"code":"410182105","name":"汜水镇"},{"code":"410182106","name":"高山镇"},{"code":"410182108","name":"刘河镇"},{"code":"410182109","name":"崔庙镇"},{"code":"410182110","name":"贾峪镇"},{"code":"410182200","name":"城关乡"},{"code":"410182201","name":"高村乡"},{"code":"410182204","name":"金寨回族乡"}]},{"code":"410183","name":"新密市","children":[{"code":"410183001","name":"青屏街街道"},{"code":"410183002","name":"新华路街道"},{"code":"410183003","name":"西大街街道"},{"code":"410183100","name":"城关镇"},{"code":"410183101","name":"米村镇"},{"code":"410183102","name":"牛店镇"},{"code":"410183103","name":"平陌镇"},{"code":"410183104","name":"超化镇"},{"code":"410183105","name":"苟堂镇"},{"code":"410183106","name":"大隗镇"},{"code":"410183107","name":"刘寨镇"},{"code":"410183108","name":"白寨镇"},{"code":"410183109","name":"岳村镇"},{"code":"410183110","name":"来集镇"},{"code":"410183113","name":"曲梁镇"},{"code":"410183200","name":"袁庄乡"},{"code":"410183400","name":"矿区街道"},{"code":"410183401","name":"伏羲山风景区管理委员会"},{"code":"410183402","name":"郑州曲梁产业集聚区管理委员会"}]},{"code":"410184","name":"新郑市","children":[{"code":"410184001","name":"新建路街道"},{"code":"410184002","name":"新华路街道"},{"code":"410184003","name":"新烟街道"},{"code":"410184101","name":"新村镇"},{"code":"410184102","name":"辛店镇"},{"code":"410184103","name":"观音寺镇"},{"code":"410184104","name":"梨河镇"},{"code":"410184105","name":"和庄镇"},{"code":"410184106","name":"薛店镇"},{"code":"410184107","name":"孟庄镇"},{"code":"410184108","name":"郭店镇"},{"code":"410184109","name":"龙湖镇"},{"code":"410184200","name":"城关乡"},{"code":"410184402","name":"具茨山国家级森林公园管理委员会"},{"code":"410184403","name":"新郑新区管理委员会"}]},{"code":"410185","name":"登封市","children":[{"code":"410185001","name":"嵩阳街道"},{"code":"410185002","name":"少林街道"},{"code":"410185003","name":"中岳街道"},{"code":"410185004","name":"卢店街道"},{"code":"410185100","name":"大金店镇"},{"code":"410185101","name":"颍阳镇"},{"code":"410185103","name":"告成镇"},{"code":"410185105","name":"大冶镇"},{"code":"410185106","name":"宣化镇"},{"code":"410185107","name":"徐庄镇"},{"code":"410185108","name":"东华镇"},{"code":"410185109","name":"唐庄镇"},{"code":"410185202","name":"白坪乡"},{"code":"410185203","name":"君召乡"},{"code":"410185204","name":"石道乡"}]}]},{"code":"4102","name":"开封市","children":[{"code":"410202","name":"龙亭区","children":[{"code":"410202001","name":"北书店街道"},{"code":"410202002","name":"午朝门街道"},{"code":"410202003","name":"大兴街道"},{"code":"410202005","name":"北道门街道"},{"code":"410202006","name":"城西街道"},{"code":"410202007","name":"梁苑街道"},{"code":"410202008","name":"宋城街道"},{"code":"410202009","name":"新城街道"},{"code":"410202100","name":"杏花营镇"},{"code":"410202201","name":"北郊乡"},{"code":"410202202","name":"柳园口乡"},{"code":"410202203","name":"西郊乡"},{"code":"410202204","name":"水稻乡"},{"code":"410202400","name":"杏花营农场"}]},{"code":"410203","name":"顺河回族区","children":[{"code":"410203001","name":"清平街道"},{"code":"410203002","name":"铁塔街道"},{"code":"410203003","name":"曹门街道"},{"code":"410203004","name":"宋门街道"},{"code":"410203005","name":"工业街道"},{"code":"410203006","name":"苹果园街道"},{"code":"410203200","name":"东郊乡"},{"code":"410203201","name":"土柏岗乡"}]},{"code":"410204","name":"鼓楼区","children":[{"code":"410204001","name":"相国寺街道"},{"code":"410204002","name":"新华街道"},{"code":"410204003","name":"卧龙街道"},{"code":"410204004","name":"州桥街道"},{"code":"410204005","name":"西司门街道"},{"code":"410204006","name":"南苑街道"},{"code":"410204007","name":"五一街道"},{"code":"410204008","name":"仙人庄街道"}]},{"code":"410205","name":"禹王台区","children":[{"code":"410205001","name":"三里堡街道"},{"code":"410205002","name":"新门关街道"},{"code":"410205003","name":"繁塔街道"},{"code":"410205004","name":"官坊街道"},{"code":"410205005","name":"菜市街道"},{"code":"410205200","name":"南郊乡"},{"code":"410205201","name":"汪屯乡"}]},{"code":"410212","name":"祥符区","children":[{"code":"410212100","name":"城关镇"},{"code":"410212101","name":"陈留镇"},{"code":"410212102","name":"仇楼镇"},{"code":"410212103","name":"八里湾镇"},{"code":"410212104","name":"曲兴镇"},{"code":"410212106","name":"朱仙镇"},{"code":"410212107","name":"罗王镇"},{"code":"410212200","name":"半坡店乡"},{"code":"410212203","name":"刘店乡"},{"code":"410212204","name":"袁坊乡"},{"code":"410212205","name":"杜良乡"},{"code":"410212206","name":"兴隆乡"},{"code":"410212208","name":"西姜寨乡"},{"code":"410212210","name":"万隆乡"},{"code":"410212211","name":"范村乡"}]},{"code":"410221","name":"杞县","children":[{"code":"410221001","name":"金城街道"},{"code":"410221101","name":"五里河镇"},{"code":"410221102","name":"傅集镇"},{"code":"410221103","name":"圉镇镇"},{"code":"410221104","name":"高阳镇"},{"code":"410221105","name":"葛岗镇"},{"code":"410221106","name":"阳堌镇"},{"code":"410221107","name":"邢口镇"},{"code":"410221200","name":"裴村店乡"},{"code":"410221202","name":"宗店乡"},{"code":"410221203","name":"板木乡"},{"code":"410221204","name":"竹林乡"},{"code":"410221205","name":"官庄乡"},{"code":"410221206","name":"湖岗乡"},{"code":"410221207","name":"苏木乡"},{"code":"410221208","name":"沙沃乡"},{"code":"410221209","name":"平城乡"},{"code":"410221210","name":"泥沟乡"},{"code":"410221211","name":"柿园乡"},{"code":"410221212","name":"西寨乡"},{"code":"410221213","name":"城郊乡"},{"code":"410221401","name":"工业园区"}]},{"code":"410222","name":"通许县","children":[{"code":"410222001","name":"咸平街道"},{"code":"410222101","name":"竖岗镇"},{"code":"410222102","name":"玉皇庙镇"},{"code":"410222103","name":"四所楼镇"},{"code":"410222104","name":"朱砂镇"},{"code":"410222105","name":"长智镇"},{"code":"410222200","name":"冯庄乡"},{"code":"410222201","name":"孙营乡"},{"code":"410222202","name":"大岗李乡"},{"code":"410222203","name":"邸阁乡"},{"code":"410222204","name":"练城乡"},{"code":"410222205","name":"厉庄乡"}]},{"code":"410223","name":"尉氏县","children":[{"code":"410223001","name":"两湖街道"},{"code":"410223101","name":"洧川镇"},{"code":"410223102","name":"朱曲镇"},{"code":"410223103","name":"蔡庄镇"},{"code":"410223104","name":"永兴镇"},{"code":"410223105","name":"张市镇"},{"code":"410223106","name":"十八里镇"},{"code":"410223107","name":"水坡镇"},{"code":"410223108","name":"大营镇"},{"code":"410223109","name":"庄头镇"},{"code":"410223200","name":"邢庄乡"},{"code":"410223203","name":"大马乡"},{"code":"410223204","name":"岗李乡"},{"code":"410223205","name":"门楼任乡"},{"code":"410223206","name":"大桥乡"},{"code":"410223207","name":"南曹乡"},{"code":"410223208","name":"小陈乡"}]},{"code":"410225","name":"兰考县","children":[{"code":"410225001","name":"兰阳街道"},{"code":"410225002","name":"桐乡街道"},{"code":"410225003","name":"惠安街道"},{"code":"410225101","name":"堌阳镇"},{"code":"410225102","name":"南彰镇"},{"code":"410225103","name":"考城镇"},{"code":"410225104","name":"红庙镇"},{"code":"410225105","name":"谷营镇"},{"code":"410225106","name":"东坝头镇"},{"code":"410225107","name":"小宋镇"},{"code":"410225108","name":"仪封镇"},{"code":"410225201","name":"三义寨乡"},{"code":"410225206","name":"孟寨乡"},{"code":"410225207","name":"许河乡"},{"code":"410225208","name":"葡萄架乡"},{"code":"410225209","name":"阎楼乡"},{"code":"410225401","name":"仪封园艺场"},{"code":"410225402","name":"造纸林场"},{"code":"410225403","name":"柳林林场"},{"code":"410225404","name":"西关农场"},{"code":"410225405","name":"畜牧良种农场"},{"code":"410225406","name":"固阳农科所"}]}]},{"code":"4103","name":"洛阳市","children":[{"code":"410302","name":"老城区","children":[{"code":"410302001","name":"西关街道"},{"code":"410302002","name":"西南隅街道"},{"code":"410302003","name":"西北隅街道"},{"code":"410302004","name":"东南隅街道"},{"code":"410302005","name":"东北隅街道"},{"code":"410302006","name":"南关街道"},{"code":"410302007","name":"洛浦街道"},{"code":"410302008","name":"邙山街道"},{"code":"410302009","name":"道北路街道"}]},{"code":"410303","name":"西工区","children":[{"code":"410303001","name":"王城路街道"},{"code":"410303002","name":"金谷园路街道"},{"code":"410303003","name":"西工街道"},{"code":"410303004","name":"邙岭路街道"},{"code":"410303006","name":"唐宫路街道"},{"code":"410303007","name":"汉屯路街道"},{"code":"410303008","name":"凯旋东路街道"},{"code":"410303009","name":"洛北街道"},{"code":"410303010","name":"红山街道"}]},{"code":"410304","name":"瀍河回族区","children":[{"code":"410304001","name":"东关街道"},{"code":"410304002","name":"瀍西街道"},{"code":"410304003","name":"五股路街道"},{"code":"410304004","name":"北窑街道"},{"code":"410304005","name":"塔湾街道"},{"code":"410304006","name":"杨文街道"},{"code":"410304007","name":"华林街道"},{"code":"410304200","name":"瀍河回族乡"}]},{"code":"410305","name":"涧西区","children":[{"code":"410305001","name":"湖北路街道"},{"code":"410305002","name":"天津路街道"},{"code":"410305003","name":"长春路街道"},{"code":"410305004","name":"南昌路街道"},{"code":"410305005","name":"长安路街道"},{"code":"410305006","name":"重庆路街道"},{"code":"410305007","name":"郑州路街道"},{"code":"410305008","name":"武汉路街道"},{"code":"410305010","name":"珠江路街道"},{"code":"410305011","name":"周山路街道"},{"code":"410305012","name":"工农街道"}]},{"code":"410307","name":"偃师区","children":[{"code":"410307004","name":"首阳山街道"},{"code":"410307005","name":"商城街道"},{"code":"410307006","name":"槐新街道"},{"code":"410307007","name":"伊洛街道"},{"code":"410307103","name":"翟镇镇"},{"code":"410307104","name":"岳滩镇"},{"code":"410307105","name":"顾县镇"},{"code":"410307106","name":"缑氏镇"},{"code":"410307107","name":"府店镇"},{"code":"410307108","name":"高龙镇"},{"code":"410307109","name":"山化镇"},{"code":"410307110","name":"大口镇"},{"code":"410307111","name":"邙岭镇"}]},{"code":"410308","name":"孟津区","children":[{"code":"410308002","name":"西霞院街道"},{"code":"410308003","name":"康乐街道"},{"code":"410308004","name":"吉利街道"},{"code":"410308005","name":"河阳街道"},{"code":"410308100","name":"城关镇"},{"code":"410308101","name":"会盟镇"},{"code":"410308102","name":"平乐镇"},{"code":"410308103","name":"送庄镇"},{"code":"410308104","name":"白鹤镇"},{"code":"410308105","name":"朝阳镇"},{"code":"410308106","name":"小浪底镇"},{"code":"410308107","name":"麻屯镇"},{"code":"410308108","name":"横水镇"},{"code":"410308109","name":"常袋镇"}]},{"code":"410311","name":"洛龙区","children":[{"code":"410311002","name":"开元路街道"},{"code":"410311003","name":"龙门石窟街道"},{"code":"410311004","name":"关林街道"},{"code":"410311005","name":"太康东路街道"},{"code":"410311006","name":"古城街道"},{"code":"410311007","name":"科技园街道"},{"code":"410311008","name":"翠云路街道"},{"code":"410311009","name":"龙门街道"},{"code":"410311010","name":"学府街道"},{"code":"410311011","name":"定鼎门街道"},{"code":"410311102","name":"安乐镇"},{"code":"410311103","name":"白马寺镇"},{"code":"410311107","name":"李楼镇"},{"code":"410311194","name":"寇店镇"},{"code":"410311195","name":"诸葛镇"},{"code":"410311196","name":"李村镇"},{"code":"410311197","name":"庞村镇"},{"code":"410311199","name":"佃庄镇"}]},{"code":"410323","name":"新安县","children":[{"code":"410323100","name":"城关镇"},{"code":"410323101","name":"石寺镇"},{"code":"410323102","name":"五头镇"},{"code":"410323103","name":"磁涧镇"},{"code":"410323104","name":"铁门镇"},{"code":"410323105","name":"南李村镇"},{"code":"410323106","name":"北冶镇"},{"code":"410323107","name":"仓头镇"},{"code":"410323108","name":"正村镇"},{"code":"410323109","name":"石井镇"},{"code":"410323110","name":"青要山镇"}]},{"code":"410324","name":"栾川县","children":[{"code":"410324001","name":"耕莘街道"},{"code":"410324101","name":"赤土店镇"},{"code":"410324102","name":"合峪镇"},{"code":"410324103","name":"潭头镇"},{"code":"410324104","name":"三川镇"},{"code":"410324105","name":"冷水镇"},{"code":"410324106","name":"陶湾镇"},{"code":"410324107","name":"石庙镇"},{"code":"410324108","name":"庙子镇"},{"code":"410324109","name":"狮子庙镇"},{"code":"410324110","name":"白土镇"},{"code":"410324111","name":"叫河镇"},{"code":"410324200","name":"栾川乡"},{"code":"410324203","name":"秋扒乡"},{"code":"410324400","name":"重渡沟生态旅游示范区"}]},{"code":"410325","name":"嵩县","children":[{"code":"410325100","name":"城关镇"},{"code":"410325101","name":"田湖镇"},{"code":"410325102","name":"旧县镇"},{"code":"410325103","name":"车村镇"},{"code":"410325104","name":"闫庄镇"},{"code":"410325105","name":"德亭镇"},{"code":"410325106","name":"大章镇"},{"code":"410325107","name":"白河镇"},{"code":"410325108","name":"纸房镇"},{"code":"410325109","name":"饭坡镇"},{"code":"410325110","name":"九皋镇"},{"code":"410325111","name":"陆浑镇"},{"code":"410325201","name":"大坪乡"},{"code":"410325203","name":"何村乡"},{"code":"410325209","name":"黄庄乡"},{"code":"410325210","name":"木植街乡"},{"code":"410325400","name":"陶村林场"},{"code":"410325401","name":"五马寺林场"},{"code":"410325402","name":"王莽寨林场"}]},{"code":"410326","name":"汝阳县","children":[{"code":"410326100","name":"城关镇"},{"code":"410326101","name":"上店镇"},{"code":"410326102","name":"付店镇"},{"code":"410326103","name":"小店镇"},{"code":"410326104","name":"三屯镇"},{"code":"410326105","name":"刘店镇"},{"code":"410326106","name":"内埠镇"},{"code":"410326107","name":"陶营镇"},{"code":"410326200","name":"柏树乡"},{"code":"410326202","name":"十八盘乡"},{"code":"410326203","name":"靳村乡"},{"code":"410326204","name":"王坪乡"},{"code":"410326209","name":"蔡店乡"},{"code":"410326400","name":"大安工业园区"}]},{"code":"410327","name":"宜阳县","children":[{"code":"410327100","name":"城关镇"},{"code":"410327102","name":"柳泉镇"},{"code":"410327103","name":"韩城镇"},{"code":"410327104","name":"白杨镇"},{"code":"410327105","name":"香鹿山镇"},{"code":"410327106","name":"锦屏镇"},{"code":"410327107","name":"三乡镇"},{"code":"410327108","name":"张坞镇"},{"code":"410327109","name":"莲庄镇"},{"code":"410327110","name":"赵保镇"},{"code":"410327111","name":"樊村镇"},{"code":"410327112","name":"高村镇"},{"code":"410327203","name":"盐镇乡"},{"code":"410327208","name":"花果山乡"},{"code":"410327209","name":"上观乡"},{"code":"410327212","name":"董王庄乡"}]},{"code":"410328","name":"洛宁县","children":[{"code":"410328100","name":"城关镇"},{"code":"410328101","name":"王范回族镇"},{"code":"410328102","name":"上戈镇"},{"code":"410328103","name":"下峪镇"},{"code":"410328104","name":"河底镇"},{"code":"410328105","name":"兴华镇"},{"code":"410328106","name":"东宋镇"},{"code":"410328107","name":"马店镇"},{"code":"410328108","name":"故县镇"},{"code":"410328109","name":"赵村镇"},{"code":"410328110","name":"长水镇"},{"code":"410328111","name":"景阳镇"},{"code":"410328200","name":"城郊乡"},{"code":"410328205","name":"小界乡"},{"code":"410328209","name":"罗岭乡"},{"code":"410328213","name":"底张乡"},{"code":"410328216","name":"陈吴乡"},{"code":"410328217","name":"涧口乡"}]},{"code":"410329","name":"伊川县","children":[{"code":"410329001","name":"城关街道"},{"code":"410329002","name":"河滨街道"},{"code":"410329101","name":"鸣皋镇"},{"code":"410329102","name":"水寨镇"},{"code":"410329103","name":"彭婆镇"},{"code":"410329104","name":"白沙镇"},{"code":"410329105","name":"江左镇"},{"code":"410329106","name":"高山镇"},{"code":"410329107","name":"吕店镇"},{"code":"410329108","name":"半坡镇"},{"code":"410329109","name":"酒后镇"},{"code":"410329110","name":"白元镇"},{"code":"410329111","name":"鸦岭镇"},{"code":"410329112","name":"葛寨镇"},{"code":"410329203","name":"平等乡"}]},{"code":"410371","name":"洛阳高新技术产业开发区","children":[{"code":"410371001","name":"瀛洲街道"},{"code":"410371002","name":"辛店街道"},{"code":"410371003","name":"徐家营街道"},{"code":"410371101","name":"丰李镇"}]}]},{"code":"4104","name":"平顶山市","children":[{"code":"410402","name":"新华区","children":[{"code":"410402001","name":"曙光街街道"},{"code":"410402002","name":"光明路街道"},{"code":"410402003","name":"中兴路街道"},{"code":"410402004","name":"矿工路街道"},{"code":"410402005","name":"西市场街道"},{"code":"410402006","name":"新新街街道"},{"code":"410402007","name":"青石山街道"},{"code":"410402008","name":"湛河北路街道"},{"code":"410402010","name":"西高皇街道"},{"code":"410402100","name":"焦店镇"},{"code":"410402400","name":"香山管委会"}]},{"code":"410403","name":"卫东区","children":[{"code":"410403001","name":"东安路街道"},{"code":"410403002","name":"优越路街道"},{"code":"410403003","name":"五一路街道"},{"code":"410403004","name":"建设路街道"},{"code":"410403005","name":"东环路街道"},{"code":"410403006","name":"东工人镇街道"},{"code":"410403007","name":"光华路街道"},{"code":"410403008","name":"鸿鹰街道"},{"code":"410403009","name":"申楼街道"},{"code":"410403010","name":"北环路街道"},{"code":"410403011","name":"东高皇街道"},{"code":"410403012","name":"蒲城街道"}]},{"code":"410404","name":"石龙区","children":[{"code":"410404001","name":"高庄街道"},{"code":"410404002","name":"龙兴街道"},{"code":"410404003","name":"人民路街道"},{"code":"410404004","name":"龙河街道"}]},{"code":"410411","name":"湛河区","children":[{"code":"410411001","name":"马庄街道"},{"code":"410411002","name":"南环路街道"},{"code":"410411003","name":"姚孟街道"},{"code":"410411004","name":"九里山街道"},{"code":"410411005","name":"轻工路街道"},{"code":"410411006","name":"高阳路街道"},{"code":"410411007","name":"北渡街道"},{"code":"410411008","name":"荆山街道"},{"code":"410411009","name":"河滨街道"},{"code":"410411200","name":"曹镇乡"}]},{"code":"410421","name":"宝丰县","children":[{"code":"410421001","name":"铁路街道"},{"code":"410421100","name":"城关镇"},{"code":"410421101","name":"周庄镇"},{"code":"410421102","name":"闹店镇"},{"code":"410421103","name":"石桥镇"},{"code":"410421104","name":"商酒务镇"},{"code":"410421105","name":"大营镇"},{"code":"410421106","name":"张八桥镇"},{"code":"410421107","name":"杨庄镇"},{"code":"410421108","name":"赵庄镇"},{"code":"410421200","name":"肖旗乡"},{"code":"410421202","name":"前营乡"},{"code":"410421203","name":"李庄乡"}]},{"code":"410422","name":"叶县","children":[{"code":"410422001","name":"九龙街道"},{"code":"410422002","name":"昆阳街道"},{"code":"410422003","name":"盐都街道"},{"code":"410422101","name":"任店镇"},{"code":"410422102","name":"保安镇"},{"code":"410422103","name":"仙台镇"},{"code":"410422105","name":"叶邑镇"},{"code":"410422106","name":"廉村镇"},{"code":"410422107","name":"常村镇"},{"code":"410422108","name":"辛店镇"},{"code":"410422109","name":"洪庄杨镇"},{"code":"410422110","name":"龚店镇"},{"code":"410422201","name":"夏李乡"},{"code":"410422203","name":"马庄回族乡"},{"code":"410422204","name":"田庄乡"},{"code":"410422207","name":"龙泉乡"},{"code":"410422208","name":"水寨乡"},{"code":"410422210","name":"邓李乡"}]},{"code":"410423","name":"鲁山县","children":[{"code":"410423001","name":"露峰街道"},{"code":"410423002","name":"琴台街道"},{"code":"410423003","name":"鲁阳街道"},{"code":"410423004","name":"汇源街道"},{"code":"410423101","name":"下汤镇"},{"code":"410423102","name":"梁洼镇"},{"code":"410423103","name":"张官营镇"},{"code":"410423104","name":"张良镇"},{"code":"410423105","name":"尧山镇"},{"code":"410423106","name":"瓦屋镇"},{"code":"410423107","name":"赵村镇"},{"code":"410423201","name":"四棵树乡"},{"code":"410423202","name":"团城乡"},{"code":"410423203","name":"熊背乡"},{"code":"410423204","name":"让河乡"},{"code":"410423206","name":"观音寺乡"},{"code":"410423207","name":"昭平台库区乡"},{"code":"410423208","name":"背孜乡"},{"code":"410423209","name":"仓头乡"},{"code":"410423210","name":"董周乡"},{"code":"410423211","name":"张店乡"},{"code":"410423212","name":"辛集乡"},{"code":"410423213","name":"滚子营乡"},{"code":"410423214","name":"马楼乡"}]},{"code":"410425","name":"郏县","children":[{"code":"410425001","name":"龙山街道"},{"code":"410425002","name":"东城街道"},{"code":"410425101","name":"冢头镇"},{"code":"410425102","name":"安良镇"},{"code":"410425103","name":"堂街镇"},{"code":"410425104","name":"薛店镇"},{"code":"410425105","name":"长桥镇"},{"code":"410425106","name":"茨芭镇"},{"code":"410425107","name":"黄道镇"},{"code":"410425108","name":"李口镇"},{"code":"410425200","name":"王集乡"},{"code":"410425202","name":"姚庄回族乡"},{"code":"410425203","name":"白庙乡"},{"code":"410425204","name":"广阔天地乡"},{"code":"410425205","name":"渣元乡"}]},{"code":"410471","name":"平顶山高新技术产业开发区","children":[{"code":"410471001","name":"皇台街道"},{"code":"410471100","name":"遵化店镇"}]},{"code":"410472","name":"平顶山市城乡一体化示范区","children":[{"code":"410472001","name":"湖滨路街道"},{"code":"410472101","name":"滍阳镇"},{"code":"410472401","name":"滨湖管委会"},{"code":"410472402","name":"应滨管委会"}]},{"code":"410481","name":"舞钢市","children":[{"code":"410481001","name":"垭口街道"},{"code":"410481002","name":"寺坡街道"},{"code":"410481003","name":"朱兰街道"},{"code":"410481004","name":"院岭街道"},{"code":"410481005","name":"矿建街道"},{"code":"410481006","name":"铁山街道"},{"code":"410481007","name":"红山街道"},{"code":"410481100","name":"尚店镇"},{"code":"410481101","name":"八台镇"},{"code":"410481102","name":"尹集镇"},{"code":"410481103","name":"枣林镇"},{"code":"410481202","name":"庙街乡"},{"code":"410481204","name":"武功乡"},{"code":"410481205","name":"杨庄乡"}]},{"code":"410482","name":"汝州市","children":[{"code":"410482001","name":"煤山街道"},{"code":"410482002","name":"风穴路街道"},{"code":"410482003","name":"钟楼街道"},{"code":"410482004","name":"洗耳河街道"},{"code":"410482005","name":"汝南街道"},{"code":"410482006","name":"紫云路街道"},{"code":"410482101","name":"寄料镇"},{"code":"410482102","name":"温泉镇"},{"code":"410482103","name":"临汝镇"},{"code":"410482104","name":"小屯镇"},{"code":"410482105","name":"杨楼镇"},{"code":"410482106","name":"蟒川镇"},{"code":"410482107","name":"庙下镇"},{"code":"410482108","name":"米庙镇"},{"code":"410482109","name":"陵头镇"},{"code":"410482110","name":"纸坊镇"},{"code":"410482111","name":"大峪镇"},{"code":"410482112","name":"夏店镇"},{"code":"410482113","name":"焦村镇"},{"code":"410482202","name":"王寨乡"},{"code":"410482207","name":"骑岭乡"}]}]},{"code":"4105","name":"安阳市","children":[{"code":"410502","name":"文峰区","children":[{"code":"410502001","name":"东大街街道"},{"code":"410502002","name":"头二三街道"},{"code":"410502003","name":"甜水井街道"},{"code":"410502004","name":"东关街道"},{"code":"410502005","name":"南关街道"},{"code":"410502006","name":"西大街街道"},{"code":"410502008","name":"北大街街道"},{"code":"410502011","name":"西关街道"},{"code":"410502012","name":"紫薇大道街道"},{"code":"410502013","name":"光华路街道"},{"code":"410502014","name":"永明路街道"},{"code":"410502015","name":"中华路街道"},{"code":"410502101","name":"宝莲寺镇"},{"code":"410502561","name":"步行街综合治理办公室"},{"code":"410502562","name":"北大街综合治理办公室"}]},{"code":"410503","name":"北关区","children":[{"code":"410503001","name":"红旗路街道"},{"code":"410503003","name":"解放路街道"},{"code":"410503004","name":"灯塔路街道"},{"code":"410503005","name":"豆腐营街道"},{"code":"410503006","name":"洹北街道"},{"code":"410503008","name":"彰东街道"},{"code":"410503009","name":"彰北街道"},{"code":"410503010","name":"民航路街道"},{"code":"410503011","name":"曙光路街道"},{"code":"410503100","name":"柏庄镇"}]},{"code":"410505","name":"殷都区","children":[{"code":"410505001","name":"梅园庄街道"},{"code":"410505002","name":"李珍街道"},{"code":"410505003","name":"电厂路街道"},{"code":"410505004","name":"纱厂路街道"},{"code":"410505005","name":"铁西路街道"},{"code":"410505006","name":"水冶街道"},{"code":"410505007","name":"清风街道"},{"code":"410505008","name":"北蒙街道"},{"code":"410505009","name":"相台街道"},{"code":"410505100","name":"曲沟镇"},{"code":"410505101","name":"水冶镇"},{"code":"410505200","name":"西郊乡"}]},{"code":"410506","name":"龙安区","children":[{"code":"410506001","name":"田村街道"},{"code":"410506002","name":"彰武街道"},{"code":"410506003","name":"文昌大道街道"},{"code":"410506004","name":"文明大道街道"},{"code":"410506005","name":"太行小区街道"},{"code":"410506006","name":"中州路街道"},{"code":"410506100","name":"龙泉镇"},{"code":"410506101","name":"马投涧镇"},{"code":"410506103","name":"善应镇"},{"code":"410506201","name":"东风乡"},{"code":"410506205","name":"马家乡"}]},{"code":"410522","name":"安阳县","children":[{"code":"410522102","name":"铜冶镇"},{"code":"410522106","name":"白璧镇"},{"code":"410522108","name":"吕村镇"},{"code":"410522109","name":"伦掌镇"},{"code":"410522111","name":"崔家桥镇"},{"code":"410522112","name":"辛村镇"},{"code":"410522113","name":"韩陵镇"},{"code":"410522114","name":"永和镇"},{"code":"410522115","name":"都里镇"},{"code":"410522116","name":"高庄镇"},{"code":"410522203","name":"磊口乡"},{"code":"410522204","name":"许家沟乡"},{"code":"410522210","name":"安丰乡"},{"code":"410522211","name":"洪河屯乡"},{"code":"410522214","name":"瓦店乡"},{"code":"410522216","name":"北郭乡"}]},{"code":"410523","name":"汤阴县","children":[{"code":"410523100","name":"城关镇"},{"code":"410523101","name":"菜园镇"},{"code":"410523102","name":"任固镇"},{"code":"410523103","name":"五陵镇"},{"code":"410523104","name":"宜沟镇"},{"code":"410523105","name":"白营镇"},{"code":"410523106","name":"伏道镇"},{"code":"410523107","name":"韩庄镇"},{"code":"410523108","name":"古贤镇"},{"code":"410523203","name":"瓦岗乡"}]},{"code":"410526","name":"滑县","children":[{"code":"410526001","name":"道口镇街道"},{"code":"410526002","name":"城关街道"},{"code":"410526003","name":"锦和街道"},{"code":"410526102","name":"白道口镇"},{"code":"410526103","name":"留固镇"},{"code":"410526104","name":"上官镇"},{"code":"410526105","name":"牛屯镇"},{"code":"410526106","name":"万古镇"},{"code":"410526107","name":"高平镇"},{"code":"410526108","name":"王庄镇"},{"code":"410526109","name":"老店镇"},{"code":"410526110","name":"慈周寨镇"},{"code":"410526111","name":"焦虎镇"},{"code":"410526112","name":"四间房镇"},{"code":"410526113","name":"八里营镇"},{"code":"410526114","name":"赵营镇"},{"code":"410526115","name":"半坡店镇"},{"code":"410526200","name":"枣村乡"},{"code":"410526204","name":"大寨乡"},{"code":"410526205","name":"桑村乡"},{"code":"410526206","name":"老爷庙乡"},{"code":"410526209","name":"瓦岗寨乡"},{"code":"410526212","name":"小铺乡"}]},{"code":"410527","name":"内黄县","children":[{"code":"410527100","name":"城关镇"},{"code":"410527101","name":"东庄镇"},{"code":"410527102","name":"井店镇"},{"code":"410527103","name":"梁庄镇"},{"code":"410527104","name":"后河镇"},{"code":"410527105","name":"楚旺镇"},{"code":"410527106","name":"田氏镇"},{"code":"410527107","name":"二安镇"},{"code":"410527108","name":"亳城镇"},{"code":"410527109","name":"豆公镇"},{"code":"410527200","name":"张龙乡"},{"code":"410527201","name":"马上乡"},{"code":"410527202","name":"高堤乡"},{"code":"410527205","name":"六村乡"},{"code":"410527206","name":"中召乡"},{"code":"410527207","name":"宋村乡"},{"code":"410527209","name":"石盘屯乡"}]},{"code":"410571","name":"安阳高新技术产业开发区","children":[{"code":"410571563","name":"开发区峨嵋大街街道"},{"code":"410571564","name":"开发区银杏大街街道"},{"code":"410571565","name":"开发区商颂大街街道"}]},{"code":"410581","name":"林州市","children":[{"code":"410581001","name":"开元街道"},{"code":"410581002","name":"振林街道"},{"code":"410581003","name":"龙山街道"},{"code":"410581004","name":"桂园街道"},{"code":"410581101","name":"合涧镇"},{"code":"410581102","name":"临淇镇"},{"code":"410581103","name":"东姚镇"},{"code":"410581104","name":"横水镇"},{"code":"410581105","name":"河顺镇"},{"code":"410581106","name":"任村镇"},{"code":"410581107","name":"姚村镇"},{"code":"410581108","name":"陵阳镇"},{"code":"410581109","name":"原康镇"},{"code":"410581110","name":"五龙镇"},{"code":"410581111","name":"采桑镇"},{"code":"410581112","name":"东岗镇"},{"code":"410581113","name":"桂林镇"},{"code":"410581114","name":"茶店镇"},{"code":"410581115","name":"石板岩镇"},{"code":"410581116","name":"黄华镇"}]}]},{"code":"4106","name":"鹤壁市","children":[{"code":"410602","name":"鹤山区","children":[{"code":"410602001","name":"中山北路街道"},{"code":"410602002","name":"中山路街道"},{"code":"410602003","name":"新华街街道"},{"code":"410602004","name":"鹤山街街道"},{"code":"410602005","name":"九矿广场街道"},{"code":"410602100","name":"鹤壁集镇"},{"code":"410602201","name":"姬家山乡"}]},{"code":"410603","name":"山城区","children":[{"code":"410603001","name":"红旗街街道"},{"code":"410603002","name":"长风中路街道"},{"code":"410603003","name":"山城路街道"},{"code":"410603004","name":"汤河桥街道"},{"code":"410603005","name":"鹿楼街道"},{"code":"410603006","name":"宝山街道"},{"code":"410603007","name":"大胡街道"},{"code":"410603100","name":"石林镇"}]},{"code":"410611","name":"淇滨区","children":[{"code":"410611001","name":"金山街道"},{"code":"410611002","name":"九州路街道"},{"code":"410611003","name":"黎阳路街道"},{"code":"410611004","name":"长江路街道"},{"code":"410611005","name":"泰山路街道"},{"code":"410611100","name":"大赉店镇"},{"code":"410611101","name":"钜桥镇"},{"code":"410611200","name":"上峪乡"},{"code":"410611201","name":"大河涧乡"},{"code":"410611566","name":"天山路街道"}]},{"code":"410621","name":"浚县","children":[{"code":"410621001","name":"卫溪街道"},{"code":"410621002","name":"浚州街道"},{"code":"410621003","name":"黎阳街道"},{"code":"410621004","name":"伾山街道"},{"code":"410621101","name":"善堂镇"},{"code":"410621102","name":"屯子镇"},{"code":"410621104","name":"新镇镇"},{"code":"410621105","name":"小河镇"},{"code":"410621107","name":"卫贤镇"},{"code":"410621108","name":"王庄镇"},{"code":"410621109","name":"白寺镇"}]},{"code":"410622","name":"淇县","children":[{"code":"410622001","name":"朝歌街道"},{"code":"410622002","name":"桥盟街道"},{"code":"410622003","name":"卫都街道"},{"code":"410622004","name":"灵山街道"},{"code":"410622101","name":"高村镇"},{"code":"410622102","name":"北阳镇"},{"code":"410622103","name":"西岗镇"},{"code":"410622104","name":"庙口镇"},{"code":"410622202","name":"黄洞乡"}]},{"code":"410671","name":"鹤壁经济技术开发区","children":[{"code":"410671400","name":"东杨路"},{"code":"410671401","name":"渤海路"},{"code":"410671402","name":"海河路"}]}]},{"code":"4107","name":"新乡市","children":[{"code":"410702","name":"红旗区","children":[{"code":"410702001","name":"西街街道"},{"code":"410702002","name":"东街街道"},{"code":"410702003","name":"渠东街道"},{"code":"410702007","name":"文化街街道"},{"code":"410702009","name":"向阳小区街道"},{"code":"410702100","name":"洪门镇"},{"code":"410702101","name":"小店镇"}]},{"code":"410703","name":"卫滨区","children":[{"code":"410703001","name":"胜利路街道"},{"code":"410703002","name":"解放路街道"},{"code":"410703003","name":"中同街街道"},{"code":"410703004","name":"健康路街道"},{"code":"410703007","name":"自由路街道"},{"code":"410703008","name":"南桥街道"},{"code":"410703009","name":"铁西街道"},{"code":"410703100","name":"平原镇"}]},{"code":"410704","name":"凤泉区","children":[{"code":"410704001","name":"宝西街道"},{"code":"410704002","name":"宝东街道"},{"code":"410704100","name":"大块镇"},{"code":"410704101","name":"耿黄镇"},{"code":"410704200","name":"潞王坟乡"}]},{"code":"410711","name":"牧野区","children":[{"code":"410711001","name":"东干道街道"},{"code":"410711002","name":"荣校路街道"},{"code":"410711003","name":"北干道街道"},{"code":"410711004","name":"花园街道"},{"code":"410711005","name":"卫北街道"},{"code":"410711006","name":"新辉路街道"},{"code":"410711007","name":"和平路街道"},{"code":"410711100","name":"王村镇"},{"code":"410711101","name":"牧野镇"},{"code":"410711400","name":"新乡化学与物理电源产业园区"}]},{"code":"410721","name":"新乡县","children":[{"code":"410721101","name":"翟坡镇"},{"code":"410721102","name":"小冀镇"},{"code":"410721103","name":"七里营镇"},{"code":"410721104","name":"朗公庙镇"},{"code":"410721105","name":"古固寨镇"},{"code":"410721107","name":"大召营镇"},{"code":"410721200","name":"合河乡"},{"code":"410721560","name":"新乡经济开发区"}]},{"code":"410724","name":"获嘉县","children":[{"code":"410724100","name":"城关镇"},{"code":"410724101","name":"照镜镇"},{"code":"410724102","name":"黄堤镇"},{"code":"410724103","name":"中和镇"},{"code":"410724104","name":"徐营镇"},{"code":"410724105","name":"冯庄镇"},{"code":"410724106","name":"亢村镇"},{"code":"410724107","name":"史庄镇"},{"code":"410724108","name":"太山镇"},{"code":"410724200","name":"位庄乡"},{"code":"410724203","name":"大新庄乡"},{"code":"410724400","name":"原种场"},{"code":"410724401","name":"园艺场"},{"code":"410724402","name":"农场"},{"code":"410724560","name":"西工区管理委员会"}]},{"code":"410725","name":"原阳县","children":[{"code":"410725002","name":"阳和街道"},{"code":"410725003","name":"原兴街道"},{"code":"410725103","name":"齐街镇"},{"code":"410725104","name":"太平镇"},{"code":"410725105","name":"福宁集镇"},{"code":"410725107","name":"官厂镇"},{"code":"410725108","name":"大宾镇"},{"code":"410725200","name":"葛埠口乡"},{"code":"410725206","name":"蒋庄乡"},{"code":"410725211","name":"陡门乡"},{"code":"410725215","name":"路寨乡"},{"code":"410725216","name":"阳阿乡"},{"code":"410725218","name":"靳堂乡"}]},{"code":"410726","name":"延津县","children":[{"code":"410726001","name":"文岩街道"},{"code":"410726002","name":"潭龙街道"},{"code":"410726003","name":"塔铺街道"},{"code":"410726101","name":"东屯镇"},{"code":"410726102","name":"丰庄镇"},{"code":"410726103","name":"石婆固镇"},{"code":"410726104","name":"王楼镇"},{"code":"410726200","name":"僧固乡"},{"code":"410726202","name":"位邱乡"},{"code":"410726203","name":"司寨乡"},{"code":"410726205","name":"马庄乡"},{"code":"410726206","name":"胙城乡"},{"code":"410726207","name":"榆林乡"},{"code":"410726400","name":"国营林场"},{"code":"410726401","name":"新兴农场"},{"code":"410726402","name":"新乡市食品工业聚集区"},{"code":"410726403","name":"新乡市纺织工业聚集区"}]},{"code":"410727","name":"封丘县","children":[{"code":"410727100","name":"城关镇"},{"code":"410727101","name":"黄陵镇"},{"code":"410727102","name":"黄德镇"},{"code":"410727103","name":"应举镇"},{"code":"410727104","name":"陈桥镇"},{"code":"410727105","name":"赵岗镇"},{"code":"410727106","name":"留光镇"},{"code":"410727107","name":"潘店镇"},{"code":"410727108","name":"李庄镇"},{"code":"410727109","name":"陈固镇"},{"code":"410727110","name":"居厢镇"},{"code":"410727111","name":"鲁岗镇"},{"code":"410727112","name":"尹岗镇"},{"code":"410727200","name":"城关乡"},{"code":"410727201","name":"回族乡"},{"code":"410727202","name":"王村乡"},{"code":"410727206","name":"荆宫乡"},{"code":"410727208","name":"曹岗乡"},{"code":"410727212","name":"冯村乡"}]},{"code":"410771","name":"新乡高新技术产业开发区","children":[{"code":"410771360","name":"开发区关堤乡"},{"code":"410771560","name":"振中街"}]},{"code":"410772","name":"新乡经济技术开发区","children":[{"code":"410772001","name":"纬七路街道"}]},{"code":"410773","name":"新乡市平原城乡一体化示范区","children":[{"code":"410773001","name":"龙源街道"},{"code":"410773101","name":"原武镇"},{"code":"410773102","name":"师寨镇"},{"code":"410773106","name":"韩董庄镇"},{"code":"410773203","name":"祝楼乡"},{"code":"410773204","name":"桥北乡"}]},{"code":"410781","name":"卫辉市","children":[{"code":"410781100","name":"汲水镇"},{"code":"410781101","name":"太公镇"},{"code":"410781102","name":"孙杏村镇"},{"code":"410781103","name":"后河镇"},{"code":"410781104","name":"李源屯镇"},{"code":"410781105","name":"唐庄镇"},{"code":"410781106","name":"上乐村镇"},{"code":"410781201","name":"狮豹头乡"},{"code":"410781203","name":"安都乡"},{"code":"410781204","name":"顿坊店乡"},{"code":"410781205","name":"柳庄乡"},{"code":"410781206","name":"庞寨乡"},{"code":"410781208","name":"城郊乡"},{"code":"410781400","name":"卫辉市高效农业服务中心"},{"code":"410781401","name":"东风农场"},{"code":"410781402","name":"苗圃场"},{"code":"410781403","name":"农科所"},{"code":"410781404","name":"五四农场"}]},{"code":"410782","name":"辉县市","children":[{"code":"410782001","name":"城关街道"},{"code":"410782002","name":"胡桥街道"},{"code":"410782101","name":"薄壁镇"},{"code":"410782102","name":"峪河镇"},{"code":"410782103","name":"百泉镇"},{"code":"410782104","name":"孟庄镇"},{"code":"410782105","name":"常村镇"},{"code":"410782106","name":"吴村镇"},{"code":"410782107","name":"南村镇"},{"code":"410782108","name":"南寨镇"},{"code":"410782109","name":"上八里镇"},{"code":"410782110","name":"北云门镇"},{"code":"410782111","name":"占城镇"},{"code":"410782112","name":"冀屯镇"},{"code":"410782200","name":"黄水乡"},{"code":"410782201","name":"拍石头乡"},{"code":"410782202","name":"高庄乡"},{"code":"410782203","name":"张村乡"},{"code":"410782205","name":"赵固乡"},{"code":"410782206","name":"西平罗乡"},{"code":"410782207","name":"洪洲乡"},{"code":"410782208","name":"沙窑乡"}]},{"code":"410783","name":"长垣市","children":[{"code":"410783001","name":"蒲西街道"},{"code":"410783002","name":"蒲东街道"},{"code":"410783003","name":"南蒲街道"},{"code":"410783004","name":"蒲北街道"},{"code":"410783005","name":"魏庄街道"},{"code":"410783100","name":"丁栾镇"},{"code":"410783101","name":"樊相镇"},{"code":"410783102","name":"恼里镇"},{"code":"410783103","name":"常村镇"},{"code":"410783104","name":"赵堤镇"},{"code":"410783105","name":"孟岗镇"},{"code":"410783106","name":"满村镇"},{"code":"410783107","name":"苗寨镇"},{"code":"410783108","name":"张三寨镇"},{"code":"410783109","name":"方里镇"},{"code":"410783110","name":"佘家镇"},{"code":"410783201","name":"芦岗乡"},{"code":"410783202","name":"武邱乡"},{"code":"410783460","name":"河南长垣起重工业园区管理委员会"}]}]},{"code":"4108","name":"焦作市","children":[{"code":"410802","name":"解放区","children":[{"code":"410802001","name":"民生街道"},{"code":"410802002","name":"民主街道"},{"code":"410802003","name":"新华街道"},{"code":"410802004","name":"焦西街道"},{"code":"410802005","name":"焦南街道"},{"code":"410802006","name":"焦北街道"},{"code":"410802007","name":"七百间街道"},{"code":"410802008","name":"上白作街道"},{"code":"410802009","name":"王褚街道"}]},{"code":"410803","name":"中站区","children":[{"code":"410803001","name":"李封街道"},{"code":"410803002","name":"王封街道"},{"code":"410803003","name":"朱村街道"},{"code":"410803004","name":"冯封街道"},{"code":"410803005","name":"龙洞街道"},{"code":"410803006","name":"月山街道"},{"code":"410803007","name":"丹河街道"},{"code":"410803008","name":"许衡街道"},{"code":"410803009","name":"府城街道"},{"code":"410803010","name":"龙翔街道"}]},{"code":"410804","name":"马村区","children":[{"code":"410804001","name":"马村街道"},{"code":"410804002","name":"武王街道"},{"code":"410804003","name":"冯营街道"},{"code":"410804004","name":"九里山街道"},{"code":"410804005","name":"待王街道"},{"code":"410804006","name":"安阳城街道"},{"code":"410804007","name":"演马街道"}]},{"code":"410811","name":"山阳区","children":[{"code":"410811001","name":"东方红街道"},{"code":"410811002","name":"焦东街道"},{"code":"410811003","name":"百间房街道"},{"code":"410811004","name":"太行街道"},{"code":"410811005","name":"艺新街道"},{"code":"410811006","name":"光亚街道"},{"code":"410811007","name":"定和街道"},{"code":"410811008","name":"中星街道"},{"code":"410811009","name":"新城街道"}]},{"code":"410821","name":"修武县","children":[{"code":"410821100","name":"城关镇"},{"code":"410821101","name":"七贤镇"},{"code":"410821102","name":"郇封镇"},{"code":"410821103","name":"周庄镇"},{"code":"410821104","name":"云台山镇"},{"code":"410821202","name":"王屯乡"},{"code":"410821204","name":"五里源乡"},{"code":"410821206","name":"西村乡"},{"code":"410821400","name":"小营工贸区"}]},{"code":"410822","name":"博爱县","children":[{"code":"410822001","name":"博爱县清化镇街道"},{"code":"410822002","name":"博爱县鸿昌街道"},{"code":"410822101","name":"博爱县柏山镇"},{"code":"410822102","name":"博爱县月山镇"},{"code":"410822103","name":"博爱县许良镇"},{"code":"410822105","name":"博爱县磨头镇"},{"code":"410822106","name":"博爱县孝敬镇"},{"code":"410822200","name":"博爱县寨豁乡"},{"code":"410822203","name":"博爱县金城乡"},{"code":"410822400","name":"国营博爱农场"}]},{"code":"410823","name":"武陟县","children":[{"code":"410823001","name":"木城街道"},{"code":"410823002","name":"龙源街道"},{"code":"410823003","name":"龙泉街道"},{"code":"410823004","name":"木栾街道"},{"code":"410823101","name":"詹店镇"},{"code":"410823102","name":"西陶镇"},{"code":"410823103","name":"谢旗营镇"},{"code":"410823104","name":"大封镇"},{"code":"410823107","name":"乔庙镇"},{"code":"410823108","name":"圪当店镇"},{"code":"410823200","name":"嘉应观乡"},{"code":"410823203","name":"三阳乡"},{"code":"410823204","name":"小董乡"},{"code":"410823205","name":"大虹桥乡"},{"code":"410823206","name":"北郭乡"},{"code":"410823598","name":"武陟宁郭农场"}]},{"code":"410825","name":"温县","children":[{"code":"410825001","name":"温泉街道"},{"code":"410825002","name":"岳村街道"},{"code":"410825003","name":"张羌街道"},{"code":"410825004","name":"黄河街道"},{"code":"410825101","name":"祥云镇"},{"code":"410825102","name":"番田镇"},{"code":"410825104","name":"黄庄镇"},{"code":"410825105","name":"武德镇"},{"code":"410825106","name":"赵堡镇"},{"code":"410825201","name":"招贤乡"},{"code":"410825203","name":"北冷乡"},{"code":"410825400","name":"国营温县农场"}]},{"code":"410871","name":"焦作城乡一体化示范区","children":[{"code":"410871060","name":"李万街道"},{"code":"410871061","name":"文苑街道"},{"code":"410871062","name":"文昌街道"},{"code":"410871100","name":"阳庙镇"},{"code":"410871101","name":"宁郭镇"},{"code":"410871203","name":"苏家作乡"}]},{"code":"410882","name":"沁阳市","children":[{"code":"410882001","name":"覃怀街道"},{"code":"410882002","name":"怀庆街道"},{"code":"410882003","name":"太行街道"},{"code":"410882004","name":"沁园街道"},{"code":"410882100","name":"崇义镇"},{"code":"410882101","name":"西向镇"},{"code":"410882102","name":"西万镇"},{"code":"410882103","name":"柏香镇"},{"code":"410882104","name":"山王庄镇"},{"code":"410882105","name":"紫陵镇"},{"code":"410882200","name":"常平乡"},{"code":"410882201","name":"王召乡"},{"code":"410882202","name":"王曲乡"}]},{"code":"410883","name":"孟州市","children":[{"code":"410883001","name":"大定街道"},{"code":"410883002","name":"会昌街道"},{"code":"410883003","name":"河雍街道"},{"code":"410883004","name":"河阳街道"},{"code":"410883100","name":"化工镇"},{"code":"410883101","name":"南庄镇"},{"code":"410883102","name":"城伯镇"},{"code":"410883103","name":"谷旦镇"},{"code":"410883104","name":"赵和镇"},{"code":"410883105","name":"西虢镇"},{"code":"410883201","name":"槐树乡"}]}]},{"code":"4109","name":"濮阳市","children":[{"code":"410902","name":"华龙区","children":[{"code":"410902001","name":"中原路街道"},{"code":"410902002","name":"胜利路街道"},{"code":"410902003","name":"建设路街道"},{"code":"410902004","name":"人民路街道"},{"code":"410902005","name":"大庆路街道"},{"code":"410902006","name":"黄河路街道"},{"code":"410902007","name":"任丘路街道"},{"code":"410902008","name":"长庆路街道"},{"code":"410902009","name":"濮东街道"},{"code":"410902101","name":"岳村镇"},{"code":"410902203","name":"孟轲乡"}]},{"code":"410922","name":"清丰县","children":[{"code":"410922100","name":"城关镇"},{"code":"410922101","name":"马庄桥镇"},{"code":"410922102","name":"瓦屋头镇"},{"code":"410922103","name":"仙庄镇"},{"code":"410922104","name":"柳格镇"},{"code":"410922105","name":"韩村镇"},{"code":"410922106","name":"固城镇"},{"code":"410922107","name":"阳邵镇"},{"code":"410922200","name":"六塔乡"},{"code":"410922202","name":"巩营乡"},{"code":"410922203","name":"马村乡"},{"code":"410922204","name":"高堡乡"},{"code":"410922205","name":"古城乡"},{"code":"410922206","name":"大流乡"},{"code":"410922208","name":"大屯乡"},{"code":"410922212","name":"双庙乡"},{"code":"410922213","name":"纸房乡"}]},{"code":"410923","name":"南乐县","children":[{"code":"410923100","name":"城关镇"},{"code":"410923101","name":"韩张镇"},{"code":"410923102","name":"元村镇"},{"code":"410923103","name":"福堪镇"},{"code":"410923104","name":"张果屯镇"},{"code":"410923105","name":"千口镇"},{"code":"410923106","name":"谷金楼镇"},{"code":"410923200","name":"杨村乡"},{"code":"410923205","name":"西邵乡"},{"code":"410923206","name":"寺庄乡"},{"code":"410923207","name":"梁村乡"},{"code":"410923208","name":"近德固乡"}]},{"code":"410926","name":"范县","children":[{"code":"410926100","name":"城关镇"},{"code":"410926101","name":"濮城镇"},{"code":"410926102","name":"龙王庄镇"},{"code":"410926103","name":"高码头镇"},{"code":"410926104","name":"王楼镇"},{"code":"410926105","name":"辛庄镇"},{"code":"410926106","name":"陈庄镇"},{"code":"410926107","name":"张庄镇"},{"code":"410926201","name":"杨集乡"},{"code":"410926203","name":"白衣阁乡"},{"code":"410926205","name":"颜村铺乡"},{"code":"410926208","name":"陆集乡"}]},{"code":"410927","name":"台前县","children":[{"code":"410927100","name":"城关镇"},{"code":"410927101","name":"侯庙镇"},{"code":"410927102","name":"孙口镇"},{"code":"410927103","name":"打渔陈镇"},{"code":"410927104","name":"马楼镇"},{"code":"410927105","name":"吴坝镇"},{"code":"410927200","name":"后方乡"},{"code":"410927201","name":"清水河乡"},{"code":"410927205","name":"夹河乡"}]},{"code":"410928","name":"濮阳县","children":[{"code":"410928100","name":"城关镇"},{"code":"410928101","name":"濮阳县柳屯镇"},{"code":"410928102","name":"濮阳县文留镇"},{"code":"410928103","name":"濮阳县庆祖镇"},{"code":"410928104","name":"濮阳县八公桥镇"},{"code":"410928106","name":"濮阳县徐镇镇"},{"code":"410928107","name":"濮阳县户部寨镇"},{"code":"410928108","name":"濮阳县鲁河镇"},{"code":"410928109","name":"濮阳县子岸镇"},{"code":"410928110","name":"濮阳县胡状镇"},{"code":"410928111","name":"濮阳县王称固镇"},{"code":"410928112","name":"濮阳县梁庄镇"},{"code":"410928202","name":"濮阳县清河头乡"},{"code":"410928206","name":"濮阳县白罡乡"},{"code":"410928207","name":"濮阳县梨园乡"},{"code":"410928208","name":"濮阳县五星乡"},{"code":"410928211","name":"濮阳县郎中乡"},{"code":"410928212","name":"濮阳县海通乡"},{"code":"410928213","name":"濮阳县渠村乡"},{"code":"410928214","name":"濮阳县习城乡"}]},{"code":"410971","name":"河南濮阳工业园区","children":[{"code":"410971001","name":"河南濮阳工业园区昌湖街道"}]},{"code":"410972","name":"濮阳经济技术开发区","children":[{"code":"410972060","name":"昆吾街道"},{"code":"410972061","name":"皇甫街道"},{"code":"410972062","name":"开州街道"},{"code":"410972063","name":"濮上街道"},{"code":"410972100","name":"王助镇"},{"code":"410972101","name":"新习镇"},{"code":"410972360","name":"胡村乡"}]}]},{"code":"4110","name":"许昌市","children":[{"code":"411002","name":"魏都区","children":[{"code":"411002001","name":"西大街道"},{"code":"411002002","name":"东大街道"},{"code":"411002003","name":"西关街道"},{"code":"411002004","name":"南关街道"},{"code":"411002005","name":"北大街道"},{"code":"411002006","name":"五一路街道"},{"code":"411002007","name":"高桥营街道"},{"code":"411002008","name":"丁庄街道"},{"code":"411002009","name":"颍昌街道"},{"code":"411002010","name":"文峰街道"},{"code":"411002011","name":"新兴街道"},{"code":"411002013","name":"灞陵街道"},{"code":"411002015","name":"魏北街道"},{"code":"411002016","name":"产业集聚区街道"},{"code":"411002570","name":"东城区管委会"}]},{"code":"411003","name":"建安区","children":[{"code":"411003001","name":"许由街道"},{"code":"411003002","name":"新元街道"},{"code":"411003003","name":"邓庄街道"},{"code":"411003004","name":"昌盛街道"},{"code":"411003100","name":"将官池镇"},{"code":"411003101","name":"五女店镇"},{"code":"411003102","name":"尚集镇"},{"code":"411003103","name":"苏桥镇"},{"code":"411003104","name":"蒋李集镇"},{"code":"411003105","name":"张潘镇"},{"code":"411003106","name":"灵井镇"},{"code":"411003200","name":"陈曹乡"},{"code":"411003202","name":"小召乡"},{"code":"411003203","name":"河街乡"},{"code":"411003204","name":"桂村乡"},{"code":"411003205","name":"椹涧乡"},{"code":"411003206","name":"榆林乡"},{"code":"411003208","name":"艾庄回族乡"}]},{"code":"411024","name":"鄢陵县","children":[{"code":"411024100","name":"安陵镇"},{"code":"411024101","name":"马栏镇"},{"code":"411024102","name":"柏梁镇"},{"code":"411024103","name":"陈化店镇"},{"code":"411024104","name":"望田镇"},{"code":"411024105","name":"大马镇"},{"code":"411024106","name":"陶城镇"},{"code":"411024107","name":"张桥镇"},{"code":"411024108","name":"彭店镇"},{"code":"411024109","name":"只乐镇"},{"code":"411024110","name":"南坞镇"},{"code":"411024111","name":"马坊镇"}]},{"code":"411025","name":"襄城县","children":[{"code":"411025100","name":"城关镇"},{"code":"411025101","name":"颍桥回族镇"},{"code":"411025102","name":"麦岭镇"},{"code":"411025103","name":"颍阳镇"},{"code":"411025104","name":"王洛镇"},{"code":"411025105","name":"紫云镇"},{"code":"411025106","name":"库庄镇"},{"code":"411025107","name":"十里铺镇"},{"code":"411025108","name":"山头店镇"},{"code":"411025109","name":"汾陈镇"},{"code":"411025200","name":"湛北乡"},{"code":"411025202","name":"茨沟乡"},{"code":"411025203","name":"丁营乡"},{"code":"411025204","name":"姜庄乡"},{"code":"411025205","name":"范湖乡"},{"code":"411025206","name":"双庙乡"}]},{"code":"411071","name":"许昌经济技术开发区","children":[{"code":"411071001","name":"长村张街道"},{"code":"411071400","name":"龙湖街道"}]},{"code":"411081","name":"禹州市","children":[{"code":"411081001","name":"颍川街道"},{"code":"411081002","name":"夏都街道"},{"code":"411081003","name":"韩城街道"},{"code":"411081004","name":"钧台街道"},{"code":"411081005","name":"褚河街道"},{"code":"411081100","name":"火龙镇"},{"code":"411081101","name":"顺店镇"},{"code":"411081102","name":"方山镇"},{"code":"411081103","name":"神垕镇"},{"code":"411081104","name":"鸿畅镇"},{"code":"411081105","name":"梁北镇"},{"code":"411081106","name":"古城镇"},{"code":"411081107","name":"无梁镇"},{"code":"411081108","name":"文殊镇"},{"code":"411081109","name":"鸠山镇"},{"code":"411081111","name":"范坡镇"},{"code":"411081112","name":"郭连镇"},{"code":"411081113","name":"朱阁镇"},{"code":"411081114","name":"浅井镇"},{"code":"411081115","name":"方岗镇"},{"code":"411081116","name":"花石镇"},{"code":"411081117","name":"张得镇"},{"code":"411081118","name":"苌庄镇"},{"code":"411081119","name":"小吕镇"},{"code":"411081204","name":"磨街乡"},{"code":"411081210","name":"山货回族乡"}]},{"code":"411082","name":"长葛市","children":[{"code":"411082001","name":"建设路街道"},{"code":"411082002","name":"长兴路街道"},{"code":"411082003","name":"长社路街道"},{"code":"411082004","name":"金桥路街道"},{"code":"411082100","name":"和尚桥镇"},{"code":"411082101","name":"坡胡镇"},{"code":"411082102","name":"后河镇"},{"code":"411082103","name":"石固镇"},{"code":"411082104","name":"老城镇"},{"code":"411082105","name":"南席镇"},{"code":"411082106","name":"大周镇"},{"code":"411082107","name":"董村镇"},{"code":"411082108","name":"石象镇"},{"code":"411082109","name":"古桥镇"},{"code":"411082110","name":"增福镇"},{"code":"411082111","name":"佛耳湖镇"}]}]},{"code":"4111","name":"漯河市","children":[{"code":"411102","name":"源汇区","children":[{"code":"411102001","name":"老街街道"},{"code":"411102002","name":"马路街街道"},{"code":"411102003","name":"顺河街街道"},{"code":"411102004","name":"干河陈街道"},{"code":"411102100","name":"大刘镇"},{"code":"411102101","name":"阴阳赵镇"},{"code":"411102102","name":"空冢郭镇"},{"code":"411102202","name":"问十乡"}]},{"code":"411103","name":"郾城区","children":[{"code":"411103001","name":"沙北街道"},{"code":"411103002","name":"龙塔街道"},{"code":"411103003","name":"淞江街道"},{"code":"411103101","name":"孟庙镇"},{"code":"411103102","name":"商桥镇"},{"code":"411103103","name":"裴城镇"},{"code":"411103104","name":"新店镇"},{"code":"411103105","name":"龙城镇"},{"code":"411103106","name":"李集镇"},{"code":"411103107","name":"黑龙潭镇"}]},{"code":"411104","name":"召陵区","children":[{"code":"411104001","name":"召陵区天桥街街道"},{"code":"411104002","name":"召陵区翟庄街道"},{"code":"411104003","name":"召陵区东城街道"},{"code":"411104100","name":"召陵区召陵镇"},{"code":"411104102","name":"召陵区万金镇"},{"code":"411104103","name":"召陵区老窝镇"},{"code":"411104104","name":"姬石镇"},{"code":"411104105","name":"召陵区青年镇"}]},{"code":"411121","name":"舞阳县","children":[{"code":"411121100","name":"舞泉镇"},{"code":"411121101","name":"吴城镇"},{"code":"411121102","name":"北舞渡镇"},{"code":"411121103","name":"莲花镇"},{"code":"411121104","name":"辛安镇"},{"code":"411121105","name":"孟寨镇"},{"code":"411121106","name":"太尉镇"},{"code":"411121107","name":"侯集镇"},{"code":"411121108","name":"九街镇"},{"code":"411121109","name":"章化镇"},{"code":"411121200","name":"文峰乡"},{"code":"411121201","name":"保和乡"},{"code":"411121202","name":"马村乡"},{"code":"411121204","name":"姜店乡"}]},{"code":"411122","name":"临颍县","children":[{"code":"411122001","name":"城关街道"},{"code":"411122002","name":"新城街道"},{"code":"411122101","name":"繁城镇"},{"code":"411122102","name":"杜曲镇"},{"code":"411122103","name":"王岗镇"},{"code":"411122104","name":"台陈镇"},{"code":"411122105","name":"巨陵镇"},{"code":"411122106","name":"瓦店镇"},{"code":"411122107","name":"三家店镇"},{"code":"411122108","name":"窝城镇"},{"code":"411122109","name":"王孟镇"},{"code":"411122110","name":"大郭镇"},{"code":"411122201","name":"皇帝庙乡"},{"code":"411122202","name":"固厢乡"},{"code":"411122203","name":"石桥乡"},{"code":"411122204","name":"陈庄乡"}]},{"code":"411171","name":"漯河经济技术开发区","children":[{"code":"411171101","name":"后谢镇"},{"code":"411171102","name":"邓襄镇"}]}]},{"code":"4112","name":"三门峡市","children":[{"code":"411202","name":"湖滨区","children":[{"code":"411202001","name":"湖滨街道"},{"code":"411202002","name":"前进街道"},{"code":"411202003","name":"车站街道"},{"code":"411202004","name":"涧河街道"},{"code":"411202005","name":"大安街道"},{"code":"411202006","name":"会兴街道"},{"code":"411202007","name":"崖底街道"},{"code":"411202201","name":"交口乡"},{"code":"411202202","name":"磁钟乡"},{"code":"411202203","name":"高庙乡"}]},{"code":"411203","name":"陕州区","children":[{"code":"411203100","name":"大营镇"},{"code":"411203101","name":"原店镇"},{"code":"411203102","name":"西张村镇"},{"code":"411203103","name":"观音堂镇"},{"code":"411203200","name":"张汴乡"},{"code":"411203201","name":"张湾乡"},{"code":"411203203","name":"菜园乡"},{"code":"411203205","name":"张茅乡"},{"code":"411203206","name":"王家后乡"},{"code":"411203207","name":"硖石乡"},{"code":"411203210","name":"西李村乡"},{"code":"411203211","name":"宫前乡"},{"code":"411203212","name":"店子乡"}]},{"code":"411221","name":"渑池县","children":[{"code":"411221100","name":"城关镇"},{"code":"411221101","name":"英豪镇"},{"code":"411221102","name":"张村镇"},{"code":"411221103","name":"洪阳镇"},{"code":"411221104","name":"天池镇"},{"code":"411221105","name":"仰韶镇"},{"code":"411221203","name":"仁村乡"},{"code":"411221206","name":"果园乡"},{"code":"411221207","name":"陈村乡"},{"code":"411221208","name":"坡头乡"},{"code":"411221209","name":"段村乡"},{"code":"411221210","name":"南村乡"}]},{"code":"411224","name":"卢氏县","children":[{"code":"411224001","name":"兴贤里街道"},{"code":"411224100","name":"城关镇"},{"code":"411224101","name":"杜关镇"},{"code":"411224102","name":"五里川镇"},{"code":"411224103","name":"官道口镇"},{"code":"411224104","name":"朱阳关镇"},{"code":"411224105","name":"官坡镇"},{"code":"411224106","name":"范里镇"},{"code":"411224107","name":"东明镇"},{"code":"411224108","name":"双龙湾镇"},{"code":"411224200","name":"文峪乡"},{"code":"411224201","name":"横涧乡"},{"code":"411224203","name":"双槐树乡"},{"code":"411224204","name":"汤河乡"},{"code":"411224205","name":"瓦窑沟乡"},{"code":"411224206","name":"狮子坪乡"},{"code":"411224207","name":"沙河乡"},{"code":"411224208","name":"徐家湾乡"},{"code":"411224209","name":"潘河乡"},{"code":"411224210","name":"木桐乡"}]},{"code":"411271","name":"河南三门峡经济开发区","children":[{"code":"411271560","name":"向阳街道"}]},{"code":"411281","name":"义马市","children":[{"code":"411281001","name":"千秋路街道"},{"code":"411281002","name":"朝阳路街道"},{"code":"411281003","name":"新义街街道"},{"code":"411281004","name":"常村路街道"},{"code":"411281005","name":"泰山路街道"},{"code":"411281006","name":"新区街道"},{"code":"411281007","name":"东区街道"}]},{"code":"411282","name":"灵宝市","children":[{"code":"411282100","name":"城关镇"},{"code":"411282101","name":"尹庄镇"},{"code":"411282102","name":"朱阳镇"},{"code":"411282103","name":"阳平镇"},{"code":"411282104","name":"故县镇"},{"code":"411282105","name":"豫灵镇"},{"code":"411282106","name":"大王镇"},{"code":"411282107","name":"阳店镇"},{"code":"411282108","name":"函谷关镇"},{"code":"411282109","name":"焦村镇"},{"code":"411282200","name":"川口乡"},{"code":"411282201","name":"寺河乡"},{"code":"411282202","name":"苏村乡"},{"code":"411282203","name":"五亩乡"},{"code":"411282204","name":"西阎乡"},{"code":"411282400","name":"灵宝市园艺场"},{"code":"411282401","name":"涧东区"},{"code":"411282402","name":"涧西区"}]}]},{"code":"4113","name":"南阳市","children":[{"code":"411302","name":"宛城区","children":[{"code":"411302001","name":"东关街道"},{"code":"411302002","name":"新华街道"},{"code":"411302003","name":"汉冶街道"},{"code":"411302004","name":"仲景街道"},{"code":"411302007","name":"赤虎街道"},{"code":"411302008","name":"五里堡街道"},{"code":"411302102","name":"官庄镇"},{"code":"411302103","name":"瓦店镇"},{"code":"411302104","name":"红泥湾镇"},{"code":"411302105","name":"黄台岗镇"},{"code":"411302106","name":"金华镇"},{"code":"411302107","name":"高庙镇"},{"code":"411302301","name":"溧河乡"},{"code":"411302302","name":"汉冢乡"},{"code":"411302304","name":"茶庵乡"}]},{"code":"411303","name":"卧龙区","children":[{"code":"411303002","name":"七一街道"},{"code":"411303003","name":"卧龙岗街道"},{"code":"411303004","name":"武侯街道"},{"code":"411303005","name":"梅溪街道"},{"code":"411303006","name":"车站街道"},{"code":"411303007","name":"光武街道"},{"code":"411303008","name":"靳岗街道"},{"code":"411303101","name":"石桥镇"},{"code":"411303102","name":"潦河镇"},{"code":"411303103","name":"安皋镇"},{"code":"411303104","name":"蒲山镇"},{"code":"411303105","name":"陆营镇"},{"code":"411303106","name":"青华镇"},{"code":"411303107","name":"英庄镇"},{"code":"411303108","name":"潦河坡镇"},{"code":"411303109","name":"谢庄镇"},{"code":"411303300","name":"七里园乡"},{"code":"411303306","name":"王村乡"},{"code":"411303400","name":"龙王沟风景区"}]},{"code":"411321","name":"南召县","children":[{"code":"411321100","name":"城关镇"},{"code":"411321101","name":"留山镇"},{"code":"411321102","name":"云阳镇"},{"code":"411321103","name":"皇路店镇"},{"code":"411321104","name":"南河店镇"},{"code":"411321105","name":"板山坪镇"},{"code":"411321106","name":"乔端镇"},{"code":"411321107","name":"白土岗镇"},{"code":"411321300","name":"城郊乡"},{"code":"411321301","name":"小店乡"},{"code":"411321302","name":"皇后乡"},{"code":"411321303","name":"太山庙乡"},{"code":"411321304","name":"石门乡"},{"code":"411321305","name":"四棵树乡"},{"code":"411321308","name":"马市坪乡"},{"code":"411321310","name":"崔庄乡"},{"code":"411321400","name":"河南红阳机械厂"},{"code":"411321401","name":"河南向东机械厂"},{"code":"411321402","name":"河南红宇机械厂"},{"code":"411321403","name":"国营东风机械厂"},{"code":"411321404","name":"国营长江机械厂"}]},{"code":"411322","name":"方城县","children":[{"code":"411322001","name":"凤瑞街道"},{"code":"411322002","name":"释之街道"},{"code":"411322003","name":"赭阳街道"},{"code":"411322004","name":"广安街道"},{"code":"411322101","name":"独树镇"},{"code":"411322102","name":"博望镇"},{"code":"411322103","name":"拐河镇"},{"code":"411322104","name":"小史店镇"},{"code":"411322105","name":"赵河镇"},{"code":"411322106","name":"广阳镇"},{"code":"411322108","name":"杨楼镇"},{"code":"411322109","name":"券桥镇"},{"code":"411322110","name":"清河镇"},{"code":"411322111","name":"四里店镇"},{"code":"411322112","name":"古庄店镇"},{"code":"411322113","name":"杨集镇"},{"code":"411322114","name":"柳河镇"},{"code":"411322115","name":"二郎庙镇"},{"code":"411322311","name":"袁店回族乡"},{"code":"411322401","name":"方城大寺林场"}]},{"code":"411323","name":"西峡县","children":[{"code":"411323001","name":"白羽街道"},{"code":"411323002","name":"紫金街道"},{"code":"411323003","name":"莲花街道"},{"code":"411323101","name":"丹水镇"},{"code":"411323102","name":"西坪镇"},{"code":"411323103","name":"双龙镇"},{"code":"411323104","name":"回车镇"},{"code":"411323105","name":"丁河镇"},{"code":"411323106","name":"桑坪镇"},{"code":"411323107","name":"米坪镇"},{"code":"411323108","name":"五里桥镇"},{"code":"411323109","name":"重阳镇"},{"code":"411323110","name":"太平镇"},{"code":"411323111","name":"阳城镇"},{"code":"411323112","name":"二郎坪镇"},{"code":"411323113","name":"石界河镇"},{"code":"411323114","name":"军马河镇"},{"code":"411323115","name":"田关镇"},{"code":"411323307","name":"寨根乡"}]},{"code":"411324","name":"镇平县","children":[{"code":"411324001","name":"涅阳街道"},{"code":"411324002","name":"雪枫街道"},{"code":"411324003","name":"玉都街道"},{"code":"411324101","name":"石佛寺镇"},{"code":"411324102","name":"晁陂镇"},{"code":"411324103","name":"贾宋镇"},{"code":"411324104","name":"侯集镇"},{"code":"411324105","name":"老庄镇"},{"code":"411324106","name":"卢医镇"},{"code":"411324107","name":"遮山镇"},{"code":"411324108","name":"高丘镇"},{"code":"411324109","name":"曲屯镇"},{"code":"411324110","name":"枣园镇"},{"code":"411324111","name":"杨营镇"},{"code":"411324112","name":"安字营镇"},{"code":"411324113","name":"张林镇"},{"code":"411324114","name":"柳泉铺镇"},{"code":"411324115","name":"彭营镇"},{"code":"411324303","name":"二龙乡"},{"code":"411324306","name":"王岗乡"},{"code":"411324309","name":"马庄乡"},{"code":"411324315","name":"郭庄回族乡"}]},{"code":"411325","name":"内乡县","children":[{"code":"411325100","name":"城关镇"},{"code":"411325101","name":"夏馆镇"},{"code":"411325102","name":"师岗镇"},{"code":"411325103","name":"马山口镇"},{"code":"411325104","name":"湍东镇"},{"code":"411325105","name":"赤眉镇"},{"code":"411325106","name":"瓦亭镇"},{"code":"411325107","name":"王店镇"},{"code":"411325108","name":"灌涨镇"},{"code":"411325109","name":"桃溪镇"},{"code":"411325110","name":"岞岖镇"},{"code":"411325111","name":"余关镇"},{"code":"411325300","name":"板场乡"},{"code":"411325301","name":"大桥乡"},{"code":"411325302","name":"赵店乡"},{"code":"411325306","name":"七里坪乡"}]},{"code":"411326","name":"淅川县","children":[{"code":"411326001","name":"龙城街道"},{"code":"411326002","name":"商圣街道"},{"code":"411326101","name":"荆紫关镇"},{"code":"411326102","name":"老城镇"},{"code":"411326103","name":"香花镇"},{"code":"411326104","name":"厚坡镇"},{"code":"411326105","name":"丹阳镇"},{"code":"411326106","name":"盛湾镇"},{"code":"411326107","name":"金河镇"},{"code":"411326108","name":"寺湾镇"},{"code":"411326109","name":"仓房镇"},{"code":"411326110","name":"上集镇"},{"code":"411326111","name":"马蹬镇"},{"code":"411326301","name":"西簧乡"},{"code":"411326302","name":"毛堂乡"},{"code":"411326303","name":"大石桥乡"},{"code":"411326304","name":"滔河乡"}]},{"code":"411327","name":"社旗县","children":[{"code":"411327001","name":"赵河街道"},{"code":"411327002","name":"潘河街道"},{"code":"411327100","name":"赊店镇"},{"code":"411327101","name":"桥头镇"},{"code":"411327103","name":"饶良镇"},{"code":"411327104","name":"兴隆镇"},{"code":"411327105","name":"晋庄镇"},{"code":"411327106","name":"李店镇"},{"code":"411327107","name":"苗店镇"},{"code":"411327108","name":"郝寨镇"},{"code":"411327109","name":"朱集镇"},{"code":"411327110","name":"下洼镇"},{"code":"411327111","name":"太和镇"},{"code":"411327112","name":"大冯营镇"},{"code":"411327113","name":"陌陂镇"},{"code":"411327313","name":"唐庄乡"}]},{"code":"411328","name":"唐河县","children":[{"code":"411328001","name":"滨河街道"},{"code":"411328002","name":"文峰街道"},{"code":"411328003","name":"东兴街道"},{"code":"411328004","name":"兴唐街道"},{"code":"411328005","name":"泗洲街道"},{"code":"411328101","name":"源潭镇"},{"code":"411328102","name":"张店镇"},{"code":"411328103","name":"郭滩镇"},{"code":"411328104","name":"湖阳镇"},{"code":"411328105","name":"黑龙镇"},{"code":"411328106","name":"大河屯镇"},{"code":"411328107","name":"龙潭镇"},{"code":"411328108","name":"桐寨铺镇"},{"code":"411328109","name":"苍台镇"},{"code":"411328110","name":"上屯镇"},{"code":"411328111","name":"毕店镇"},{"code":"411328112","name":"少拜寺镇"},{"code":"411328113","name":"祁仪镇"},{"code":"411328114","name":"马振抚镇"},{"code":"411328300","name":"城郊乡"},{"code":"411328301","name":"桐河乡"},{"code":"411328306","name":"昝岗乡"},{"code":"411328309","name":"古城乡"},{"code":"411328311","name":"东王集乡"}]},{"code":"411329","name":"新野县","children":[{"code":"411329001","name":"汉城街道"},{"code":"411329002","name":"汉华街道"},{"code":"411329101","name":"王庄镇"},{"code":"411329102","name":"沙堰镇"},{"code":"411329103","name":"新甸铺镇"},{"code":"411329104","name":"施庵镇"},{"code":"411329105","name":"歪子镇"},{"code":"411329106","name":"五星镇"},{"code":"411329107","name":"溧河铺镇"},{"code":"411329108","name":"王集镇"},{"code":"411329300","name":"城郊乡"},{"code":"411329303","name":"前高庙乡"},{"code":"411329305","name":"樊集乡"},{"code":"411329307","name":"上庄乡"},{"code":"411329309","name":"上港乡"}]},{"code":"411330","name":"桐柏县","children":[{"code":"411330100","name":"城关镇"},{"code":"411330101","name":"月河镇"},{"code":"411330102","name":"吴城镇"},{"code":"411330103","name":"固县镇"},{"code":"411330104","name":"毛集镇"},{"code":"411330105","name":"大河镇"},{"code":"411330106","name":"埠江镇"},{"code":"411330107","name":"平氏镇"},{"code":"411330108","name":"淮源镇"},{"code":"411330109","name":"黄岗镇"},{"code":"411330110","name":"安棚镇"},{"code":"411330111","name":"朱庄镇"},{"code":"411330112","name":"程湾镇"},{"code":"411330300","name":"城郊乡"},{"code":"411330301","name":"回龙乡"},{"code":"411330306","name":"新集乡"}]},{"code":"411371","name":"南阳高新技术产业开发区","children":[{"code":"411371060","name":"南阳高新区张衡街道"},{"code":"411371061","name":"南阳高新区百里奚街道"},{"code":"411371401","name":"中关村南阳科技产业园"}]},{"code":"411372","name":"南阳市城乡一体化示范区","children":[{"code":"411372005","name":"白河街道"},{"code":"411372006","name":"枣林街道"},{"code":"411372007","name":"姜营街道"},{"code":"411372306","name":"新店乡"}]},{"code":"411381","name":"邓州市","children":[{"code":"411381001","name":"古城街道"},{"code":"411381002","name":"花洲街道"},{"code":"411381003","name":"湍河街道"},{"code":"411381102","name":"罗庄镇"},{"code":"411381103","name":"汲滩镇"},{"code":"411381104","name":"穰东镇"},{"code":"411381105","name":"孟楼镇"},{"code":"411381106","name":"林扒镇"},{"code":"411381107","name":"构林镇"},{"code":"411381108","name":"十林镇"},{"code":"411381109","name":"张村镇"},{"code":"411381110","name":"都司镇"},{"code":"411381111","name":"赵集镇"},{"code":"411381112","name":"刘集镇"},{"code":"411381113","name":"桑庄镇"},{"code":"411381114","name":"彭桥镇"},{"code":"411381115","name":"白牛镇"},{"code":"411381116","name":"腰店镇"},{"code":"411381117","name":"九龙镇"},{"code":"411381118","name":"文渠镇"},{"code":"411381119","name":"高集镇"},{"code":"411381120","name":"夏集镇"},{"code":"411381121","name":"陶营镇"},{"code":"411381122","name":"小杨营镇"},{"code":"411381301","name":"张楼乡"},{"code":"411381305","name":"裴营乡"},{"code":"411381319","name":"龙堰乡"},{"code":"411381400","name":"南阳市黄牛良种繁育场"},{"code":"411381560","name":"杏山旅游管理区"}]}]},{"code":"4114","name":"商丘市","children":[{"code":"411402","name":"梁园区","children":[{"code":"411402001","name":"平原街道"},{"code":"411402002","name":"长征街道"},{"code":"411402003","name":"前进街道"},{"code":"411402004","name":"白云街道"},{"code":"411402005","name":"东风街道"},{"code":"411402006","name":"八八街道"},{"code":"411402007","name":"建设街道"},{"code":"411402011","name":"解放街道"},{"code":"411402012","name":"陇海街道"},{"code":"411402100","name":"谢集镇"},{"code":"411402101","name":"双八镇"},{"code":"411402103","name":"观堂镇"},{"code":"411402104","name":"刘口镇"},{"code":"411402105","name":"水池铺镇"},{"code":"411402203","name":"王楼乡"},{"code":"411402204","name":"李庄乡"},{"code":"411402205","name":"孙福集乡"}]},{"code":"411403","name":"睢阳区","children":[{"code":"411403001","name":"古城街道"},{"code":"411403002","name":"文化街道"},{"code":"411403003","name":"东方街道"},{"code":"411403004","name":"新城街道"},{"code":"411403006","name":"宋城街道"},{"code":"411403007","name":"古宋街道"},{"code":"411403100","name":"宋集镇"},{"code":"411403101","name":"郭村镇"},{"code":"411403102","name":"李口镇"},{"code":"411403103","name":"高辛镇"},{"code":"411403104","name":"坞墙镇"},{"code":"411403105","name":"冯桥镇"},{"code":"411403106","name":"路河镇"},{"code":"411403107","name":"闫集镇"},{"code":"411403108","name":"毛固堆镇"},{"code":"411403204","name":"包公庙乡"},{"code":"411403205","name":"娄店乡"},{"code":"411403208","name":"勒马乡"},{"code":"411403209","name":"临河店乡"}]},{"code":"411421","name":"民权县","children":[{"code":"411421001","name":"绿洲街道"},{"code":"411421002","name":"南华街道"},{"code":"411421101","name":"人和镇"},{"code":"411421102","name":"龙塘镇"},{"code":"411421103","name":"北关镇"},{"code":"411421104","name":"程庄镇"},{"code":"411421105","name":"王庄寨镇"},{"code":"411421106","name":"孙六镇"},{"code":"411421107","name":"白云寺镇"},{"code":"411421108","name":"王桥镇"},{"code":"411421109","name":"庄子镇"},{"code":"411421110","name":"双塔镇"},{"code":"411421111","name":"野岗镇"},{"code":"411421200","name":"伯党乡"},{"code":"411421201","name":"花园乡"},{"code":"411421206","name":"林七乡"},{"code":"411421207","name":"胡集乡"},{"code":"411421208","name":"禇庙乡"},{"code":"411421210","name":"老颜集乡"},{"code":"411421400","name":"商丘市农场"},{"code":"411421401","name":"商丘市林场"}]},{"code":"411422","name":"睢县","children":[{"code":"411422100","name":"长岗镇"},{"code":"411422101","name":"平岗镇"},{"code":"411422102","name":"周堂镇"},{"code":"411422103","name":"蓼堤镇"},{"code":"411422104","name":"西陵寺镇"},{"code":"411422105","name":"城关镇"},{"code":"411422106","name":"潮庄镇"},{"code":"411422107","name":"尚屯镇"},{"code":"411422200","name":"后台乡"},{"code":"411422202","name":"河集乡"},{"code":"411422203","name":"孙聚寨乡"},{"code":"411422204","name":"白楼乡"},{"code":"411422205","name":"河堤乡"},{"code":"411422206","name":"白庙乡"},{"code":"411422207","name":"胡堂乡"},{"code":"411422208","name":"尤吉屯乡"},{"code":"411422210","name":"董店乡"},{"code":"411422211","name":"涧岗乡"},{"code":"411422213","name":"匡城乡"},{"code":"411422214","name":"城郊乡"}]},{"code":"411423","name":"宁陵县","children":[{"code":"411423100","name":"城关回族镇"},{"code":"411423101","name":"张弓镇"},{"code":"411423102","name":"柳河镇"},{"code":"411423103","name":"逻岗镇"},{"code":"411423104","name":"石桥镇"},{"code":"411423105","name":"黄岗镇"},{"code":"411423106","name":"华堡镇"},{"code":"411423203","name":"刘楼乡"},{"code":"411423204","name":"程楼乡"},{"code":"411423205","name":"乔楼乡"},{"code":"411423206","name":"城郊乡"},{"code":"411423207","name":"阳驿乡"},{"code":"411423209","name":"孔集乡"},{"code":"411423210","name":"赵村乡"},{"code":"411423400","name":"产业集聚区"}]},{"code":"411424","name":"柘城县","children":[{"code":"411424001","name":"凤凰街道"},{"code":"411424002","name":"浦东街道"},{"code":"411424003","name":"春水街道"},{"code":"411424004","name":"双河街道"},{"code":"411424101","name":"陈青集镇"},{"code":"411424102","name":"起台镇"},{"code":"411424103","name":"胡襄镇"},{"code":"411424104","name":"慈圣镇"},{"code":"411424105","name":"安平镇"},{"code":"411424106","name":"远襄镇"},{"code":"411424107","name":"岗王镇"},{"code":"411424108","name":"伯岗镇"},{"code":"411424109","name":"张桥镇"},{"code":"411424203","name":"洪恩乡"},{"code":"411424204","name":"老王集乡"},{"code":"411424205","name":"大仵乡"},{"code":"411424206","name":"马集乡"},{"code":"411424207","name":"牛城乡"},{"code":"411424208","name":"惠济乡"},{"code":"411424212","name":"申桥乡"},{"code":"411424213","name":"李原乡"},{"code":"411424214","name":"皇集乡"}]},{"code":"411425","name":"虞城县","children":[{"code":"411425100","name":"城关镇"},{"code":"411425101","name":"界沟镇"},{"code":"411425102","name":"木兰镇"},{"code":"411425103","name":"杜集镇"},{"code":"411425104","name":"谷熟镇"},{"code":"411425105","name":"大杨集镇"},{"code":"411425107","name":"利民镇"},{"code":"411425108","name":"张集镇"},{"code":"411425109","name":"站集镇"},{"code":"411425110","name":"稍岗镇"},{"code":"411425111","name":"乔集镇"},{"code":"411425200","name":"黄冢乡"},{"code":"411425201","name":"沙集乡"},{"code":"411425202","name":"店集乡"},{"code":"411425204","name":"闻集乡"},{"code":"411425205","name":"芒种桥乡"},{"code":"411425207","name":"刘店乡"},{"code":"411425208","name":"大候乡"},{"code":"411425210","name":"城郊乡"},{"code":"411425211","name":"郑集乡"},{"code":"411425212","name":"李老家乡"},{"code":"411425214","name":"镇里固乡"},{"code":"411425215","name":"古王集乡"},{"code":"411425219","name":"刘集乡"},{"code":"411425221","name":"田庙乡"}]},{"code":"411426","name":"夏邑县","children":[{"code":"411426100","name":"城关镇"},{"code":"411426101","name":"会亭镇"},{"code":"411426102","name":"马头镇"},{"code":"411426103","name":"济阳镇"},{"code":"411426104","name":"李集镇"},{"code":"411426105","name":"车站镇"},{"code":"411426106","name":"杨集镇"},{"code":"411426107","name":"韩道口镇"},{"code":"411426108","name":"太平镇"},{"code":"411426109","name":"罗庄镇"},{"code":"411426110","name":"火店镇"},{"code":"411426111","name":"北岭镇"},{"code":"411426112","name":"郭店镇"},{"code":"411426200","name":"曹集乡"},{"code":"411426201","name":"胡桥乡"},{"code":"411426202","name":"歧河乡"},{"code":"411426204","name":"业庙乡"},{"code":"411426205","name":"中峰乡"},{"code":"411426207","name":"桑堌乡"},{"code":"411426208","name":"何营乡"},{"code":"411426210","name":"王集乡"},{"code":"411426211","name":"刘店集乡"},{"code":"411426212","name":"骆集乡"},{"code":"411426214","name":"孔庄乡"}]},{"code":"411471","name":"豫东综合物流产业聚集区","children":[{"code":"411471001","name":"中州街道"},{"code":"411471100","name":"张阁镇"},{"code":"411471101","name":"贾寨镇"}]},{"code":"411472","name":"河南商丘经济开发区","children":[{"code":"411472009","name":"平台街道"},{"code":"411472010","name":"平安街道"},{"code":"411472200","name":"周集乡"}]},{"code":"411481","name":"永城市","children":[{"code":"411481001","name":"演集街道"},{"code":"411481002","name":"崇法寺街道"},{"code":"411481003","name":"侯岭街道"},{"code":"411481004","name":"沱滨街道"},{"code":"411481005","name":"日月湖街道"},{"code":"411481006","name":"雪枫街道"},{"code":"411481102","name":"芒山镇"},{"code":"411481103","name":"高庄镇"},{"code":"411481104","name":"酂城镇"},{"code":"411481105","name":"裴桥镇"},{"code":"411481106","name":"马桥镇"},{"code":"411481107","name":"薛湖镇"},{"code":"411481108","name":"蒋口镇"},{"code":"411481109","name":"陈集镇"},{"code":"411481110","name":"十八里镇"},{"code":"411481111","name":"太丘镇"},{"code":"411481112","name":"李寨镇"},{"code":"411481113","name":"苗桥镇"},{"code":"411481114","name":"顺和镇"},{"code":"411481115","name":"茴村镇"},{"code":"411481116","name":"酂阳镇"},{"code":"411481117","name":"龙岗镇"},{"code":"411481118","name":"马牧镇"},{"code":"411481119","name":"大王集镇"},{"code":"411481120","name":"刘河镇"},{"code":"411481121","name":"双桥镇"},{"code":"411481122","name":"卧龙镇"},{"code":"411481123","name":"黄口镇"},{"code":"411481124","name":"新桥镇"},{"code":"411481125","name":"条河镇"},{"code":"411481219","name":"陈官庄乡"}]}]},{"code":"4115","name":"信阳市","children":[{"code":"411502","name":"浉河区","children":[{"code":"411502001","name":"老城街道"},{"code":"411502002","name":"民权街道"},{"code":"411502003","name":"车站街道"},{"code":"411502004","name":"五里墩街道"},{"code":"411502005","name":"五星街道"},{"code":"411502006","name":"湖东街道"},{"code":"411502007","name":"南湾街道"},{"code":"411502008","name":"金牛山街道"},{"code":"411502009","name":"双井街道"},{"code":"411502010","name":"贤山街道"},{"code":"411502100","name":"李家寨镇"},{"code":"411502101","name":"吴家店镇"},{"code":"411502102","name":"东双河镇"},{"code":"411502103","name":"董家河镇"},{"code":"411502104","name":"浉河港镇"},{"code":"411502203","name":"游河乡"},{"code":"411502206","name":"谭家河乡"},{"code":"411502207","name":"柳林乡"},{"code":"411502208","name":"十三里桥乡"}]},{"code":"411503","name":"平桥区","children":[{"code":"411503001","name":"羊山街道"},{"code":"411503002","name":"前进街道"},{"code":"411503003","name":"南京路街道"},{"code":"411503004","name":"平桥街道"},{"code":"411503005","name":"甘岸街道"},{"code":"411503006","name":"五里店街道"},{"code":"411503007","name":"平西街道"},{"code":"411503008","name":"平东街道"},{"code":"411503009","name":"震雷山街道"},{"code":"411503101","name":"明港镇"},{"code":"411503102","name":"五里镇"},{"code":"411503103","name":"邢集镇"},{"code":"411503105","name":"平昌镇"},{"code":"411503106","name":"洋河镇"},{"code":"411503107","name":"肖王镇"},{"code":"411503202","name":"龙井乡"},{"code":"411503203","name":"胡店乡"},{"code":"411503205","name":"彭家湾乡"},{"code":"411503206","name":"长台乡"},{"code":"411503207","name":"肖店乡"},{"code":"411503209","name":"王岗乡"},{"code":"411503210","name":"高粱店乡"},{"code":"411503211","name":"查山乡"},{"code":"411503400","name":"土城街道"},{"code":"411503401","name":"明港工业管理区"},{"code":"411503404","name":"城阳城址保护区"},{"code":"411503405","name":"龙飞山"},{"code":"411503406","name":"北湖风景管理区"},{"code":"411503408","name":"农村改革发展综合试验核心区"},{"code":"411503410","name":"信阳国际家居产业小镇"}]},{"code":"411521","name":"罗山县","children":[{"code":"411521001","name":"丽水街道"},{"code":"411521002","name":"宝城街道"},{"code":"411521003","name":"龙山街道"},{"code":"411521101","name":"周党镇"},{"code":"411521102","name":"竹竿镇"},{"code":"411521103","name":"灵山镇"},{"code":"411521104","name":"子路镇"},{"code":"411521105","name":"楠杆镇"},{"code":"411521106","name":"青山镇"},{"code":"411521107","name":"潘新镇"},{"code":"411521108","name":"彭新镇"},{"code":"411521109","name":"莽张镇"},{"code":"411521110","name":"东卜镇"},{"code":"411521111","name":"铁铺镇"},{"code":"411521202","name":"庙仙乡"},{"code":"411521204","name":"定远乡"},{"code":"411521205","name":"山店乡"},{"code":"411521207","name":"朱堂乡"},{"code":"411521208","name":"尤店乡"},{"code":"411521209","name":"高店乡"},{"code":"411521400","name":"河南省五一农场"}]},{"code":"411522","name":"光山县","children":[{"code":"411522001","name":"弦山街道"},{"code":"411522002","name":"紫水街道"},{"code":"411522101","name":"十里镇"},{"code":"411522102","name":"寨河镇"},{"code":"411522103","name":"孙铁铺镇"},{"code":"411522104","name":"马畈镇"},{"code":"411522105","name":"泼陂河镇"},{"code":"411522106","name":"白雀园镇"},{"code":"411522107","name":"砖桥镇"},{"code":"411522201","name":"仙居乡"},{"code":"411522203","name":"北向店乡"},{"code":"411522204","name":"罗陈乡"},{"code":"411522206","name":"殷棚乡"},{"code":"411522207","name":"南向店乡"},{"code":"411522208","name":"晏河乡"},{"code":"411522210","name":"凉亭乡"},{"code":"411522212","name":"斛山乡"},{"code":"411522213","name":"槐店乡"},{"code":"411522215","name":"文殊乡"}]},{"code":"411523","name":"新县","children":[{"code":"411523001","name":"金兰山街道"},{"code":"411523100","name":"新集镇"},{"code":"411523101","name":"沙窝镇"},{"code":"411523103","name":"吴陈河镇"},{"code":"411523104","name":"苏河镇"},{"code":"411523105","name":"八里畈镇"},{"code":"411523201","name":"周河乡"},{"code":"411523202","name":"陡山河乡"},{"code":"411523203","name":"浒湾乡"},{"code":"411523204","name":"千斤乡"},{"code":"411523205","name":"卡房乡"},{"code":"411523206","name":"郭家河乡"},{"code":"411523207","name":"陈店乡"},{"code":"411523208","name":"箭厂河乡"},{"code":"411523209","name":"泗店乡"},{"code":"411523210","name":"田铺乡"}]},{"code":"411524","name":"商城县","children":[{"code":"411524001","name":"赤城街道"},{"code":"411524002","name":"鲇鱼山街道"},{"code":"411524101","name":"上石桥镇"},{"code":"411524102","name":"鄢岗镇"},{"code":"411524103","name":"双椿铺镇"},{"code":"411524104","name":"汪桥镇"},{"code":"411524105","name":"余集镇"},{"code":"411524106","name":"达权店镇"},{"code":"411524107","name":"丰集镇"},{"code":"411524108","name":"汪岗镇"},{"code":"411524109","name":"观庙镇"},{"code":"411524110","name":"金刚台镇"},{"code":"411524203","name":"河凤桥乡"},{"code":"411524204","name":"李集乡"},{"code":"411524207","name":"苏仙石乡"},{"code":"411524209","name":"伏山乡"},{"code":"411524212","name":"吴河乡"},{"code":"411524213","name":"冯店乡"},{"code":"411524215","name":"长竹园乡"},{"code":"411524400","name":"汤泉池管理处"}]},{"code":"411525","name":"固始县","children":[{"code":"411525001","name":"蓼城街道"},{"code":"411525002","name":"番城街道"},{"code":"411525003","name":"秀水街道"},{"code":"411525101","name":"陈淋子镇"},{"code":"411525102","name":"黎集镇"},{"code":"411525103","name":"蒋集镇"},{"code":"411525104","name":"往流镇"},{"code":"411525105","name":"郭陆滩镇"},{"code":"411525106","name":"胡族铺镇"},{"code":"411525107","name":"方集镇"},{"code":"411525108","name":"三河尖镇"},{"code":"411525109","name":"段集镇"},{"code":"411525110","name":"汪棚镇"},{"code":"411525111","name":"张广庙镇"},{"code":"411525112","name":"陈集镇"},{"code":"411525113","name":"武庙集镇"},{"code":"411525114","name":"分水亭镇"},{"code":"411525115","name":"石佛店镇"},{"code":"411525116","name":"泉河铺镇"},{"code":"411525117","name":"祖师庙镇"},{"code":"411525118","name":"李店镇"},{"code":"411525119","name":"沙河铺镇"},{"code":"411525201","name":"洪埠乡"},{"code":"411525202","name":"杨集乡"},{"code":"411525203","name":"马堽集乡"},{"code":"411525204","name":"草庙集乡"},{"code":"411525206","name":"南大桥乡"},{"code":"411525208","name":"赵岗乡"},{"code":"411525211","name":"张老埠乡"},{"code":"411525218","name":"徐集乡"},{"code":"411525222","name":"丰港乡"},{"code":"411525223","name":"柳树店乡"},{"code":"411525224","name":"观堂乡"}]},{"code":"411526","name":"潢川县","children":[{"code":"411526001","name":"春申街道"},{"code":"411526002","name":"定城街道"},{"code":"411526003","name":"弋阳街道"},{"code":"411526004","name":"老城街道"},{"code":"411526101","name":"双柳树镇"},{"code":"411526102","name":"伞陂镇"},{"code":"411526103","name":"卜塔集镇"},{"code":"411526105","name":"仁和镇"},{"code":"411526106","name":"付店镇"},{"code":"411526107","name":"踅孜镇"},{"code":"411526108","name":"桃林铺镇"},{"code":"411526109","name":"黄寺岗镇"},{"code":"411526110","name":"江家集镇"},{"code":"411526201","name":"传流店乡"},{"code":"411526202","name":"魏岗乡"},{"code":"411526203","name":"张集乡"},{"code":"411526204","name":"来龙乡"},{"code":"411526205","name":"隆古乡"},{"code":"411526206","name":"谈店乡"},{"code":"411526207","name":"上油岗乡"},{"code":"411526209","name":"白店乡"},{"code":"411526400","name":"黄湖农场"},{"code":"411526560","name":"河南省潢川经济技术开发区"}]},{"code":"411527","name":"淮滨县","children":[{"code":"411527001","name":"顺河街道"},{"code":"411527002","name":"滨湖街道"},{"code":"411527003","name":"栏杆街道"},{"code":"411527004","name":"桂花街道"},{"code":"411527101","name":"马集镇"},{"code":"411527103","name":"防胡镇"},{"code":"411527104","name":"新里镇"},{"code":"411527105","name":"期思镇"},{"code":"411527106","name":"赵集镇"},{"code":"411527200","name":"台头乡"},{"code":"411527201","name":"王家岗乡"},{"code":"411527202","name":"固城乡"},{"code":"411527203","name":"三空桥乡"},{"code":"411527204","name":"张里乡"},{"code":"411527206","name":"邓湾乡"},{"code":"411527207","name":"张庄乡"},{"code":"411527208","name":"王店乡"},{"code":"411527209","name":"谷堆乡"},{"code":"411527212","name":"芦集乡"}]},{"code":"411528","name":"息县","children":[{"code":"411528001","name":"谯楼街道"},{"code":"411528002","name":"龙湖街道"},{"code":"411528003","name":"淮河街道"},{"code":"411528101","name":"包信镇"},{"code":"411528102","name":"夏庄镇"},{"code":"411528103","name":"东岳镇"},{"code":"411528104","name":"项店镇"},{"code":"411528105","name":"小茴店镇"},{"code":"411528106","name":"曹黄林镇"},{"code":"411528201","name":"孙庙乡"},{"code":"411528202","name":"路口乡"},{"code":"411528203","name":"彭店乡"},{"code":"411528204","name":"杨店乡"},{"code":"411528205","name":"张陶乡"},{"code":"411528206","name":"白土店乡"},{"code":"411528207","name":"岗李店乡"},{"code":"411528208","name":"长陵乡"},{"code":"411528209","name":"陈棚乡"},{"code":"411528210","name":"临河乡"},{"code":"411528211","name":"关店乡"},{"code":"411528214","name":"八里岔乡"},{"code":"411528400","name":"濮公山管理区"}]},{"code":"411571","name":"信阳高新技术产业开发区","children":[{"code":"411571001","name":"城东街道"},{"code":"411571002","name":"珍珠路街道"}]}]},{"code":"4116","name":"周口市","children":[{"code":"411602","name":"川汇区","children":[{"code":"411602001","name":"陈州街回族街道"},{"code":"411602002","name":"七一路街道"},{"code":"411602003","name":"荷花路街道"},{"code":"411602004","name":"人和街街道"},{"code":"411602005","name":"小桥街街道"},{"code":"411602006","name":"城南街道"},{"code":"411602007","name":"城北街道"},{"code":"411602008","name":"文昌街道"},{"code":"411602009","name":"搬口街道"},{"code":"411602010","name":"金海路街道"},{"code":"411602013","name":"李埠口街道"},{"code":"411602014","name":"许湾街道"}]},{"code":"411603","name":"淮阳区","children":[{"code":"411603001","name":"柳湖街道"},{"code":"411603100","name":"城关回族镇"},{"code":"411603101","name":"新站镇"},{"code":"411603102","name":"鲁台镇"},{"code":"411603103","name":"四通镇"},{"code":"411603104","name":"临蔡镇"},{"code":"411603105","name":"安岭镇"},{"code":"411603106","name":"白楼镇"},{"code":"411603200","name":"朱集乡"},{"code":"411603201","name":"豆门乡"},{"code":"411603202","name":"冯塘乡"},{"code":"411603203","name":"刘振屯乡"},{"code":"411603204","name":"王店乡"},{"code":"411603205","name":"大连乡"},{"code":"411603206","name":"葛店乡"},{"code":"411603207","name":"黄集乡"},{"code":"411603209","name":"齐老乡"},{"code":"411603210","name":"郑集乡"},{"code":"411603211","name":"曹河乡"}]},{"code":"411621","name":"扶沟县","children":[{"code":"411621001","name":"桐丘街道"},{"code":"411621003","name":"扶亭街道"},{"code":"411621101","name":"崔桥镇"},{"code":"411621102","name":"江村镇"},{"code":"411621103","name":"白潭镇"},{"code":"411621104","name":"韭园镇"},{"code":"411621105","name":"练寺镇"},{"code":"411621106","name":"大新镇"},{"code":"411621107","name":"包屯镇"},{"code":"411621108","name":"汴岗镇"},{"code":"411621200","name":"曹里乡"},{"code":"411621201","name":"柴岗乡"},{"code":"411621202","name":"固城乡"},{"code":"411621203","name":"吕潭乡"},{"code":"411621204","name":"大李庄乡"},{"code":"411621205","name":"城郊乡"}]},{"code":"411622","name":"西华县","children":[{"code":"411622001","name":"娲城街道"},{"code":"411622002","name":"箕子台街道"},{"code":"411622003","name":"昆山街道"},{"code":"411622004","name":"皮营街道"},{"code":"411622101","name":"西夏亭镇"},{"code":"411622102","name":"逍遥镇"},{"code":"411622103","name":"奉母镇"},{"code":"411622104","name":"红花集镇"},{"code":"411622105","name":"聂堆镇"},{"code":"411622106","name":"东夏亭镇"},{"code":"411622107","name":"西华营镇"},{"code":"411622108","name":"址坊镇"},{"code":"411622109","name":"迟营镇"},{"code":"411622200","name":"田口乡"},{"code":"411622201","name":"清河驿乡"},{"code":"411622203","name":"东王营乡"},{"code":"411622204","name":"大王庄乡"},{"code":"411622205","name":"李大庄乡"},{"code":"411622206","name":"叶埠口乡"},{"code":"411622208","name":"黄桥乡"},{"code":"411622209","name":"艾岗乡"},{"code":"411622405","name":"黄泛区农场"},{"code":"411622406","name":"五二农场"}]},{"code":"411623","name":"商水县","children":[{"code":"411623001","name":"新城街道"},{"code":"411623002","name":"东城街道"},{"code":"411623003","name":"老城街道"},{"code":"411623101","name":"黄寨镇"},{"code":"411623102","name":"练集镇"},{"code":"411623103","name":"魏集镇"},{"code":"411623104","name":"固墙镇"},{"code":"411623105","name":"白寺镇"},{"code":"411623106","name":"巴村镇"},{"code":"411623107","name":"谭庄镇"},{"code":"411623108","name":"邓城镇"},{"code":"411623109","name":"胡吉镇"},{"code":"411623110","name":"郝岗镇"},{"code":"411623111","name":"姚集镇"},{"code":"411623112","name":"张庄镇"},{"code":"411623200","name":"城关乡"},{"code":"411623202","name":"平店乡"},{"code":"411623203","name":"袁老乡"},{"code":"411623204","name":"化河乡"},{"code":"411623206","name":"舒庄乡"},{"code":"411623207","name":"大武乡"},{"code":"411623208","name":"张明乡"},{"code":"411623211","name":"汤庄乡"}]},{"code":"411624","name":"沈丘县","children":[{"code":"411624001","name":"东城街道"},{"code":"411624002","name":"北城街道"},{"code":"411624100","name":"槐店回族镇"},{"code":"411624101","name":"刘庄店镇"},{"code":"411624102","name":"留福集镇"},{"code":"411624103","name":"老城镇"},{"code":"411624104","name":"赵德营镇"},{"code":"411624105","name":"付井镇"},{"code":"411624106","name":"纸店镇"},{"code":"411624107","name":"新安集镇"},{"code":"411624108","name":"白集镇"},{"code":"411624109","name":"刘湾镇"},{"code":"411624110","name":"莲池镇"},{"code":"411624111","name":"洪山镇"},{"code":"411624112","name":"北杨集镇"},{"code":"411624113","name":"邢庄镇"},{"code":"411624114","name":"周营镇"},{"code":"411624201","name":"石槽集乡"},{"code":"411624202","name":"范营乡"},{"code":"411624203","name":"李老庄乡"},{"code":"411624205","name":"冯营乡"},{"code":"411624209","name":"卞路口乡"}]},{"code":"411625","name":"郸城县","children":[{"code":"411625001","name":"洺南街道"},{"code":"411625002","name":"洺北街道"},{"code":"411625003","name":"新城街道"},{"code":"411625101","name":"吴台镇"},{"code":"411625102","name":"南丰镇"},{"code":"411625103","name":"白马镇"},{"code":"411625104","name":"宁平镇"},{"code":"411625105","name":"宜路镇"},{"code":"411625106","name":"钱店镇"},{"code":"411625107","name":"汲冢镇"},{"code":"411625108","name":"石槽镇"},{"code":"411625200","name":"城郊乡"},{"code":"411625201","name":"虎岗乡"},{"code":"411625202","name":"汲水乡"},{"code":"411625203","name":"张完集乡"},{"code":"411625204","name":"丁村乡"},{"code":"411625205","name":"双楼乡"},{"code":"411625206","name":"秋渠乡"},{"code":"411625207","name":"东风乡"},{"code":"411625208","name":"巴集乡"},{"code":"411625209","name":"李楼乡"},{"code":"411625210","name":"胡集乡"}]},{"code":"411627","name":"太康县","children":[{"code":"411627100","name":"城关回族镇"},{"code":"411627101","name":"常营镇"},{"code":"411627102","name":"逊母口镇"},{"code":"411627103","name":"老冢镇"},{"code":"411627104","name":"朱口镇"},{"code":"411627105","name":"马头镇"},{"code":"411627106","name":"龙曲镇"},{"code":"411627107","name":"板桥镇"},{"code":"411627108","name":"符草楼镇"},{"code":"411627109","name":"马厂镇"},{"code":"411627110","name":"毛庄镇"},{"code":"411627111","name":"张集镇"},{"code":"411627112","name":"清集镇"},{"code":"411627113","name":"大许寨镇"},{"code":"411627114","name":"转楼镇"},{"code":"411627200","name":"城郊乡"},{"code":"411627201","name":"杨庙乡"},{"code":"411627202","name":"王集乡"},{"code":"411627203","name":"高贤乡"},{"code":"411627204","name":"芝麻洼乡"},{"code":"411627206","name":"独塘乡"},{"code":"411627208","name":"五里口乡"},{"code":"411627210","name":"高朗乡"}]},{"code":"411628","name":"鹿邑县","children":[{"code":"411628001","name":"真源街道"},{"code":"411628002","name":"谷阳街道"},{"code":"411628003","name":"卫真街道"},{"code":"411628004","name":"鸣鹿街道"},{"code":"411628100","name":"涡北镇"},{"code":"411628101","name":"玄武镇"},{"code":"411628102","name":"宋河镇"},{"code":"411628103","name":"太清宫镇"},{"code":"411628104","name":"王皮溜镇"},{"code":"411628105","name":"试量镇"},{"code":"411628106","name":"辛集镇"},{"code":"411628107","name":"马铺镇"},{"code":"411628108","name":"贾滩镇"},{"code":"411628109","name":"杨湖口镇"},{"code":"411628110","name":"张店镇"},{"code":"411628111","name":"观堂镇"},{"code":"411628112","name":"生铁冢镇"},{"code":"411628200","name":"郑家集乡"},{"code":"411628204","name":"赵村乡"},{"code":"411628205","name":"任集乡"},{"code":"411628206","name":"唐集乡"},{"code":"411628207","name":"高集乡"},{"code":"411628208","name":"邱集乡"},{"code":"411628209","name":"穆店乡"}]},{"code":"411671","name":"河南周口经济开发区","children":[{"code":"411671011","name":"太昊路街道"},{"code":"411671012","name":"淮河路街道"}]},{"code":"411681","name":"项城市","children":[{"code":"411681001","name":"花园街道"},{"code":"411681002","name":"水寨街道"},{"code":"411681003","name":"东方街道"},{"code":"411681004","name":"莲花街道"},{"code":"411681005","name":"千佛阁街道"},{"code":"411681006","name":"光武街道"},{"code":"411681100","name":"南顿镇"},{"code":"411681101","name":"孙店镇"},{"code":"411681102","name":"李寨镇"},{"code":"411681103","name":"贾岭镇"},{"code":"411681104","name":"高寺镇"},{"code":"411681105","name":"新桥镇"},{"code":"411681106","name":"付集镇"},{"code":"411681107","name":"官会镇"},{"code":"411681108","name":"丁集镇"},{"code":"411681109","name":"郑郭镇"},{"code":"411681110","name":"秣陵镇"},{"code":"411681111","name":"王明口镇"},{"code":"411681112","name":"范集镇"},{"code":"411681113","name":"三店镇"},{"code":"411681114","name":"永丰镇"}]}]},{"code":"4117","name":"驻马店市","children":[{"code":"411702","name":"驿城区","children":[{"code":"411702001","name":"人民街街道"},{"code":"411702002","name":"东风路街道"},{"code":"411702003","name":"西园街街道"},{"code":"411702004","name":"新华街街道"},{"code":"411702005","name":"南海街道"},{"code":"411702006","name":"老街街道"},{"code":"411702007","name":"橡林街道"},{"code":"411702008","name":"雪松街道"},{"code":"411702009","name":"顺河街道"},{"code":"411702010","name":"刘阁街道"},{"code":"411702011","name":"香山街道"},{"code":"411702012","name":"古城街道"},{"code":"411702100","name":"水屯镇"},{"code":"411702101","name":"沙河店镇"},{"code":"411702102","name":"板桥镇"},{"code":"411702103","name":"诸市镇"},{"code":"411702104","name":"蚁蜂镇"},{"code":"411702201","name":"老河乡"},{"code":"411702204","name":"朱古洞乡"},{"code":"411702205","name":"胡庙乡"},{"code":"411702561","name":"金桥街道"}]},{"code":"411721","name":"西平县","children":[{"code":"411721001","name":"柏城街道"},{"code":"411721002","name":"柏亭街道"},{"code":"411721003","name":"柏苑街道"},{"code":"411721101","name":"五沟营镇"},{"code":"411721102","name":"权寨镇"},{"code":"411721103","name":"师灵镇"},{"code":"411721104","name":"出山镇"},{"code":"411721105","name":"盆尧镇"},{"code":"411721106","name":"嫘祖镇"},{"code":"411721107","name":"宋集镇"},{"code":"411721108","name":"二郎镇"},{"code":"411721201","name":"重渠乡"},{"code":"411721203","name":"人和乡"},{"code":"411721205","name":"谭店乡"},{"code":"411721208","name":"芦庙乡"},{"code":"411721209","name":"杨庄乡"},{"code":"411721210","name":"专探乡"},{"code":"411721212","name":"蔡寨回族乡"},{"code":"411721213","name":"焦庄乡"},{"code":"411721500","name":"老王坡农场"}]},{"code":"411722","name":"上蔡县","children":[{"code":"411722001","name":"蔡都街道"},{"code":"411722002","name":"芦岗街道"},{"code":"411722003","name":"重阳街道"},{"code":"411722004","name":"卧龙街道"},{"code":"411722101","name":"黄埠镇"},{"code":"411722102","name":"杨集镇"},{"code":"411722103","name":"洙湖镇"},{"code":"411722104","name":"党店镇"},{"code":"411722105","name":"朱里镇"},{"code":"411722106","name":"华陂镇"},{"code":"411722107","name":"塔桥镇"},{"code":"411722108","name":"东洪镇"},{"code":"411722109","name":"邵店镇"},{"code":"411722110","name":"五龙镇"},{"code":"411722111","name":"和店镇"},{"code":"411722112","name":"韩寨镇"},{"code":"411722113","name":"蔡沟镇"},{"code":"411722201","name":"大路李乡"},{"code":"411722202","name":"无量寺乡"},{"code":"411722205","name":"杨屯乡"},{"code":"411722209","name":"齐海乡"},{"code":"411722210","name":"崇礼乡"},{"code":"411722212","name":"东岸乡"},{"code":"411722215","name":"小岳寺乡"},{"code":"411722216","name":"西洪乡"},{"code":"411722217","name":"百尺乡"}]},{"code":"411723","name":"平舆县","children":[{"code":"411723001","name":"古槐街道"},{"code":"411723002","name":"清河街道"},{"code":"411723003","name":"东皇街道"},{"code":"411723101","name":"杨埠镇"},{"code":"411723102","name":"东和店镇"},{"code":"411723103","name":"庙湾镇"},{"code":"411723104","name":"射桥镇"},{"code":"411723105","name":"西洋店镇"},{"code":"411723106","name":"阳城镇"},{"code":"411723107","name":"郭楼镇"},{"code":"411723108","name":"李屯镇"},{"code":"411723109","name":"万金店镇"},{"code":"411723110","name":"高杨店镇"},{"code":"411723111","name":"万冢镇"},{"code":"411723202","name":"十字路乡"},{"code":"411723205","name":"玉皇庙乡"},{"code":"411723208","name":"老王岗乡"},{"code":"411723209","name":"辛店乡"},{"code":"411723211","name":"双庙乡"}]},{"code":"411724","name":"正阳县","children":[{"code":"411724001","name":"真阳街道"},{"code":"411724002","name":"清源街道"},{"code":"411724101","name":"寒冻镇"},{"code":"411724102","name":"汝南埠镇"},{"code":"411724103","name":"铜钟镇"},{"code":"411724104","name":"陡沟镇"},{"code":"411724105","name":"熊寨镇"},{"code":"411724106","name":"大林镇"},{"code":"411724107","name":"永兴镇"},{"code":"411724108","name":"袁寨镇"},{"code":"411724200","name":"慎水乡"},{"code":"411724201","name":"傅寨乡"},{"code":"411724203","name":"新阮店乡"},{"code":"411724204","name":"油坊店乡"},{"code":"411724207","name":"雷寨乡"},{"code":"411724208","name":"王勿桥乡"},{"code":"411724210","name":"吕河乡"},{"code":"411724212","name":"皮店乡"},{"code":"411724213","name":"彭桥乡"},{"code":"411724214","name":"兰青乡"}]},{"code":"411725","name":"确山县","children":[{"code":"411725001","name":"盘龙街道"},{"code":"411725002","name":"三里河街道"},{"code":"411725003","name":"朗陵街道"},{"code":"411725101","name":"竹沟镇"},{"code":"411725102","name":"任店镇"},{"code":"411725103","name":"新安店镇"},{"code":"411725104","name":"留庄镇"},{"code":"411725105","name":"刘店镇"},{"code":"411725107","name":"瓦岗镇"},{"code":"411725108","name":"双河镇"},{"code":"411725109","name":"石滚河镇"},{"code":"411725110","name":"李新店镇"},{"code":"411725111","name":"普会寺镇"}]},{"code":"411726","name":"泌阳县","children":[{"code":"411726001","name":"花园街道"},{"code":"411726002","name":"泌水街道"},{"code":"411726003","name":"古城街道"},{"code":"411726102","name":"羊册镇"},{"code":"411726103","name":"马谷田镇"},{"code":"411726105","name":"春水镇"},{"code":"411726106","name":"官庄镇"},{"code":"411726107","name":"赊湾镇"},{"code":"411726108","name":"郭集镇"},{"code":"411726109","name":"泰山庙镇"},{"code":"411726110","name":"王店镇"},{"code":"411726111","name":"杨家集镇"},{"code":"411726112","name":"高店镇"},{"code":"411726113","name":"高邑镇"},{"code":"411726201","name":"盘古乡"},{"code":"411726204","name":"铜山乡"},{"code":"411726206","name":"下碑寺乡"},{"code":"411726207","name":"象河乡"},{"code":"411726208","name":"付庄乡"},{"code":"411726209","name":"贾楼乡"},{"code":"411726210","name":"黄山口乡"},{"code":"411726215","name":"双庙街乡"},{"code":"411726400","name":"工业园区管委会"},{"code":"411726401","name":"石材开发区管委会"}]},{"code":"411727","name":"汝南县","children":[{"code":"411727001","name":"汝宁街道"},{"code":"411727002","name":"三门闸街道"},{"code":"411727003","name":"古塔街道"},{"code":"411727004","name":"宿鸭湖街道"},{"code":"411727101","name":"王岗镇"},{"code":"411727102","name":"梁祝镇"},{"code":"411727103","name":"和孝镇"},{"code":"411727104","name":"老君庙镇"},{"code":"411727105","name":"留盆镇"},{"code":"411727106","name":"金铺镇"},{"code":"411727107","name":"东官庄镇"},{"code":"411727108","name":"常兴镇"},{"code":"411727109","name":"罗店镇"},{"code":"411727110","name":"韩庄镇"},{"code":"411727111","name":"三桥镇"},{"code":"411727112","name":"张楼镇"},{"code":"411727204","name":"南余店乡"},{"code":"411727212","name":"板店乡"}]},{"code":"411728","name":"遂平县","children":[{"code":"411728001","name":"瞿阳街道"},{"code":"411728002","name":"车站街道"},{"code":"411728003","name":"莲花湖街道"},{"code":"411728004","name":"褚堂街道"},{"code":"411728005","name":"吴房街道"},{"code":"411728102","name":"玉山镇"},{"code":"411728103","name":"查岈山镇"},{"code":"411728104","name":"石寨铺镇"},{"code":"411728105","name":"和兴镇"},{"code":"411728106","name":"沈寨镇"},{"code":"411728107","name":"阳丰镇"},{"code":"411728108","name":"常庄镇"},{"code":"411728109","name":"花庄镇"},{"code":"411728204","name":"槐树乡"},{"code":"411728209","name":"文城乡"},{"code":"411728400","name":"工业园区"},{"code":"411728500","name":"嵖岈山风景区"},{"code":"411728501","name":"凤鸣谷风景区"}]},{"code":"411729","name":"新蔡县","children":[{"code":"411729001","name":"古吕街道"},{"code":"411729002","name":"今是街道"},{"code":"411729003","name":"月亮湾街道"},{"code":"411729101","name":"砖店镇"},{"code":"411729102","name":"陈店镇"},{"code":"411729103","name":"佛阁寺镇"},{"code":"411729104","name":"练村镇"},{"code":"411729105","name":"棠村镇"},{"code":"411729106","name":"韩集镇"},{"code":"411729107","name":"龙口镇"},{"code":"411729108","name":"李桥回族镇"},{"code":"411729109","name":"黄楼镇"},{"code":"411729110","name":"孙召镇"},{"code":"411729111","name":"余店镇"},{"code":"411729204","name":"河坞乡"},{"code":"411729205","name":"关津乡"},{"code":"411729206","name":"宋岗乡"},{"code":"411729207","name":"顿岗乡"},{"code":"411729208","name":"涧头乡"},{"code":"411729209","name":"杨庄户乡"},{"code":"411729210","name":"化庄乡"},{"code":"411729211","name":"栎城乡"},{"code":"411729213","name":"弥陀寺乡"},{"code":"411729400","name":"南湖街道"}]},{"code":"411771","name":"河南驻马店经济开发区","children":[{"code":"411771360","name":"关王庙乡"},{"code":"411771400","name":"驻马店市职教园区"},{"code":"411771560","name":"金河街道"},{"code":"411771562","name":"金山街道"},{"code":"411771563","name":"开源街道"}]}]},{"code":"4190","name":"省直辖县级行政区划","children":[{"code":"419001","name":"济源市","children":[{"code":"419001001","name":"济源市沁园街道"},{"code":"419001002","name":"济源市济水街道"},{"code":"419001003","name":"济源市北海街道"},{"code":"419001004","name":"济源市天坛街道"},{"code":"419001005","name":"济源市玉泉街道"},{"code":"419001100","name":"济源市克井镇"},{"code":"419001101","name":"济源市五龙口镇"},{"code":"419001102","name":"济源市轵城镇"},{"code":"419001103","name":"济源市承留镇"},{"code":"419001104","name":"济源市邵原镇"},{"code":"419001105","name":"济源市坡头镇"},{"code":"419001106","name":"济源市梨林镇"},{"code":"419001107","name":"济源市大峪镇"},{"code":"419001108","name":"济源市思礼镇"},{"code":"419001109","name":"济源市王屋镇"},{"code":"419001110","name":"济源市下冶镇"}]}]}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市","children":[{"code":"420102","name":"江岸区","children":[{"code":"420102002","name":"大智街道"},{"code":"420102003","name":"一元街道"},{"code":"420102004","name":"车站街道"},{"code":"420102005","name":"四唯街道"},{"code":"420102006","name":"永清街道"},{"code":"420102007","name":"西马街道"},{"code":"420102008","name":"球场街道"},{"code":"420102009","name":"劳动街道"},{"code":"420102010","name":"二七街道"},{"code":"420102011","name":"新村街道"},{"code":"420102012","name":"丹水池街道"},{"code":"420102014","name":"台北街道"},{"code":"420102015","name":"花桥街道"},{"code":"420102016","name":"谌家矶街道"},{"code":"420102017","name":"后湖街道"},{"code":"420102018","name":"塔子湖街道"},{"code":"420102400","name":"百步亭花园"}]},{"code":"420103","name":"江汉区","children":[{"code":"420103001","name":"民族街街道"},{"code":"420103002","name":"花楼街街道"},{"code":"420103003","name":"水塔街街道"},{"code":"420103004","name":"民权街街道"},{"code":"420103005","name":"满春街街道"},{"code":"420103006","name":"民意街街道"},{"code":"420103007","name":"新华街街道"},{"code":"420103008","name":"万松街街道"},{"code":"420103009","name":"唐家墩街街道"},{"code":"420103010","name":"北湖街街道"},{"code":"420103011","name":"前进街街道"},{"code":"420103012","name":"常青街街道"},{"code":"420103013","name":"汉兴街街道"},{"code":"420103400","name":"江汉经济开发区"},{"code":"420103401","name":"武汉中央商务区管理委员会"}]},{"code":"420104","name":"硚口区","children":[{"code":"420104001","name":"古田街道"},{"code":"420104002","name":"韩家墩街道"},{"code":"420104003","name":"宗关街道"},{"code":"420104004","name":"汉水桥街道"},{"code":"420104005","name":"宝丰街道"},{"code":"420104006","name":"荣华街道"},{"code":"420104008","name":"汉中街道"},{"code":"420104009","name":"汉正街道"},{"code":"420104010","name":"六角亭街道"},{"code":"420104011","name":"长丰街道"},{"code":"420104012","name":"易家街道"}]},{"code":"420105","name":"汉阳区","children":[{"code":"420105002","name":"建桥街道"},{"code":"420105004","name":"晴川街道"},{"code":"420105005","name":"鹦鹉街道"},{"code":"420105006","name":"洲头街道"},{"code":"420105007","name":"五里墩街道"},{"code":"420105008","name":"琴断口街道"},{"code":"420105009","name":"江汉二桥街道"},{"code":"420105010","name":"永丰街道"},{"code":"420105011","name":"江堤街道"},{"code":"420105012","name":"四新街道"},{"code":"420105013","name":"龙阳街道"}]},{"code":"420106","name":"武昌区","children":[{"code":"420106001","name":"积玉桥街道"},{"code":"420106002","name":"杨园街道"},{"code":"420106003","name":"徐家棚街道"},{"code":"420106005","name":"粮道街道"},{"code":"420106006","name":"中华路街道"},{"code":"420106007","name":"黄鹤楼街道"},{"code":"420106008","name":"紫阳街道"},{"code":"420106009","name":"白沙洲街道"},{"code":"420106010","name":"首义路街道"},{"code":"420106011","name":"中南路街道"},{"code":"420106012","name":"水果湖街道"},{"code":"420106013","name":"珞珈山街道"},{"code":"420106014","name":"石洞街道"},{"code":"420106015","name":"南湖街道"},{"code":"420106490","name":"东湖风景区街道(武昌)"}]},{"code":"420107","name":"青山区","children":[{"code":"420107001","name":"红卫路街道"},{"code":"420107002","name":"冶金街道"},{"code":"420107003","name":"新沟桥街道"},{"code":"420107004","name":"红钢城街道"},{"code":"420107005","name":"工人村街道"},{"code":"420107006","name":"青山镇街道"},{"code":"420107007","name":"厂前街道"},{"code":"420107008","name":"武东街道"},{"code":"420107009","name":"白玉山街道"},{"code":"420107010","name":"钢花村街道"},{"code":"420107400","name":"武钢集团"},{"code":"420107401","name":"中国一冶有限责任公司"},{"code":"420107402","name":"武汉钢铁有限公司"},{"code":"420107403","name":"中国一冶集体企业管理处"},{"code":"420107404","name":"开发区"},{"code":"420107405","name":"钢都花园"},{"code":"420107406","name":"北湖工业园管理办公室"}]},{"code":"420111","name":"洪山区","children":[{"code":"420111001","name":"珞南街道"},{"code":"420111002","name":"关山街道"},{"code":"420111003","name":"狮子山街道"},{"code":"420111004","name":"张家湾街道"},{"code":"420111005","name":"梨园街道"},{"code":"420111006","name":"卓刀泉街道"},{"code":"420111007","name":"洪山街街道"},{"code":"420111008","name":"和平街道"},{"code":"420111009","name":"青菱街道"},{"code":"420111061","name":"八吉府街道"},{"code":"420111080","name":"关东街道"},{"code":"420111081","name":"花山街道"},{"code":"420111082","name":"左岭街道"},{"code":"420111083","name":"九峰街道"},{"code":"420111205","name":"天兴乡"},{"code":"420111460","name":"清谭湖街道"},{"code":"420111491","name":"东湖风景区街道(洪山)"}]},{"code":"420112","name":"东西湖区","children":[{"code":"420112001","name":"吴家山街道"},{"code":"420112002","name":"柏泉街道"},{"code":"420112004","name":"将军路街道"},{"code":"420112005","name":"慈惠街道"},{"code":"420112006","name":"走马岭街道"},{"code":"420112007","name":"径河街道"},{"code":"420112008","name":"长青街道"},{"code":"420112011","name":"辛安渡街道"},{"code":"420112012","name":"东山街道"},{"code":"420112013","name":"常青花园新区管理委员会街道"},{"code":"420112014","name":"新沟镇街道"},{"code":"420112015","name":"金银湖街道"},{"code":"420112400","name":"产业管理处"},{"code":"420112401","name":"保税物流管理处"},{"code":"420112402","name":"海峡两岸科技产业管理处"},{"code":"420112403","name":"食品工业管理处"},{"code":"420112404","name":"临空经济管理处"},{"code":"420112405","name":"农科所管理处"},{"code":"420112406","name":"现代服务业管理处"}]},{"code":"420113","name":"汉南区","children":[{"code":"420113001","name":"纱帽街道"},{"code":"420113002","name":"邓南街道"},{"code":"420113003","name":"东荆街道"},{"code":"420113004","name":"湘口街道"}]},{"code":"420114","name":"蔡甸区","children":[{"code":"420114001","name":"蔡甸街道"},{"code":"420114002","name":"奓山街道"},{"code":"420114003","name":"永安街道"},{"code":"420114004","name":"侏儒山街道"},{"code":"420114005","name":"大集街道"},{"code":"420114006","name":"张湾街道"},{"code":"420114007","name":"索河街道"},{"code":"420114008","name":"玉贤街道"},{"code":"420114070","name":"沌口街道"},{"code":"420114071","name":"军山街道"},{"code":"420114072","name":"沌阳街道"},{"code":"420114200","name":"消泗乡"},{"code":"420114400","name":"桐湖"},{"code":"420114401","name":"侏儒山街道洪北片区"},{"code":"420114404","name":"中法武汉生态示范城"},{"code":"420114406","name":"侏儒山街道成功片区"},{"code":"420114407","name":"蔡甸经济开发区"}]},{"code":"420115","name":"江夏区","children":[{"code":"420115001","name":"纸坊街道"},{"code":"420115002","name":"金口街道"},{"code":"420115003","name":"乌龙泉街道"},{"code":"420115005","name":"郑店街道"},{"code":"420115007","name":"五里界街道"},{"code":"420115008","name":"金水街道"},{"code":"420115009","name":"安山街道"},{"code":"420115010","name":"山坡街道"},{"code":"420115014","name":"法泗街道"},{"code":"420115015","name":"湖泗街道"},{"code":"420115016","name":"舒安街道"},{"code":"420115086","name":"佛祖岭街道"},{"code":"420115087","name":"豹澥街道"},{"code":"420115088","name":"龙泉街道"},{"code":"420115089","name":"滨湖街道"},{"code":"420115401","name":"武汉江夏经济开发区庙山高新技术产业园"},{"code":"420115402","name":"武汉江夏经济开发区藏龙岛高新技术产业园"},{"code":"420115403","name":"武汉江夏经济开发区大桥现代产业园"},{"code":"420115404","name":"江夏梁子湖风景区"},{"code":"420115405","name":"武汉江夏经济开发区金港汽车产业园"}]},{"code":"420116","name":"黄陂区","children":[{"code":"420116001","name":"前川街道"},{"code":"420116002","name":"祁家湾街道"},{"code":"420116003","name":"横店街道"},{"code":"420116004","name":"罗汉寺街道"},{"code":"420116005","name":"滠口街道"},{"code":"420116006","name":"六指街道"},{"code":"420116007","name":"天河街道"},{"code":"420116008","name":"王家河街道"},{"code":"420116009","name":"长轩岭街道"},{"code":"420116010","name":"李集街道"},{"code":"420116011","name":"姚集街道"},{"code":"420116012","name":"蔡榨街道"},{"code":"420116013","name":"武湖街道"},{"code":"420116014","name":"三里桥街道"},{"code":"420116015","name":"蔡店街道"},{"code":"420116201","name":"木兰乡"},{"code":"420116401","name":"木兰山风景区管理处"},{"code":"420116402","name":"大潭"},{"code":"420116403","name":"盘龙城经济开发区"},{"code":"420116404","name":"汉口北商贸物流枢纽区管委会"}]},{"code":"420117","name":"新洲区","children":[{"code":"420117001","name":"邾城街道"},{"code":"420117002","name":"阳逻街道"},{"code":"420117003","name":"仓埠街道"},{"code":"420117004","name":"汪集街道"},{"code":"420117005","name":"李集街道"},{"code":"420117006","name":"三店街道"},{"code":"420117007","name":"潘塘街道"},{"code":"420117008","name":"旧街街道"},{"code":"420117009","name":"双柳街道"},{"code":"420117010","name":"涨渡湖街道"},{"code":"420117011","name":"辛冲街道"},{"code":"420117012","name":"徐古街道"},{"code":"420117102","name":"凤凰镇"},{"code":"420117400","name":"道观河风景旅游管理处"},{"code":"420117406","name":"新洲原种场"}]}]},{"code":"4202","name":"黄石市","children":[{"code":"420202","name":"黄石港区","children":[{"code":"420202005","name":"沈家营街道"},{"code":"420202006","name":"黄石港街道"},{"code":"420202007","name":"胜阳港街道"},{"code":"420202070","name":"花湖街道"},{"code":"420202400","name":"江北管理区"}]},{"code":"420203","name":"西塞山区","children":[{"code":"420203007","name":"章山街道"},{"code":"420203008","name":"八泉街道"},{"code":"420203009","name":"澄月街道"},{"code":"420203010","name":"牧羊湖街道"},{"code":"420203011","name":"黄思湾街道"},{"code":"420203400","name":"冶钢农场"},{"code":"420203402","name":"西塞山工业园区管委会"}]},{"code":"420204","name":"下陆区","children":[{"code":"420204004","name":"团城山街道"},{"code":"420204005","name":"新下陆街道"},{"code":"420204006","name":"老下陆街道"},{"code":"420204007","name":"东方山街道"},{"code":"420204401","name":"长乐山工业园管理委员会"}]},{"code":"420205","name":"铁山区","children":[{"code":"420205003","name":"铁山街道"}]},{"code":"420222","name":"阳新县","children":[{"code":"420222100","name":"兴国镇"},{"code":"420222101","name":"富池镇"},{"code":"420222102","name":"黄颡口镇"},{"code":"420222103","name":"韦源口镇"},{"code":"420222104","name":"太子镇"},{"code":"420222105","name":"大王镇"},{"code":"420222106","name":"陶港镇"},{"code":"420222107","name":"白沙镇"},{"code":"420222108","name":"浮屠镇"},{"code":"420222109","name":"三溪镇"},{"code":"420222110","name":"龙港镇"},{"code":"420222111","name":"洋港镇"},{"code":"420222112","name":"排市镇"},{"code":"420222113","name":"木港镇"},{"code":"420222114","name":"枫林镇"},{"code":"420222115","name":"王英镇"},{"code":"420222451","name":"率洲农场"},{"code":"420222452","name":"半壁山农场"},{"code":"420222453","name":"荆头山农场"},{"code":"420222455","name":"金海开发区"},{"code":"420222456","name":"城东新区"}]},{"code":"420281","name":"大冶市","children":[{"code":"420281001","name":"东岳路街道"},{"code":"420281002","name":"东风路街道"},{"code":"420281003","name":"金湖街道"},{"code":"420281004","name":"罗家桥街道"},{"code":"420281070","name":"金山街道"},{"code":"420281100","name":"金牛镇"},{"code":"420281101","name":"保安镇"},{"code":"420281102","name":"灵乡镇"},{"code":"420281103","name":"金山店镇"},{"code":"420281104","name":"还地桥镇"},{"code":"420281105","name":"殷祖镇"},{"code":"420281107","name":"刘仁八镇"},{"code":"420281108","name":"陈贵镇"},{"code":"420281109","name":"大箕铺镇"},{"code":"420281170","name":"汪仁镇"},{"code":"420281200","name":"茗山乡"},{"code":"420281401","name":"东风农场管理区"},{"code":"420281402","name":"四顾闸管理处"}]}]},{"code":"4203","name":"十堰市","children":[{"code":"420302","name":"茅箭区","children":[{"code":"420302001","name":"武当路街道"},{"code":"420302002","name":"二堰街道"},{"code":"420302003","name":"五堰街道"},{"code":"420302004","name":"白浪开发区白浪街道"},{"code":"420302100","name":"大川镇"},{"code":"420302201","name":"茅塔乡"},{"code":"420302202","name":"鸳鸯乡"}]},{"code":"420303","name":"张湾区","children":[{"code":"420303001","name":"花果街道"},{"code":"420303002","name":"红卫街道"},{"code":"420303003","name":"车城路街道"},{"code":"420303004","name":"汉江路街道"},{"code":"420303100","name":"黄龙镇"},{"code":"420303101","name":"柏林镇"},{"code":"420303200","name":"方滩乡"},{"code":"420303201","name":"西沟乡"},{"code":"420303400","name":"西城开发区"},{"code":"420303401","name":"十堰工业新区"}]},{"code":"420304","name":"郧阳区","children":[{"code":"420304101","name":"安阳镇"},{"code":"420304102","name":"杨溪铺镇"},{"code":"420304103","name":"青曲镇"},{"code":"420304104","name":"白桑关镇"},{"code":"420304105","name":"南化塘镇"},{"code":"420304106","name":"白浪镇"},{"code":"420304107","name":"刘洞镇"},{"code":"420304108","name":"谭山镇"},{"code":"420304109","name":"梅铺镇"},{"code":"420304110","name":"青山镇"},{"code":"420304111","name":"茶店镇"},{"code":"420304112","name":"柳陂镇"},{"code":"420304113","name":"鲍峡镇"},{"code":"420304114","name":"胡家营镇"},{"code":"420304115","name":"谭家湾镇"},{"code":"420304117","name":"城关镇"},{"code":"420304200","name":"大柳乡"},{"code":"420304201","name":"五峰乡"},{"code":"420304202","name":"叶大乡"},{"code":"420304400","name":"沧浪山林场"}]},{"code":"420322","name":"郧西县","children":[{"code":"420322100","name":"城关镇"},{"code":"420322101","name":"土门镇"},{"code":"420322102","name":"上津镇"},{"code":"420322103","name":"店子镇"},{"code":"420322104","name":"夹河镇"},{"code":"420322105","name":"羊尾镇"},{"code":"420322106","name":"观音镇"},{"code":"420322107","name":"马鞍镇"},{"code":"420322108","name":"河夹镇"},{"code":"420322200","name":"香口乡"},{"code":"420322201","name":"关防乡"},{"code":"420322202","name":"湖北口回族乡"},{"code":"420322203","name":"景阳乡"},{"code":"420322204","name":"六郎乡"},{"code":"420322205","name":"涧池乡"},{"code":"420322206","name":"安家乡"},{"code":"420322400","name":"槐树林特场管委会"},{"code":"420322401","name":"三官洞林区"},{"code":"420322402","name":"工业园区"}]},{"code":"420323","name":"竹山县","children":[{"code":"420323100","name":"城关镇"},{"code":"420323101","name":"溢水镇"},{"code":"420323102","name":"麻家渡镇"},{"code":"420323103","name":"宝丰镇"},{"code":"420323104","name":"擂鼓镇"},{"code":"420323105","name":"秦古镇"},{"code":"420323106","name":"得胜镇"},{"code":"420323107","name":"上庸镇"},{"code":"420323108","name":"官渡镇"},{"code":"420323200","name":"潘口乡"},{"code":"420323201","name":"竹坪乡"},{"code":"420323202","name":"大庙乡"},{"code":"420323203","name":"双台乡"},{"code":"420323204","name":"楼台乡"},{"code":"420323205","name":"文峰乡"},{"code":"420323206","name":"深河乡"},{"code":"420323207","name":"柳林乡"}]},{"code":"420324","name":"竹溪县","children":[{"code":"420324100","name":"城关镇"},{"code":"420324101","name":"蒋家堰镇"},{"code":"420324102","name":"中峰镇"},{"code":"420324103","name":"水坪镇"},{"code":"420324104","name":"县河镇"},{"code":"420324105","name":"泉溪镇"},{"code":"420324106","name":"丰溪镇"},{"code":"420324107","name":"龙坝镇"},{"code":"420324108","name":"兵营镇"},{"code":"420324109","name":"汇湾镇"},{"code":"420324110","name":"新洲镇"},{"code":"420324203","name":"鄂坪乡"},{"code":"420324205","name":"天宝乡"},{"code":"420324206","name":"桃源乡"},{"code":"420324207","name":"向坝乡"},{"code":"420324500","name":"龙王垭茶场"},{"code":"420324501","name":"国营竹溪综合农场"},{"code":"420324502","name":"原种场"},{"code":"420324503","name":"渔种场"},{"code":"420324504","name":"种畜场"},{"code":"420324505","name":"王家山茶场"},{"code":"420324506","name":"标湖林场"},{"code":"420324507","name":"双竹林场"}]},{"code":"420325","name":"房县","children":[{"code":"420325100","name":"城关镇"},{"code":"420325101","name":"军店镇"},{"code":"420325102","name":"化龙堰镇"},{"code":"420325103","name":"土城镇"},{"code":"420325104","name":"大木厂镇"},{"code":"420325105","name":"青峰镇"},{"code":"420325106","name":"门古寺镇"},{"code":"420325107","name":"白鹤镇"},{"code":"420325108","name":"野人谷镇"},{"code":"420325109","name":"红塔镇"},{"code":"420325110","name":"窑淮镇"},{"code":"420325111","name":"尹吉甫镇"},{"code":"420325203","name":"姚坪乡"},{"code":"420325205","name":"沙河乡"},{"code":"420325206","name":"万峪河乡"},{"code":"420325208","name":"上龛乡"},{"code":"420325209","name":"中坝乡"},{"code":"420325210","name":"九道乡"},{"code":"420325211","name":"回龙乡"},{"code":"420325212","name":"五台乡"}]},{"code":"420381","name":"丹江口市","children":[{"code":"420381001","name":"均州路街道"},{"code":"420381002","name":"大坝路街道"},{"code":"420381003","name":"丹赵路街道"},{"code":"420381005","name":"三官殿街道"},{"code":"420381100","name":"土关垭镇"},{"code":"420381101","name":"浪河镇"},{"code":"420381102","name":"丁家营镇"},{"code":"420381103","name":"六里坪镇"},{"code":"420381104","name":"盐池河镇"},{"code":"420381105","name":"均县镇"},{"code":"420381106","name":"习家店镇"},{"code":"420381107","name":"蒿坪镇"},{"code":"420381108","name":"石鼓镇"},{"code":"420381109","name":"凉水河镇"},{"code":"420381110","name":"官山镇"},{"code":"420381111","name":"龙山镇"},{"code":"420381400","name":"新港经济开发管理处"},{"code":"420381401","name":"牛河林业开发管理区"},{"code":"420381402","name":"白杨坪林业开发管理区"},{"code":"420381403","name":"大沟林业开发管理区"},{"code":"420381450","name":"武当山特区"}]}]},{"code":"4205","name":"宜昌市","children":[{"code":"420502","name":"西陵区","children":[{"code":"420502001","name":"西陵街道"},{"code":"420502002","name":"学院街道"},{"code":"420502003","name":"云集街道"},{"code":"420502004","name":"西坝街道"},{"code":"420502005","name":"葛洲坝街道"},{"code":"420502006","name":"夜明珠街道"},{"code":"420502007","name":"东苑街道"},{"code":"420502008","name":"南苑街道"},{"code":"420502009","name":"北苑街道"},{"code":"420502010","name":"窑湾街道"}]},{"code":"420503","name":"伍家岗区","children":[{"code":"420503001","name":"大公桥街道"},{"code":"420503002","name":"万寿桥街道"},{"code":"420503003","name":"宝塔河街道"},{"code":"420503004","name":"伍家岗街道"},{"code":"420503201","name":"伍家乡"}]},{"code":"420504","name":"点军区","children":[{"code":"420504001","name":"点军街道"},{"code":"420504101","name":"艾家镇"},{"code":"420504102","name":"桥边镇"},{"code":"420504201","name":"联棚乡"},{"code":"420504202","name":"土城乡"}]},{"code":"420505","name":"猇亭区","children":[{"code":"420505001","name":"古老背街道"},{"code":"420505002","name":"虎牙街道"},{"code":"420505003","name":"云池街道"}]},{"code":"420506","name":"夷陵区","children":[{"code":"420506001","name":"小溪塔街道"},{"code":"420506101","name":"樟村坪镇"},{"code":"420506102","name":"雾渡河镇"},{"code":"420506103","name":"分乡镇"},{"code":"420506104","name":"太平溪镇"},{"code":"420506105","name":"三斗坪镇"},{"code":"420506106","name":"乐天溪镇"},{"code":"420506107","name":"龙泉镇"},{"code":"420506108","name":"鸦鹊岭镇"},{"code":"420506109","name":"黄花镇"},{"code":"420506201","name":"下堡坪乡"},{"code":"420506202","name":"邓村乡"},{"code":"420506401","name":"三峡坝区"},{"code":"420506402","name":"东城城乡统筹发展试验区"}]},{"code":"420525","name":"远安县","children":[{"code":"420525101","name":"鸣凤镇"},{"code":"420525102","name":"花林寺镇"},{"code":"420525103","name":"旧县镇"},{"code":"420525104","name":"洋坪镇"},{"code":"420525105","name":"茅坪场镇"},{"code":"420525106","name":"嫘祖镇"},{"code":"420525201","name":"河口乡"}]},{"code":"420526","name":"兴山县","children":[{"code":"420526101","name":"古夫镇"},{"code":"420526102","name":"昭君镇"},{"code":"420526103","name":"峡口镇"},{"code":"420526104","name":"南阳镇"},{"code":"420526105","name":"黄粮镇"},{"code":"420526106","name":"水月寺镇"},{"code":"420526201","name":"高桥乡"},{"code":"420526202","name":"榛子乡"}]},{"code":"420527","name":"秭归县","children":[{"code":"420527101","name":"茅坪镇"},{"code":"420527102","name":"归州镇"},{"code":"420527103","name":"屈原镇"},{"code":"420527104","name":"沙镇溪镇"},{"code":"420527105","name":"两河口镇"},{"code":"420527106","name":"郭家坝镇"},{"code":"420527107","name":"杨林桥镇"},{"code":"420527108","name":"九畹溪镇"},{"code":"420527201","name":"水田坝乡"},{"code":"420527202","name":"泄滩乡"},{"code":"420527203","name":"梅家河乡"},{"code":"420527204","name":"磨坪乡"}]},{"code":"420528","name":"长阳土家族自治县","children":[{"code":"420528101","name":"龙舟坪镇"},{"code":"420528102","name":"高家堰镇"},{"code":"420528103","name":"磨市镇"},{"code":"420528104","name":"都镇湾镇"},{"code":"420528105","name":"资丘镇"},{"code":"420528106","name":"渔峡口镇"},{"code":"420528107","name":"榔坪镇"},{"code":"420528108","name":"贺家坪镇"},{"code":"420528201","name":"大堰乡"},{"code":"420528202","name":"鸭子口乡"},{"code":"420528203","name":"火烧坪乡"}]},{"code":"420529","name":"五峰土家族自治县","children":[{"code":"420529111","name":"渔洋关镇"},{"code":"420529112","name":"仁和坪镇"},{"code":"420529113","name":"长乐坪镇"},{"code":"420529114","name":"五峰镇"},{"code":"420529115","name":"湾潭镇"},{"code":"420529201","name":"付家堰乡"},{"code":"420529202","name":"牛庄乡"},{"code":"420529203","name":"采花乡"}]},{"code":"420581","name":"宜都市","children":[{"code":"420581001","name":"陆城街道"},{"code":"420581100","name":"红花套镇"},{"code":"420581101","name":"高坝洲镇"},{"code":"420581102","name":"聂家河镇"},{"code":"420581103","name":"松木坪镇"},{"code":"420581104","name":"枝城镇"},{"code":"420581105","name":"姚家店镇"},{"code":"420581106","name":"五眼泉镇"},{"code":"420581107","name":"王家畈镇"},{"code":"420581200","name":"潘家湾土家族乡"},{"code":"420581400","name":"松宜矿区管理委员会"}]},{"code":"420582","name":"当阳市","children":[{"code":"420582001","name":"当阳市玉阳街道"},{"code":"420582002","name":"当阳市坝陵街道"},{"code":"420582003","name":"当阳市玉泉街道"},{"code":"420582101","name":"当阳市两河镇"},{"code":"420582102","name":"当阳市河溶镇"},{"code":"420582103","name":"当阳市淯溪镇"},{"code":"420582104","name":"当阳市庙前镇"},{"code":"420582105","name":"当阳市王店镇"},{"code":"420582106","name":"当阳市半月镇"},{"code":"420582107","name":"当阳市草埠湖镇"}]},{"code":"420583","name":"枝江市","children":[{"code":"420583001","name":"马家店街道"},{"code":"420583101","name":"安福寺镇"},{"code":"420583102","name":"白洋镇"},{"code":"420583103","name":"顾家店镇"},{"code":"420583104","name":"董市镇"},{"code":"420583105","name":"仙女镇"},{"code":"420583106","name":"问安镇"},{"code":"420583107","name":"七星台镇"},{"code":"420583108","name":"百里洲镇"}]}]},{"code":"4206","name":"襄阳市","children":[{"code":"420602","name":"襄城区","children":[{"code":"420602001","name":"真武山街道"},{"code":"420602002","name":"古城街道"},{"code":"420602003","name":"庞公街道"},{"code":"420602004","name":"檀溪街道"},{"code":"420602005","name":"隆中街道"},{"code":"420602006","name":"余家湖街道"},{"code":"420602100","name":"欧庙镇"},{"code":"420602101","name":"卧龙镇"},{"code":"420602200","name":"尹集乡"}]},{"code":"420606","name":"樊城区","children":[{"code":"420606001","name":"汉江街道"},{"code":"420606002","name":"王寨街道"},{"code":"420606003","name":"中原街道"},{"code":"420606004","name":"定中门街道"},{"code":"420606005","name":"清河口街道"},{"code":"420606006","name":"屏襄门街道"},{"code":"420606007","name":"米公街道"},{"code":"420606008","name":"柿铺街道"},{"code":"420606070","name":"高新区紫贞街道"},{"code":"420606071","name":"高新区七里河街道"},{"code":"420606072","name":"高新区东风街道"},{"code":"420606100","name":"牛首镇"},{"code":"420606101","name":"太平店镇"},{"code":"420606170","name":"高新区团山镇"},{"code":"420606171","name":"高新区米庄镇"},{"code":"420606400","name":"经济开发区"},{"code":"420606480","name":"鱼梁洲开发区"},{"code":"420606570","name":"高新区汽车工业园"},{"code":"420606571","name":"高新区高新技术产业园"},{"code":"420606572","name":"高新区高新技术创业服务中心"}]},{"code":"420607","name":"襄州区","children":[{"code":"420607001","name":"张湾街道"},{"code":"420607002","name":"刘集街道"},{"code":"420607003","name":"肖湾街道"},{"code":"420607004","name":"六两河街道"},{"code":"420607100","name":"龙王镇"},{"code":"420607101","name":"石桥镇"},{"code":"420607102","name":"黄集镇"},{"code":"420607103","name":"伙牌镇"},{"code":"420607104","name":"古驿镇"},{"code":"420607105","name":"朱集镇"},{"code":"420607106","name":"程河镇"},{"code":"420607107","name":"双沟镇"},{"code":"420607108","name":"张家集镇"},{"code":"420607109","name":"黄龙镇"},{"code":"420607110","name":"峪山镇"},{"code":"420607111","name":"东津镇"},{"code":"420607402","name":"鹿门风景名胜区"},{"code":"420607500","name":"襄北农场"},{"code":"420607570","name":"深圳工业园"}]},{"code":"420624","name":"南漳县","children":[{"code":"420624100","name":"城关镇"},{"code":"420624101","name":"武安镇"},{"code":"420624102","name":"九集镇"},{"code":"420624103","name":"李庙镇"},{"code":"420624104","name":"长坪镇"},{"code":"420624105","name":"薛坪镇"},{"code":"420624106","name":"板桥镇"},{"code":"420624107","name":"巡检镇"},{"code":"420624108","name":"东巩镇"},{"code":"420624109","name":"肖堰镇"},{"code":"420624500","name":"清河管理区"}]},{"code":"420625","name":"谷城县","children":[{"code":"420625100","name":"城关镇"},{"code":"420625101","name":"石花镇"},{"code":"420625102","name":"盛康镇"},{"code":"420625103","name":"庙滩镇"},{"code":"420625104","name":"五山镇"},{"code":"420625105","name":"茨河镇"},{"code":"420625106","name":"南河镇"},{"code":"420625107","name":"紫金镇"},{"code":"420625108","name":"冷集镇"},{"code":"420625200","name":"赵湾乡"},{"code":"420625500","name":"薤山林场"}]},{"code":"420626","name":"保康县","children":[{"code":"420626100","name":"城关镇"},{"code":"420626101","name":"黄堡镇"},{"code":"420626102","name":"后坪镇"},{"code":"420626103","name":"龙坪镇"},{"code":"420626104","name":"店垭镇"},{"code":"420626105","name":"马良镇"},{"code":"420626106","name":"歇马镇"},{"code":"420626107","name":"马桥镇"},{"code":"420626108","name":"寺坪镇"},{"code":"420626109","name":"过渡湾镇"},{"code":"420626200","name":"两峪乡"},{"code":"420626400","name":"湖北保康经济开发区管理委员会"}]},{"code":"420682","name":"老河口市","children":[{"code":"420682001","name":"光化街道"},{"code":"420682002","name":"酂阳街道"},{"code":"420682100","name":"孟楼镇"},{"code":"420682101","name":"竹林桥镇"},{"code":"420682102","name":"薛集镇"},{"code":"420682103","name":"张集镇"},{"code":"420682104","name":"仙人渡镇"},{"code":"420682105","name":"洪山嘴镇"},{"code":"420682106","name":"李楼镇"},{"code":"420682200","name":"袁冲乡"},{"code":"420682501","name":"蔬菜原种场"},{"code":"420682502","name":"百花山林场"},{"code":"420682503","name":"林茂山林场"}]},{"code":"420683","name":"枣阳市","children":[{"code":"420683001","name":"北城街道"},{"code":"420683002","name":"南城街道"},{"code":"420683003","name":"环城街道"},{"code":"420683100","name":"琚湾镇"},{"code":"420683101","name":"七方镇"},{"code":"420683102","name":"杨当镇"},{"code":"420683103","name":"太平镇"},{"code":"420683104","name":"新市镇"},{"code":"420683105","name":"鹿头镇"},{"code":"420683106","name":"刘升镇"},{"code":"420683107","name":"兴隆镇"},{"code":"420683108","name":"王城镇"},{"code":"420683109","name":"吴店镇"},{"code":"420683110","name":"熊集镇"},{"code":"420683111","name":"平林镇"},{"code":"420683402","name":"枣阳经济开发区"},{"code":"420683500","name":"随阳农场"},{"code":"420683501","name":"车河农场"}]},{"code":"420684","name":"宜城市","children":[{"code":"420684001","name":"鄢城街道"},{"code":"420684002","name":"南营街道"},{"code":"420684003","name":"龙头街道"},{"code":"420684102","name":"郑集镇"},{"code":"420684103","name":"小河镇"},{"code":"420684104","name":"刘猴镇"},{"code":"420684105","name":"孔湾镇"},{"code":"420684106","name":"流水镇"},{"code":"420684107","name":"板桥店镇"},{"code":"420684108","name":"王集镇"},{"code":"420684109","name":"雷河镇"},{"code":"420684400","name":"襄南监狱"},{"code":"420684401","name":"劳教所"},{"code":"420684450","name":"大雁工业园区"},{"code":"420684452","name":"宜城经济开发区"}]}]},{"code":"4207","name":"鄂州市","children":[{"code":"420702","name":"梁子湖区","children":[{"code":"420702100","name":"太和镇"},{"code":"420702101","name":"东沟镇"},{"code":"420702102","name":"梁子镇"},{"code":"420702103","name":"涂家垴镇"},{"code":"420702104","name":"沼山镇"},{"code":"420702400","name":"梧桐湖新区"}]},{"code":"420703","name":"华容区","children":[{"code":"420703100","name":"华容镇"},{"code":"420703101","name":"葛店镇"},{"code":"420703102","name":"庙岭镇"},{"code":"420703103","name":"段店镇"},{"code":"420703200","name":"临江乡"},{"code":"420703201","name":"蒲团乡"},{"code":"420703400","name":"葛店开发区"}]},{"code":"420704","name":"鄂城区","children":[{"code":"420704001","name":"凤凰街道"},{"code":"420704002","name":"古楼街道"},{"code":"420704003","name":"西山街道"},{"code":"420704100","name":"泽林镇"},{"code":"420704101","name":"杜山镇"},{"code":"420704102","name":"新庙镇"},{"code":"420704103","name":"碧石镇"},{"code":"420704104","name":"汀祖镇"},{"code":"420704105","name":"燕矶镇"},{"code":"420704106","name":"杨叶镇"},{"code":"420704107","name":"花湖镇"},{"code":"420704108","name":"长港镇"},{"code":"420704200","name":"沙窝乡"},{"code":"420704400","name":"鄂州经济开发区"},{"code":"420704401","name":"临空经济区"}]}]},{"code":"4208","name":"荆门市","children":[{"code":"420802","name":"东宝区","children":[{"code":"420802001","name":"龙泉街道"},{"code":"420802002","name":"泉口街道"},{"code":"420802100","name":"栗溪镇"},{"code":"420802101","name":"子陵铺镇"},{"code":"420802102","name":"漳河镇"},{"code":"420802103","name":"马河镇"},{"code":"420802104","name":"石桥驿镇"},{"code":"420802105","name":"牌楼镇"},{"code":"420802200","name":"仙居乡"},{"code":"420802400","name":"东宝工业园区"}]},{"code":"420804","name":"掇刀区","children":[{"code":"420804001","name":"掇刀石街道"},{"code":"420804002","name":"白庙街道"},{"code":"420804003","name":"兴隆街道"},{"code":"420804004","name":"双喜街道"},{"code":"420804100","name":"团林铺镇"},{"code":"420804101","name":"麻城镇"}]},{"code":"420822","name":"沙洋县","children":[{"code":"420822100","name":"沙洋镇"},{"code":"420822101","name":"五里铺镇"},{"code":"420822102","name":"十里铺镇"},{"code":"420822103","name":"纪山镇"},{"code":"420822104","name":"拾回桥镇"},{"code":"420822105","name":"后港镇"},{"code":"420822106","name":"毛李镇"},{"code":"420822107","name":"官垱镇"},{"code":"420822108","name":"李市镇"},{"code":"420822109","name":"马良镇"},{"code":"420822110","name":"高阳镇"},{"code":"420822111","name":"沈集镇"},{"code":"420822112","name":"曾集镇"},{"code":"420822400","name":"湖北沙洋经济开发区管理委员会"},{"code":"420822401","name":"沙洋新港区管理委员会"},{"code":"420822402","name":"沙洋滨江新区管理委员会"},{"code":"420822450","name":"沙洋监狱管理局"}]},{"code":"420881","name":"钟祥市","children":[{"code":"420881001","name":"郢中街道"},{"code":"420881100","name":"洋梓镇"},{"code":"420881101","name":"长寿镇"},{"code":"420881102","name":"丰乐镇"},{"code":"420881103","name":"胡集镇"},{"code":"420881104","name":"双河镇"},{"code":"420881105","name":"磷矿镇"},{"code":"420881106","name":"文集镇"},{"code":"420881107","name":"冷水镇"},{"code":"420881108","name":"石牌镇"},{"code":"420881109","name":"旧口镇"},{"code":"420881110","name":"柴湖镇"},{"code":"420881111","name":"长滩镇"},{"code":"420881112","name":"东桥镇"},{"code":"420881113","name":"客店镇"},{"code":"420881114","name":"张集镇"},{"code":"420881200","name":"九里乡"},{"code":"420881400","name":"湖北钟祥经济开发区"},{"code":"420881450","name":"钟祥市官庄湖管理区"},{"code":"420881451","name":"南湖原种场"},{"code":"420881452","name":"罗汉寺种畜场"},{"code":"420881453","name":"双桥原种场"},{"code":"420881454","name":"东岳种畜场"},{"code":"420881455","name":"康桥湖农场"},{"code":"420881456","name":"大口林场"},{"code":"420881457","name":"盘石岭林场"},{"code":"420881458","name":"温峡水库"},{"code":"420881459","name":"石门水库"},{"code":"420881460","name":"黄坡水库"},{"code":"420881461","name":"湖北钟祥胡集经济技术开发区"}]},{"code":"420882","name":"京山市","children":[{"code":"420882001","name":"新市街道"},{"code":"420882002","name":"永兴街道"},{"code":"420882003","name":"温泉街道"},{"code":"420882102","name":"曹武镇"},{"code":"420882103","name":"罗店镇"},{"code":"420882104","name":"宋河镇"},{"code":"420882105","name":"坪坝镇"},{"code":"420882106","name":"三阳镇"},{"code":"420882107","name":"绿林镇"},{"code":"420882108","name":"杨集镇"},{"code":"420882109","name":"孙桥镇"},{"code":"420882110","name":"石龙镇"},{"code":"420882111","name":"永漋镇"},{"code":"420882112","name":"雁门口镇"},{"code":"420882113","name":"钱场镇"},{"code":"420882450","name":"太子山"},{"code":"420882451","name":"罗汉寺"},{"code":"420882452","name":"长滩"},{"code":"420882453","name":"何集"},{"code":"420882455","name":"易家岭"}]}]},{"code":"4209","name":"孝感市","children":[{"code":"420902","name":"孝南区","children":[{"code":"420902001","name":"书院街道"},{"code":"420902002","name":"新华街道"},{"code":"420902003","name":"广场街道"},{"code":"420902004","name":"车站街道"},{"code":"420902100","name":"新铺镇"},{"code":"420902101","name":"西河镇"},{"code":"420902102","name":"杨店镇"},{"code":"420902103","name":"陡岗镇"},{"code":"420902104","name":"肖港镇"},{"code":"420902105","name":"毛陈镇"},{"code":"420902106","name":"三汊镇"},{"code":"420902107","name":"祝站镇"},{"code":"420902200","name":"朋兴乡"},{"code":"420902201","name":"卧龙乡"},{"code":"420902202","name":"闵集乡"},{"code":"420902400","name":"经济开发区"},{"code":"420902450","name":"朱湖"},{"code":"420902500","name":"东山头"},{"code":"420902570","name":"孝感开发区丹阳"},{"code":"420902571","name":"孝感开发区孝天"},{"code":"420902572","name":"孝感开发区槐荫"}]},{"code":"420921","name":"孝昌县","children":[{"code":"420921100","name":"花园镇"},{"code":"420921101","name":"丰山镇"},{"code":"420921102","name":"周巷镇"},{"code":"420921103","name":"小河镇"},{"code":"420921104","name":"王店镇"},{"code":"420921105","name":"卫店镇"},{"code":"420921106","name":"白沙镇"},{"code":"420921107","name":"邹岗镇"},{"code":"420921200","name":"小悟乡"},{"code":"420921201","name":"季店乡"},{"code":"420921202","name":"花西乡"},{"code":"420921203","name":"陡山乡"},{"code":"420921400","name":"开发区"},{"code":"420921450","name":"观音湖生态文化旅游渡假区"},{"code":"420921500","name":"双峰山旅游渡假区"}]},{"code":"420922","name":"大悟县","children":[{"code":"420922100","name":"城关镇"},{"code":"420922101","name":"阳平镇"},{"code":"420922102","name":"芳畈镇"},{"code":"420922103","name":"新城镇"},{"code":"420922104","name":"夏店镇"},{"code":"420922105","name":"刘集镇"},{"code":"420922106","name":"河口镇"},{"code":"420922107","name":"四姑镇"},{"code":"420922108","name":"吕王镇"},{"code":"420922109","name":"黄站镇"},{"code":"420922110","name":"宣化店镇"},{"code":"420922111","name":"丰店镇"},{"code":"420922112","name":"大新镇"},{"code":"420922113","name":"三里镇"},{"code":"420922200","name":"高店乡"},{"code":"420922201","name":"彭店乡"},{"code":"420922202","name":"东新乡"},{"code":"420922501","name":"高铁试验区"},{"code":"420922502","name":"悟峰山度假区"}]},{"code":"420923","name":"云梦县","children":[{"code":"420923100","name":"城关镇"},{"code":"420923101","name":"义堂镇"},{"code":"420923102","name":"曾店镇"},{"code":"420923103","name":"吴铺镇"},{"code":"420923104","name":"伍洛镇"},{"code":"420923105","name":"下辛店镇"},{"code":"420923106","name":"道桥镇"},{"code":"420923107","name":"隔蒲潭镇"},{"code":"420923108","name":"胡金店镇"},{"code":"420923200","name":"倒店乡"},{"code":"420923201","name":"沙河乡"},{"code":"420923202","name":"清明河乡"},{"code":"420923450","name":"县经济开发区"}]},{"code":"420981","name":"应城市","children":[{"code":"420981001","name":"城中街道"},{"code":"420981002","name":"城北街道"},{"code":"420981003","name":"四里棚街道"},{"code":"420981004","name":"东马坊街道"},{"code":"420981005","name":"长江埠街道"},{"code":"420981100","name":"田店镇"},{"code":"420981101","name":"杨河镇"},{"code":"420981102","name":"三合镇"},{"code":"420981103","name":"郎君镇"},{"code":"420981104","name":"黄滩镇"},{"code":"420981105","name":"天鹅镇"},{"code":"420981106","name":"义和镇"},{"code":"420981107","name":"陈河镇"},{"code":"420981108","name":"杨岭镇"},{"code":"420981109","name":"汤池镇"},{"code":"420981400","name":"经济技术开发区"},{"code":"420981500","name":"南垸良种场"}]},{"code":"420982","name":"安陆市","children":[{"code":"420982001","name":"府城街道"},{"code":"420982002","name":"南城街道"},{"code":"420982100","name":"赵棚镇"},{"code":"420982101","name":"李店镇"},{"code":"420982102","name":"巡店镇"},{"code":"420982103","name":"棠棣镇"},{"code":"420982104","name":"雷公镇"},{"code":"420982105","name":"王义贞镇"},{"code":"420982106","name":"烟店镇"},{"code":"420982107","name":"孛畈镇"},{"code":"420982108","name":"洑水镇"},{"code":"420982200","name":"陈店乡"},{"code":"420982201","name":"辛榨乡"},{"code":"420982202","name":"木梓乡"},{"code":"420982203","name":"接官乡"},{"code":"420982400","name":"开发区"}]},{"code":"420984","name":"汉川市","children":[{"code":"420984001","name":"仙女山街道"},{"code":"420984002","name":"汈东街道"},{"code":"420984100","name":"马口镇"},{"code":"420984101","name":"脉旺镇"},{"code":"420984102","name":"城隍镇"},{"code":"420984103","name":"分水镇"},{"code":"420984104","name":"沉湖镇"},{"code":"420984105","name":"田二河镇"},{"code":"420984106","name":"回龙镇"},{"code":"420984107","name":"新堰镇"},{"code":"420984108","name":"垌塚镇"},{"code":"420984109","name":"麻河镇"},{"code":"420984110","name":"刘家隔镇"},{"code":"420984111","name":"新河镇"},{"code":"420984112","name":"庙头镇"},{"code":"420984113","name":"杨林沟镇"},{"code":"420984200","name":"西江乡"},{"code":"420984201","name":"湾潭乡"},{"code":"420984202","name":"南河乡"},{"code":"420984203","name":"马鞍乡"},{"code":"420984204","name":"里潭乡"},{"code":"420984205","name":"韩集乡"},{"code":"420984450","name":"国营中洲农场"},{"code":"420984500","name":"华严农场"},{"code":"420984502","name":"三星垸原种场"},{"code":"420984503","name":"汈汊湖养殖场"},{"code":"420984504","name":"汉川市经济技术开发区"}]}]},{"code":"4210","name":"荆州市","children":[{"code":"421002","name":"沙市区","children":[{"code":"421002001","name":"中山街道"},{"code":"421002002","name":"崇文街道"},{"code":"421002003","name":"解放街道"},{"code":"421002004","name":"胜利街道"},{"code":"421002005","name":"朝阳街道"},{"code":"421002006","name":"立新街道"},{"code":"421002100","name":"锣场镇"},{"code":"421002101","name":"岑河镇"},{"code":"421002102","name":"观音垱镇"},{"code":"421002103","name":"关沮镇"}]},{"code":"421003","name":"荆州区","children":[{"code":"421003001","name":"西城街道"},{"code":"421003002","name":"东城街道"},{"code":"421003003","name":"城南街道"},{"code":"421003004","name":"凤凰街道"},{"code":"421003100","name":"纪南镇"},{"code":"421003101","name":"川店镇"},{"code":"421003102","name":"马山镇"},{"code":"421003103","name":"八岭山镇"},{"code":"421003104","name":"李埠镇"},{"code":"421003105","name":"弥市镇"},{"code":"421003106","name":"郢城镇"},{"code":"421003450","name":"太湖港管理区"},{"code":"421003451","name":"菱角湖管理区"}]},{"code":"421022","name":"公安县","children":[{"code":"421022100","name":"埠河镇"},{"code":"421022101","name":"斗湖堤镇"},{"code":"421022102","name":"夹竹园镇"},{"code":"421022103","name":"闸口镇"},{"code":"421022104","name":"杨家厂镇"},{"code":"421022105","name":"麻豪口镇"},{"code":"421022106","name":"藕池镇"},{"code":"421022107","name":"黄山头镇"},{"code":"421022108","name":"孟家溪镇"},{"code":"421022109","name":"南平镇"},{"code":"421022110","name":"章庄铺镇"},{"code":"421022111","name":"狮子口镇"},{"code":"421022112","name":"斑竹垱镇"},{"code":"421022113","name":"毛家港镇"},{"code":"421022200","name":"甘家厂乡"},{"code":"421022201","name":"章田寺乡"}]},{"code":"421024","name":"江陵县","children":[{"code":"421024100","name":"资市镇"},{"code":"421024102","name":"熊河镇"},{"code":"421024103","name":"白马寺镇"},{"code":"421024104","name":"沙岗镇"},{"code":"421024105","name":"普济镇"},{"code":"421024106","name":"郝穴镇"},{"code":"421024200","name":"马家寨乡"},{"code":"421024201","name":"秦市乡"},{"code":"421024450","name":"江北监狱"},{"code":"421024500","name":"三湖管理区"},{"code":"421024501","name":"六合垸管理区"}]},{"code":"421071","name":"荆州经济技术开发区","children":[{"code":"421071001","name":"联合街道"},{"code":"421071002","name":"西湖街道"},{"code":"421071003","name":"鱼农桥街道"},{"code":"421071100","name":"滩桥镇"}]},{"code":"421081","name":"石首市","children":[{"code":"421081001","name":"绣林街道"},{"code":"421081002","name":"笔架山街道"},{"code":"421081100","name":"新厂镇"},{"code":"421081101","name":"横沟市镇"},{"code":"421081102","name":"大垸镇"},{"code":"421081103","name":"小河口镇"},{"code":"421081104","name":"桃花山镇"},{"code":"421081105","name":"调关镇"},{"code":"421081106","name":"东升镇"},{"code":"421081107","name":"高基庙镇"},{"code":"421081108","name":"南口镇"},{"code":"421081109","name":"高陵镇"},{"code":"421081110","name":"团山寺镇"},{"code":"421081200","name":"久合垸乡"},{"code":"421081500","name":"天鹅洲开发区"}]},{"code":"421083","name":"洪湖市","children":[{"code":"421083001","name":"新堤街道"},{"code":"421083002","name":"滨湖街道"},{"code":"421083100","name":"螺山镇"},{"code":"421083101","name":"乌林镇"},{"code":"421083102","name":"龙口镇"},{"code":"421083103","name":"燕窝镇"},{"code":"421083104","name":"新滩镇"},{"code":"421083105","name":"峰口镇"},{"code":"421083106","name":"曹市镇"},{"code":"421083107","name":"府场镇"},{"code":"421083108","name":"戴家场镇"},{"code":"421083109","name":"瞿家湾镇"},{"code":"421083110","name":"沙口镇"},{"code":"421083111","name":"万全镇"},{"code":"421083112","name":"汊河镇"},{"code":"421083113","name":"黄家口镇"},{"code":"421083200","name":"老湾乡"},{"code":"421083450","name":"小港管理区"},{"code":"421083451","name":"大同湖管理区"},{"code":"421083452","name":"大沙湖管理区"}]},{"code":"421087","name":"松滋市","children":[{"code":"421087001","name":"新江口街道"},{"code":"421087002","name":"乐乡街道"},{"code":"421087101","name":"南海镇"},{"code":"421087102","name":"八宝镇"},{"code":"421087103","name":"涴市镇"},{"code":"421087104","name":"老城镇"},{"code":"421087105","name":"陈店镇"},{"code":"421087106","name":"王家桥镇"},{"code":"421087107","name":"斯家场镇"},{"code":"421087108","name":"杨林市镇"},{"code":"421087109","name":"纸厂河镇"},{"code":"421087110","name":"街河市镇"},{"code":"421087111","name":"洈水镇"},{"code":"421087112","name":"刘家场镇"},{"code":"421087113","name":"沙道观镇"},{"code":"421087200","name":"万家乡"},{"code":"421087201","name":"卸甲坪土家族乡"}]},{"code":"421088","name":"监利市","children":[{"code":"421088100","name":"容城镇"},{"code":"421088101","name":"朱河镇"},{"code":"421088102","name":"新沟镇"},{"code":"421088103","name":"龚场镇"},{"code":"421088104","name":"周老嘴镇"},{"code":"421088105","name":"黄歇口镇"},{"code":"421088106","name":"汪桥镇"},{"code":"421088107","name":"程集镇"},{"code":"421088108","name":"分盐镇"},{"code":"421088109","name":"毛市镇"},{"code":"421088110","name":"福田寺镇"},{"code":"421088111","name":"上车湾镇"},{"code":"421088112","name":"汴河镇"},{"code":"421088113","name":"尺八镇"},{"code":"421088114","name":"白螺镇"},{"code":"421088115","name":"网市镇"},{"code":"421088116","name":"三洲镇"},{"code":"421088117","name":"桥市镇"},{"code":"421088200","name":"红城乡"},{"code":"421088201","name":"棋盘乡"},{"code":"421088202","name":"柘木乡"},{"code":"421088450","name":"人民大垸农场管理区"},{"code":"421088451","name":"荒湖农场管理区"}]}]},{"code":"4211","name":"黄冈市","children":[{"code":"421102","name":"黄州区","children":[{"code":"421102001","name":"赤壁街道"},{"code":"421102002","name":"东湖街道"},{"code":"421102003","name":"禹王街道"},{"code":"421102004","name":"南湖街道"},{"code":"421102005","name":"西湖街道"},{"code":"421102100","name":"路口镇"},{"code":"421102101","name":"堵城镇"},{"code":"421102102","name":"陈策楼镇"},{"code":"421102200","name":"陶店乡"},{"code":"421102450","name":"火车站开发区"}]},{"code":"421121","name":"团风县","children":[{"code":"421121100","name":"团风镇"},{"code":"421121101","name":"淋山河镇"},{"code":"421121102","name":"方高坪镇"},{"code":"421121103","name":"回龙山镇"},{"code":"421121104","name":"马曹庙镇"},{"code":"421121105","name":"上巴河镇"},{"code":"421121106","name":"总路咀镇"},{"code":"421121107","name":"但店镇"},{"code":"421121200","name":"贾庙乡"},{"code":"421121201","name":"杜皮乡"},{"code":"421121400","name":"黄湖农场"}]},{"code":"421122","name":"红安县","children":[{"code":"421122100","name":"城关镇"},{"code":"421122101","name":"七里坪镇"},{"code":"421122102","name":"华家河镇"},{"code":"421122103","name":"二程镇"},{"code":"421122104","name":"上新集镇"},{"code":"421122105","name":"高桥镇"},{"code":"421122106","name":"觅儿寺镇"},{"code":"421122107","name":"八里湾镇"},{"code":"421122108","name":"太平桥镇"},{"code":"421122109","name":"永佳河镇"},{"code":"421122200","name":"杏花乡"},{"code":"421122500","name":"火连畈茶场"},{"code":"421122501","name":"天台山管理处"},{"code":"421122503","name":"红安经济开发区"}]},{"code":"421123","name":"罗田县","children":[{"code":"421123100","name":"凤山镇"},{"code":"421123101","name":"骆驼坳镇"},{"code":"421123102","name":"大河岸镇"},{"code":"421123103","name":"九资河镇"},{"code":"421123104","name":"胜利镇"},{"code":"421123105","name":"河铺镇"},{"code":"421123106","name":"三里畈镇"},{"code":"421123107","name":"匡河镇"},{"code":"421123108","name":"白庙河镇"},{"code":"421123109","name":"大崎镇"},{"code":"421123200","name":"白莲河乡"},{"code":"421123203","name":"平湖乡"},{"code":"421123400","name":"罗田县经济开发区"},{"code":"421123500","name":"青苔关林场"},{"code":"421123501","name":"天堂寨林场"},{"code":"421123502","name":"薄刀峰林场"},{"code":"421123503","name":"黄狮寨林场"}]},{"code":"421124","name":"英山县","children":[{"code":"421124100","name":"温泉镇"},{"code":"421124101","name":"南河镇"},{"code":"421124102","name":"红山镇"},{"code":"421124103","name":"金家铺镇"},{"code":"421124104","name":"石头咀镇"},{"code":"421124105","name":"草盘地镇"},{"code":"421124106","name":"雷家店镇"},{"code":"421124107","name":"杨柳湾镇"},{"code":"421124200","name":"方家咀乡"},{"code":"421124201","name":"孔家坊乡"},{"code":"421124202","name":"陶家河乡"},{"code":"421124400","name":"桃花冲林场"},{"code":"421124401","name":"吴家山林场"},{"code":"421124402","name":"五峰山林场"},{"code":"421124403","name":"英山县经济开发区"}]},{"code":"421125","name":"浠水县","children":[{"code":"421125100","name":"清泉镇"},{"code":"421125101","name":"巴河镇"},{"code":"421125102","name":"竹瓦镇"},{"code":"421125103","name":"汪岗镇"},{"code":"421125104","name":"团陂镇"},{"code":"421125105","name":"关口镇"},{"code":"421125106","name":"白莲镇"},{"code":"421125107","name":"蔡河镇"},{"code":"421125108","name":"洗马镇"},{"code":"421125109","name":"丁司垱镇"},{"code":"421125110","name":"散花镇"},{"code":"421125111","name":"兰溪镇"},{"code":"421125200","name":"绿杨乡"},{"code":"421125400","name":"策湖国家湿地公园管理处"},{"code":"421125401","name":"三角山旅游度假区管理委员会"},{"code":"421125402","name":"经济开发区"}]},{"code":"421126","name":"蕲春县","children":[{"code":"421126100","name":"漕河镇"},{"code":"421126101","name":"赤东镇"},{"code":"421126102","name":"蕲州镇"},{"code":"421126103","name":"管窑镇"},{"code":"421126104","name":"彭思镇"},{"code":"421126105","name":"横车镇"},{"code":"421126106","name":"株林镇"},{"code":"421126107","name":"刘河镇"},{"code":"421126108","name":"狮子镇"},{"code":"421126109","name":"青石镇"},{"code":"421126110","name":"张塝镇"},{"code":"421126111","name":"大同镇"},{"code":"421126112","name":"檀林镇"},{"code":"421126200","name":"向桥乡"},{"code":"421126450","name":"八里湖"},{"code":"421126451","name":"蕲春经济开发区管委会"},{"code":"421126453","name":"李时珍医药工业园区管委会"},{"code":"421126454","name":"蕲春赤龙湖国家湿地公园管理处"},{"code":"421126456","name":"蕲春县仙人台茶厂"}]},{"code":"421127","name":"黄梅县","children":[{"code":"421127100","name":"黄梅镇"},{"code":"421127101","name":"孔垄镇"},{"code":"421127102","name":"小池镇"},{"code":"421127103","name":"下新镇"},{"code":"421127104","name":"大河镇"},{"code":"421127105","name":"停前镇"},{"code":"421127106","name":"五祖镇"},{"code":"421127107","name":"濯港镇"},{"code":"421127108","name":"蔡山镇"},{"code":"421127109","name":"新开镇"},{"code":"421127110","name":"独山镇"},{"code":"421127111","name":"分路镇"},{"code":"421127200","name":"柳林乡"},{"code":"421127201","name":"杉木乡"},{"code":"421127202","name":"苦竹乡"},{"code":"421127203","name":"刘佐乡"},{"code":"421127400","name":"五祖寺(挪步园)风景名胜区"}]},{"code":"421171","name":"龙感湖管理区","children":[{"code":"421171450","name":"严家闸"},{"code":"421171451","name":"芦柴湖"},{"code":"421171452","name":"洋湖"},{"code":"421171453","name":"沙湖"},{"code":"421171454","name":"春港"},{"code":"421171455","name":"塞湖"},{"code":"421171456","name":"青泥湖"},{"code":"421171457","name":"湖北龙感湖工业园区"}]},{"code":"421181","name":"麻城市","children":[{"code":"421181001","name":"龙池桥街道"},{"code":"421181002","name":"鼓楼街道"},{"code":"421181003","name":"南湖街道"},{"code":"421181100","name":"中馆驿镇"},{"code":"421181101","name":"宋埠镇"},{"code":"421181102","name":"歧亭镇"},{"code":"421181103","name":"白果镇"},{"code":"421181104","name":"夫子河镇"},{"code":"421181105","name":"阎家河镇"},{"code":"421181106","name":"龟山镇"},{"code":"421181107","name":"盐田河镇"},{"code":"421181108","name":"张家畈镇"},{"code":"421181109","name":"木子店镇"},{"code":"421181110","name":"三河口镇"},{"code":"421181111","name":"黄土岗镇"},{"code":"421181112","name":"福田河镇"},{"code":"421181113","name":"乘马岗镇"},{"code":"421181114","name":"顺河镇"},{"code":"421181200","name":"铁门岗乡"},{"code":"421181401","name":"宋埠良种场"},{"code":"421181402","name":"麻城明山水库"},{"code":"421181403","name":"麻城三河水库"},{"code":"421181404","name":"国营狮子峰林场"},{"code":"421181405","name":"麻城林店茶场"},{"code":"421181471","name":"湖北麻城经济开发区"},{"code":"421181472","name":"龟峰山风景区管理处"},{"code":"421181473","name":"浮桥河国家湿地公园管理处"},{"code":"421181500","name":"五脑山林场"}]},{"code":"421182","name":"武穴市","children":[{"code":"421182001","name":"武穴街道"},{"code":"421182002","name":"刊江街道"},{"code":"421182003","name":"田镇街道"},{"code":"421182004","name":"万丈湖街道"},{"code":"421182100","name":"梅川镇"},{"code":"421182101","name":"余川镇"},{"code":"421182102","name":"花桥镇"},{"code":"421182103","name":"大金镇"},{"code":"421182104","name":"石佛寺镇"},{"code":"421182105","name":"四望镇"},{"code":"421182106","name":"大法寺镇"},{"code":"421182107","name":"龙坪镇"}]}]},{"code":"4212","name":"咸宁市","children":[{"code":"421202","name":"咸安区","children":[{"code":"421202001","name":"温泉街道"},{"code":"421202002","name":"浮山街道"},{"code":"421202003","name":"永安街道"},{"code":"421202100","name":"汀泗桥镇"},{"code":"421202101","name":"向阳湖镇"},{"code":"421202102","name":"官埠桥镇"},{"code":"421202103","name":"横沟桥镇"},{"code":"421202104","name":"贺胜桥镇"},{"code":"421202105","name":"双溪桥镇"},{"code":"421202106","name":"马桥镇"},{"code":"421202107","name":"桂花镇"},{"code":"421202108","name":"高桥镇"},{"code":"421202200","name":"大幕乡"},{"code":"421202450","name":"向阳湖奶牛良种场"},{"code":"421202451","name":"咸安商贸物流区"},{"code":"421202570","name":"咸宁市经济技术开发区"},{"code":"421202571","name":"湖北咸安经济开发区"}]},{"code":"421221","name":"嘉鱼县","children":[{"code":"421221100","name":"陆溪镇"},{"code":"421221101","name":"高铁岭镇"},{"code":"421221102","name":"官桥镇"},{"code":"421221103","name":"鱼岳镇"},{"code":"421221104","name":"新街镇"},{"code":"421221105","name":"渡普镇"},{"code":"421221106","name":"潘家湾镇"},{"code":"421221107","name":"牌洲湾镇"},{"code":"421221450","name":"头墩农场"},{"code":"421221570","name":"嘉鱼县经济开发区"}]},{"code":"421222","name":"通城县","children":[{"code":"421222100","name":"隽水镇"},{"code":"421222101","name":"麦市镇"},{"code":"421222102","name":"塘湖镇"},{"code":"421222103","name":"关刀镇"},{"code":"421222104","name":"沙堆镇"},{"code":"421222105","name":"五里镇"},{"code":"421222106","name":"石南镇"},{"code":"421222107","name":"北港镇"},{"code":"421222108","name":"马港镇"},{"code":"421222200","name":"四庄乡"},{"code":"421222201","name":"大坪乡"},{"code":"421222500","name":"鹿角山林场"},{"code":"421222501","name":"锡山森林公园管理处"},{"code":"421222502","name":"黄龙林场"},{"code":"421222503","name":"黄袍林场"},{"code":"421222504","name":"药姑林场"}]},{"code":"421223","name":"崇阳县","children":[{"code":"421223100","name":"天城镇"},{"code":"421223101","name":"沙坪镇"},{"code":"421223102","name":"石城镇"},{"code":"421223103","name":"桂花泉镇"},{"code":"421223104","name":"白霓镇"},{"code":"421223105","name":"路口镇"},{"code":"421223106","name":"金塘镇"},{"code":"421223107","name":"青山镇"},{"code":"421223200","name":"肖岭乡"},{"code":"421223201","name":"铜钟乡"},{"code":"421223202","name":"港口乡"},{"code":"421223203","name":"高枧乡"},{"code":"421223570","name":"崇阳县工业园区"}]},{"code":"421224","name":"通山县","children":[{"code":"421224100","name":"通羊镇"},{"code":"421224101","name":"南林桥镇"},{"code":"421224102","name":"黄沙铺镇"},{"code":"421224103","name":"厦铺镇"},{"code":"421224104","name":"九宫山镇"},{"code":"421224105","name":"闯王镇"},{"code":"421224106","name":"洪港镇"},{"code":"421224107","name":"大畈镇"},{"code":"421224200","name":"大路乡"},{"code":"421224201","name":"杨芳林乡"},{"code":"421224202","name":"燕厦乡"},{"code":"421224203","name":"慈口乡"},{"code":"421224450","name":"九宫山自然保护管理局"},{"code":"421224570","name":"开发区"}]},{"code":"421281","name":"赤壁市","children":[{"code":"421281001","name":"蒲圻街道"},{"code":"421281002","name":"赤马港街道"},{"code":"421281003","name":"陆水湖街道"},{"code":"421281100","name":"新店镇"},{"code":"421281101","name":"赵李桥镇"},{"code":"421281102","name":"茶庵岭镇"},{"code":"421281103","name":"车埠镇"},{"code":"421281104","name":"赤壁镇"},{"code":"421281105","name":"柳山湖镇"},{"code":"421281106","name":"神山镇"},{"code":"421281107","name":"中伙铺镇"},{"code":"421281108","name":"官塘驿镇"},{"code":"421281109","name":"黄盖湖镇"},{"code":"421281200","name":"余家桥乡"},{"code":"421281400","name":"蒲纺工业园"},{"code":"421281401","name":"官塘驿林场"},{"code":"421281402","name":"羊楼洞茶场"},{"code":"421281403","name":"沧湖开发区"},{"code":"421281404","name":"赤壁市经济开发区"}]}]},{"code":"4213","name":"随州市","children":[{"code":"421303","name":"曾都区","children":[{"code":"421303001","name":"西城街道"},{"code":"421303002","name":"东城街道"},{"code":"421303003","name":"南郊街道"},{"code":"421303004","name":"北郊街道"},{"code":"421303005","name":"城南新区街道"},{"code":"421303101","name":"万店镇"},{"code":"421303102","name":"何店镇"},{"code":"421303103","name":"洛阳镇"},{"code":"421303104","name":"府河镇"},{"code":"421303187","name":"淅河镇"},{"code":"421303499","name":"曾都区新型工业基地"},{"code":"421303587","name":"随州市经济开发区"}]},{"code":"421321","name":"随县","children":[{"code":"421321101","name":"厉山镇"},{"code":"421321102","name":"高城镇"},{"code":"421321103","name":"殷店镇"},{"code":"421321104","name":"草店镇"},{"code":"421321105","name":"小林镇"},{"code":"421321106","name":"淮河镇"},{"code":"421321107","name":"万和镇"},{"code":"421321108","name":"尚市镇"},{"code":"421321109","name":"唐县镇"},{"code":"421321110","name":"吴山镇"},{"code":"421321111","name":"新街镇"},{"code":"421321112","name":"安居镇"},{"code":"421321113","name":"澴潭镇"},{"code":"421321114","name":"洪山镇"},{"code":"421321115","name":"长岗镇"},{"code":"421321116","name":"三里岗镇"},{"code":"421321117","name":"柳林镇"},{"code":"421321118","name":"均川镇"},{"code":"421321119","name":"万福店镇"}]},{"code":"421381","name":"广水市","children":[{"code":"421381001","name":"应山街道"},{"code":"421381002","name":"十里街道"},{"code":"421381003","name":"广水街道"},{"code":"421381004","name":"城郊街道"},{"code":"421381100","name":"武胜关镇"},{"code":"421381101","name":"杨寨镇"},{"code":"421381102","name":"陈巷镇"},{"code":"421381103","name":"长岭镇"},{"code":"421381104","name":"马坪镇"},{"code":"421381105","name":"关庙镇"},{"code":"421381106","name":"余店镇"},{"code":"421381107","name":"吴店镇"},{"code":"421381108","name":"郝店镇"},{"code":"421381109","name":"蔡河镇"},{"code":"421381110","name":"李店镇"},{"code":"421381111","name":"太平镇"},{"code":"421381112","name":"骆店镇"},{"code":"421381400","name":"中华山林场"},{"code":"421381401","name":"三潭风景区"},{"code":"421381402","name":"工业基地"}]}]},{"code":"4228","name":"恩施土家族苗族自治州","children":[{"code":"422801","name":"恩施市","children":[{"code":"422801001","name":"舞阳坝街道"},{"code":"422801002","name":"六角亭街道"},{"code":"422801003","name":"小渡船街道"},{"code":"422801004","name":"七里坪街道"},{"code":"422801005","name":"金子坝街道"},{"code":"422801100","name":"龙凤镇"},{"code":"422801101","name":"崔家坝镇"},{"code":"422801102","name":"板桥镇"},{"code":"422801103","name":"白杨坪镇"},{"code":"422801104","name":"三岔镇"},{"code":"422801105","name":"盛家坝镇"},{"code":"422801201","name":"新塘乡"},{"code":"422801202","name":"红土乡"},{"code":"422801203","name":"沙地乡"},{"code":"422801204","name":"太阳河乡"},{"code":"422801205","name":"屯堡乡"},{"code":"422801206","name":"白果乡"},{"code":"422801207","name":"芭蕉侗族乡"},{"code":"422801400","name":"恩施大峡谷风景管理处"}]},{"code":"422802","name":"利川市","children":[{"code":"422802001","name":"都亭街道"},{"code":"422802002","name":"东城街道"},{"code":"422802100","name":"谋道镇"},{"code":"422802101","name":"柏杨坝镇"},{"code":"422802102","name":"汪营镇"},{"code":"422802103","name":"建南镇"},{"code":"422802104","name":"忠路镇"},{"code":"422802105","name":"团堡镇"},{"code":"422802106","name":"毛坝镇"},{"code":"422802107","name":"文斗镇"},{"code":"422802200","name":"凉雾乡"},{"code":"422802201","name":"元堡乡"},{"code":"422802202","name":"南坪乡"},{"code":"422802205","name":"沙溪乡"},{"code":"422802401","name":"佛宝山生态综合开发区"}]},{"code":"422822","name":"建始县","children":[{"code":"422822100","name":"业州镇"},{"code":"422822101","name":"高坪镇"},{"code":"422822102","name":"红岩寺镇"},{"code":"422822103","name":"景阳镇"},{"code":"422822104","name":"官店镇"},{"code":"422822105","name":"花坪镇"},{"code":"422822106","name":"长梁镇"},{"code":"422822201","name":"茅田乡"},{"code":"422822202","name":"龙坪乡"},{"code":"422822203","name":"三里乡"}]},{"code":"422823","name":"巴东县","children":[{"code":"422823100","name":"信陵镇"},{"code":"422823101","name":"东瀼口镇"},{"code":"422823102","name":"沿渡河镇"},{"code":"422823103","name":"官渡口镇"},{"code":"422823104","name":"茶店子镇"},{"code":"422823105","name":"绿葱坡镇"},{"code":"422823106","name":"大支坪镇"},{"code":"422823107","name":"野三关镇"},{"code":"422823108","name":"水布垭镇"},{"code":"422823109","name":"清太坪镇"},{"code":"422823200","name":"溪丘湾乡"},{"code":"422823201","name":"金果坪乡"},{"code":"422823401","name":"高铁新区"}]},{"code":"422825","name":"宣恩县","children":[{"code":"422825100","name":"珠山镇"},{"code":"422825101","name":"椒园镇"},{"code":"422825102","name":"沙道沟镇"},{"code":"422825103","name":"李家河镇"},{"code":"422825104","name":"高罗镇"},{"code":"422825200","name":"万寨乡"},{"code":"422825201","name":"长潭河侗族乡"},{"code":"422825203","name":"晓关侗族乡"},{"code":"422825205","name":"椿木营乡"}]},{"code":"422826","name":"咸丰县","children":[{"code":"422826100","name":"高乐山镇"},{"code":"422826101","name":"忠堡镇"},{"code":"422826102","name":"坪坝营镇"},{"code":"422826103","name":"朝阳寺镇"},{"code":"422826104","name":"清坪镇"},{"code":"422826105","name":"唐崖镇"},{"code":"422826106","name":"曲江镇"},{"code":"422826202","name":"活龙坪乡"},{"code":"422826203","name":"小村乡"},{"code":"422826204","name":"黄金洞乡"},{"code":"422826400","name":"大路坝区"}]},{"code":"422827","name":"来凤县","children":[{"code":"422827100","name":"翔凤镇"},{"code":"422827101","name":"百福司镇"},{"code":"422827102","name":"大河镇"},{"code":"422827103","name":"绿水镇"},{"code":"422827104","name":"旧司镇"},{"code":"422827105","name":"革勒车镇"},{"code":"422827200","name":"漫水乡"},{"code":"422827202","name":"三胡乡"}]},{"code":"422828","name":"鹤峰县","children":[{"code":"422828100","name":"走马镇"},{"code":"422828101","name":"容美镇"},{"code":"422828102","name":"太平镇"},{"code":"422828103","name":"燕子镇"},{"code":"422828104","name":"中营镇"},{"code":"422828200","name":"铁炉乡"},{"code":"422828201","name":"五里乡"},{"code":"422828203","name":"下坪乡"},{"code":"422828204","name":"邬阳乡"}]}]},{"code":"4290","name":"省直辖县级行政区划","children":[{"code":"429004","name":"仙桃市","children":[{"code":"429004001","name":"沙嘴街道"},{"code":"429004002","name":"干河街道"},{"code":"429004003","name":"龙华山街道"},{"code":"429004100","name":"郑场镇"},{"code":"429004101","name":"毛嘴镇"},{"code":"429004102","name":"豆河镇"},{"code":"429004103","name":"三伏潭镇"},{"code":"429004104","name":"胡场镇"},{"code":"429004105","name":"长倘口镇"},{"code":"429004106","name":"西流河镇"},{"code":"429004107","name":"沙湖镇"},{"code":"429004108","name":"杨林尾镇"},{"code":"429004109","name":"彭场镇"},{"code":"429004110","name":"张沟镇"},{"code":"429004111","name":"郭河镇"},{"code":"429004112","name":"沔城回族镇"},{"code":"429004113","name":"通海口镇"},{"code":"429004114","name":"陈场镇"},{"code":"429004400","name":"工业园区"},{"code":"429004401","name":"九合垸原种场"},{"code":"429004402","name":"沙湖原种场"},{"code":"429004404","name":"五湖渔场"},{"code":"429004405","name":"赵西垸林场"},{"code":"429004407","name":"畜禽良种场"},{"code":"429004408","name":"排湖风景区"}]},{"code":"429005","name":"潜江市","children":[{"code":"429005001","name":"园林街道"},{"code":"429005002","name":"杨市街道"},{"code":"429005003","name":"周矶街道"},{"code":"429005004","name":"广华街道"},{"code":"429005005","name":"泰丰街道"},{"code":"429005006","name":"高场街道"},{"code":"429005100","name":"竹根滩镇"},{"code":"429005101","name":"渔洋镇"},{"code":"429005102","name":"王场镇"},{"code":"429005103","name":"高石碑镇"},{"code":"429005104","name":"熊口镇"},{"code":"429005105","name":"老新镇"},{"code":"429005106","name":"浩口镇"},{"code":"429005107","name":"积玉口镇"},{"code":"429005108","name":"张金镇"},{"code":"429005109","name":"龙湾镇"},{"code":"429005401","name":"潜江经济开发区"},{"code":"429005450","name":"周矶管理区"},{"code":"429005451","name":"后湖管理区"},{"code":"429005452","name":"熊口管理区"},{"code":"429005453","name":"总口管理区"},{"code":"429005454","name":"白鹭湖管理区"},{"code":"429005455","name":"运粮湖管理区"},{"code":"429005457","name":"浩口原种场"}]},{"code":"429006","name":"天门市","children":[{"code":"429006001","name":"竟陵街道"},{"code":"429006002","name":"候口街道"},{"code":"429006003","name":"杨林街道"},{"code":"429006100","name":"多宝镇"},{"code":"429006101","name":"拖市镇"},{"code":"429006102","name":"张港镇"},{"code":"429006103","name":"蒋场镇"},{"code":"429006104","name":"汪场镇"},{"code":"429006105","name":"渔薪镇"},{"code":"429006106","name":"黄潭镇"},{"code":"429006107","name":"岳口镇"},{"code":"429006108","name":"横林镇"},{"code":"429006109","name":"彭市镇"},{"code":"429006110","name":"麻洋镇"},{"code":"429006111","name":"多祥镇"},{"code":"429006112","name":"干驿镇"},{"code":"429006113","name":"马湾镇"},{"code":"429006114","name":"卢市镇"},{"code":"429006115","name":"小板镇"},{"code":"429006116","name":"九真镇"},{"code":"429006118","name":"皂市镇"},{"code":"429006119","name":"胡市镇"},{"code":"429006120","name":"石家河镇"},{"code":"429006121","name":"佛子山镇"},{"code":"429006201","name":"净潭乡"},{"code":"429006450","name":"蒋湖农场"},{"code":"429006451","name":"白茅湖农场"},{"code":"429006452","name":"沉湖管委会"}]},{"code":"429021","name":"神农架林区","children":[{"code":"429021100","name":"松柏镇"},{"code":"429021101","name":"阳日镇"},{"code":"429021102","name":"木鱼镇"},{"code":"429021103","name":"红坪镇"},{"code":"429021104","name":"新华镇"},{"code":"429021105","name":"九湖镇"},{"code":"429021201","name":"宋洛乡"},{"code":"429021203","name":"下谷坪土家族乡"}]}]}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市","children":[{"code":"430102","name":"芙蓉区","children":[{"code":"430102001","name":"文艺路街道"},{"code":"430102002","name":"朝阳街街道"},{"code":"430102003","name":"韭菜园街道"},{"code":"430102008","name":"五里牌街道"},{"code":"430102009","name":"火星街道"},{"code":"430102010","name":"马王堆街道"},{"code":"430102011","name":"东屯渡街道"},{"code":"430102012","name":"湘湖街道"},{"code":"430102013","name":"定王台街道"},{"code":"430102014","name":"荷花园街道"},{"code":"430102015","name":"东岸街道"},{"code":"430102016","name":"马坡岭街道"},{"code":"430102017","name":"东湖街道"},{"code":"430102400","name":"隆平高科技园"}]},{"code":"430103","name":"天心区","children":[{"code":"430103002","name":"坡子街街道"},{"code":"430103004","name":"城南路街道"},{"code":"430103005","name":"裕南街街道"},{"code":"430103006","name":"金盆岭街道"},{"code":"430103007","name":"新开铺街道"},{"code":"430103008","name":"青园街道"},{"code":"430103009","name":"桂花坪街道"},{"code":"430103010","name":"赤岭路街道"},{"code":"430103011","name":"文源街道"},{"code":"430103012","name":"先锋街道"},{"code":"430103013","name":"黑石铺街道"},{"code":"430103014","name":"大托铺街道"},{"code":"430103015","name":"暮云街道"},{"code":"430103016","name":"南托街道"}]},{"code":"430104","name":"岳麓区","children":[{"code":"430104001","name":"望月湖街道"},{"code":"430104002","name":"岳麓街道"},{"code":"430104003","name":"桔子洲街道"},{"code":"430104004","name":"银盆岭街道"},{"code":"430104005","name":"观沙岭街道"},{"code":"430104006","name":"望城坡街道"},{"code":"430104007","name":"西湖街道"},{"code":"430104008","name":"咸嘉湖街道"},{"code":"430104009","name":"望岳街道"},{"code":"430104010","name":"梅溪湖街道"},{"code":"430104011","name":"麓谷街道"},{"code":"430104012","name":"坪塘街道"},{"code":"430104013","name":"含浦街道"},{"code":"430104014","name":"天顶街道"},{"code":"430104015","name":"洋湖街道"},{"code":"430104016","name":"学士街道"},{"code":"430104017","name":"东方红街道"},{"code":"430104102","name":"莲花镇"},{"code":"430104105","name":"雨敞坪镇"}]},{"code":"430105","name":"开福区","children":[{"code":"430105001","name":"芙蓉北路街道"},{"code":"430105002","name":"东风路街道"},{"code":"430105003","name":"清水塘街道"},{"code":"430105004","name":"望麓园街道"},{"code":"430105005","name":"湘雅路街道"},{"code":"430105006","name":"伍家岭街道"},{"code":"430105009","name":"新河街道"},{"code":"430105010","name":"通泰街街道"},{"code":"430105012","name":"四方坪街道"},{"code":"430105013","name":"洪山街道"},{"code":"430105014","name":"浏阳河街道"},{"code":"430105015","name":"月湖街道"},{"code":"430105016","name":"秀峰街道"},{"code":"430105019","name":"沙坪街道"},{"code":"430105020","name":"捞刀河街道"},{"code":"430105021","name":"青竹湖街道"}]},{"code":"430111","name":"雨花区","children":[{"code":"430111001","name":"侯家塘街道"},{"code":"430111002","name":"左家塘街道"},{"code":"430111003","name":"圭塘街道"},{"code":"430111004","name":"砂子塘街道"},{"code":"430111005","name":"东塘街道"},{"code":"430111006","name":"雨花亭街道"},{"code":"430111007","name":"高桥街道"},{"code":"430111008","name":"洞井街道"},{"code":"430111009","name":"黎托街道"},{"code":"430111010","name":"井湾子街道"},{"code":"430111011","name":"同升街道"},{"code":"430111012","name":"东山街道"},{"code":"430111101","name":"跳马镇"},{"code":"430111400","name":"长沙雨花经济开发区管理委员会"}]},{"code":"430112","name":"望城区","children":[{"code":"430112001","name":"高塘岭街道"},{"code":"430112003","name":"丁字湾街道"},{"code":"430112005","name":"大泽湖街道"},{"code":"430112006","name":"月亮岛街道"},{"code":"430112007","name":"白沙洲街道"},{"code":"430112008","name":"金山桥街道"},{"code":"430112009","name":"黄金园街道"},{"code":"430112011","name":"乌山街道"},{"code":"430112012","name":"铜官街道"},{"code":"430112013","name":"雷锋街道"},{"code":"430112014","name":"白马街道"},{"code":"430112101","name":"桥驿镇"},{"code":"430112103","name":"茶亭镇"},{"code":"430112106","name":"靖港镇"},{"code":"430112107","name":"乔口镇"},{"code":"430112115","name":"白箬铺镇"}]},{"code":"430121","name":"长沙县","children":[{"code":"430121001","name":"星沙街道"},{"code":"430121002","name":"泉塘街道"},{"code":"430121003","name":"湘龙街道"},{"code":"430121004","name":"榔梨街道"},{"code":"430121005","name":"长龙街道"},{"code":"430121102","name":"黄兴镇"},{"code":"430121104","name":"江背镇"},{"code":"430121105","name":"黄花镇"},{"code":"430121106","name":"春华镇"},{"code":"430121107","name":"果园镇"},{"code":"430121108","name":"路口镇"},{"code":"430121109","name":"高桥镇"},{"code":"430121110","name":"金井镇"},{"code":"430121111","name":"福临镇"},{"code":"430121112","name":"青山铺镇"},{"code":"430121113","name":"安沙镇"},{"code":"430121114","name":"北山镇"},{"code":"430121116","name":"开慧镇"}]},{"code":"430181","name":"浏阳市","children":[{"code":"430181001","name":"淮川街道"},{"code":"430181002","name":"集里街道"},{"code":"430181003","name":"荷花街道"},{"code":"430181004","name":"关口街道"},{"code":"430181102","name":"社港镇"},{"code":"430181104","name":"官渡镇"},{"code":"430181105","name":"张坊镇"},{"code":"430181106","name":"达浒镇"},{"code":"430181107","name":"沿溪镇"},{"code":"430181108","name":"古港镇"},{"code":"430181109","name":"永和镇"},{"code":"430181110","name":"大瑶镇"},{"code":"430181111","name":"金刚镇"},{"code":"430181112","name":"文家市镇"},{"code":"430181114","name":"枨冲镇"},{"code":"430181115","name":"镇头镇"},{"code":"430181116","name":"普迹镇"},{"code":"430181117","name":"永安镇"},{"code":"430181118","name":"北盛镇"},{"code":"430181120","name":"龙伏镇"},{"code":"430181121","name":"澄潭江镇"},{"code":"430181122","name":"中和镇"},{"code":"430181123","name":"柏加镇"},{"code":"430181124","name":"洞阳镇"},{"code":"430181125","name":"大围山镇"},{"code":"430181126","name":"沙市镇"},{"code":"430181127","name":"淳口镇"},{"code":"430181128","name":"高坪镇"},{"code":"430181130","name":"官桥镇"},{"code":"430181131","name":"葛家镇"},{"code":"430181132","name":"蕉溪镇"},{"code":"430181201","name":"小河乡"}]},{"code":"430182","name":"宁乡市","children":[{"code":"430182001","name":"玉潭街道"},{"code":"430182002","name":"白马桥街道"},{"code":"430182003","name":"历经铺街道"},{"code":"430182004","name":"城郊街道"},{"code":"430182101","name":"道林镇"},{"code":"430182102","name":"花明楼镇"},{"code":"430182103","name":"东湖塘镇"},{"code":"430182104","name":"夏铎铺镇"},{"code":"430182105","name":"双江口镇"},{"code":"430182106","name":"煤炭坝镇"},{"code":"430182107","name":"坝塘镇"},{"code":"430182109","name":"灰汤镇"},{"code":"430182110","name":"双凫铺镇"},{"code":"430182111","name":"老粮仓镇"},{"code":"430182112","name":"流沙河镇"},{"code":"430182113","name":"巷子口镇"},{"code":"430182114","name":"龙田镇"},{"code":"430182116","name":"横市镇"},{"code":"430182117","name":"回龙铺镇"},{"code":"430182118","name":"黄材镇"},{"code":"430182119","name":"大成桥镇"},{"code":"430182120","name":"青山桥镇"},{"code":"430182121","name":"金洲镇"},{"code":"430182122","name":"大屯营镇"},{"code":"430182123","name":"资福镇"},{"code":"430182203","name":"菁华铺乡"},{"code":"430182209","name":"喻家坳乡"},{"code":"430182213","name":"沙田乡"},{"code":"430182218","name":"沩山乡"}]}]},{"code":"4302","name":"株洲市","children":[{"code":"430202","name":"荷塘区","children":[{"code":"430202001","name":"月塘街道"},{"code":"430202002","name":"茨菇塘街道"},{"code":"430202003","name":"宋家桥街道"},{"code":"430202004","name":"桂花街道"},{"code":"430202005","name":"金山街道"},{"code":"430202100","name":"仙庾镇"}]},{"code":"430203","name":"芦淞区","children":[{"code":"430203001","name":"贺家土街道"},{"code":"430203002","name":"建设街道"},{"code":"430203003","name":"建宁街道"},{"code":"430203004","name":"董家段街道"},{"code":"430203005","name":"庆云街道"},{"code":"430203006","name":"枫溪街道"},{"code":"430203007","name":"龙泉街道"},{"code":"430203100","name":"白关镇"}]},{"code":"430204","name":"石峰区","children":[{"code":"430204001","name":"田心街道"},{"code":"430204002","name":"响石岭街道"},{"code":"430204003","name":"清水塘街道"},{"code":"430204004","name":"铜塘湾街道"},{"code":"430204005","name":"井龙街道"}]},{"code":"430211","name":"天元区","children":[{"code":"430211001","name":"嵩山路街道"},{"code":"430211002","name":"泰山路街道"},{"code":"430211003","name":"栗雨街道"},{"code":"430211004","name":"马家河街道"},{"code":"430211101","name":"群丰镇"},{"code":"430211102","name":"雷打石镇"},{"code":"430211103","name":"三门镇"}]},{"code":"430212","name":"渌口区","children":[{"code":"430212100","name":"渌口镇"},{"code":"430212101","name":"朱亭镇"},{"code":"430212106","name":"古岳峰镇"},{"code":"430212107","name":"淦田镇"},{"code":"430212108","name":"龙门镇"},{"code":"430212109","name":"龙潭镇"},{"code":"430212110","name":"南洲镇"},{"code":"430212111","name":"龙船镇"}]},{"code":"430223","name":"攸县","children":[{"code":"430223001","name":"联星街道"},{"code":"430223002","name":"江桥街道"},{"code":"430223003","name":"春联街道"},{"code":"430223004","name":"谭桥街道"},{"code":"430223102","name":"酒埠江镇"},{"code":"430223103","name":"桃水镇"},{"code":"430223106","name":"网岭镇"},{"code":"430223109","name":"渌田镇"},{"code":"430223115","name":"石羊塘镇"},{"code":"430223118","name":"黄丰桥镇"},{"code":"430223119","name":"鸾山镇"},{"code":"430223120","name":"丫江桥镇"},{"code":"430223122","name":"皇图岭镇"},{"code":"430223123","name":"新市镇"},{"code":"430223124","name":"菜花坪镇"},{"code":"430223125","name":"莲塘坳镇"},{"code":"430223126","name":"宁家坪镇"},{"code":"430223400","name":"攸县工业园"},{"code":"430223401","name":"攸县网岭循环经济园"}]},{"code":"430224","name":"茶陵县","children":[{"code":"430224002","name":"下东街道"},{"code":"430224003","name":"思聪街道"},{"code":"430224004","name":"洣江街道"},{"code":"430224005","name":"云阳街道"},{"code":"430224101","name":"界首镇"},{"code":"430224103","name":"湖口镇"},{"code":"430224105","name":"马江镇"},{"code":"430224106","name":"高陇镇"},{"code":"430224109","name":"虎踞镇"},{"code":"430224111","name":"枣市镇"},{"code":"430224112","name":"火田镇"},{"code":"430224113","name":"严塘镇"},{"code":"430224115","name":"秩堂镇"},{"code":"430224116","name":"腰潞镇"},{"code":"430224203","name":"舲舫乡"},{"code":"430224213","name":"桃坑乡"},{"code":"430224404","name":"汉背"},{"code":"430224500","name":"茶陵县红色农场"}]},{"code":"430225","name":"炎陵县","children":[{"code":"430225100","name":"霞阳镇"},{"code":"430225101","name":"沔渡镇"},{"code":"430225102","name":"十都镇"},{"code":"430225103","name":"水口镇"},{"code":"430225105","name":"鹿原镇"},{"code":"430225200","name":"垄溪乡"},{"code":"430225202","name":"策源乡"},{"code":"430225203","name":"下村乡"},{"code":"430225207","name":"船形乡"},{"code":"430225209","name":"中村瑶族乡"},{"code":"430225400","name":"炎陵县大院农场"},{"code":"430225401","name":"炎陵县桃源洞管理局"}]},{"code":"430271","name":"云龙示范区","children":[{"code":"430271006","name":"学林街道"},{"code":"430271007","name":"龙头铺街道"},{"code":"430271101","name":"云田镇"}]},{"code":"430281","name":"醴陵市","children":[{"code":"430281002","name":"阳三石街道"},{"code":"430281003","name":"仙岳山街道"},{"code":"430281004","name":"国瓷街道"},{"code":"430281006","name":"来龙门街道"},{"code":"430281007","name":"长庆街道"},{"code":"430281102","name":"白兔潭镇"},{"code":"430281103","name":"浦口镇"},{"code":"430281105","name":"王仙镇"},{"code":"430281107","name":"泗汾镇"},{"code":"430281108","name":"沈潭镇"},{"code":"430281109","name":"船湾镇"},{"code":"430281120","name":"均楚镇"},{"code":"430281121","name":"东富镇"},{"code":"430281122","name":"石亭镇"},{"code":"430281125","name":"孙家湾镇"},{"code":"430281126","name":"官庄镇"},{"code":"430281127","name":"嘉树镇"},{"code":"430281128","name":"板杉镇"},{"code":"430281129","name":"沩山镇"},{"code":"430281130","name":"枫林镇"},{"code":"430281131","name":"李畋镇"},{"code":"430281132","name":"明月镇"},{"code":"430281133","name":"左权镇"},{"code":"430281134","name":"茶山镇"},{"code":"430281400","name":"湖南醴陵经济开发区"}]}]},{"code":"4303","name":"湘潭市","children":[{"code":"430302","name":"雨湖区","children":[{"code":"430302001","name":"雨湖路街道"},{"code":"430302002","name":"城正街街道"},{"code":"430302003","name":"云塘街道"},{"code":"430302004","name":"广场街道"},{"code":"430302005","name":"窑湾街道"},{"code":"430302006","name":"昭潭街道"},{"code":"430302007","name":"万楼街道"},{"code":"430302008","name":"先锋街道"},{"code":"430302100","name":"鹤岭镇"},{"code":"430302101","name":"楠竹山镇"},{"code":"430302102","name":"姜畲镇"},{"code":"430302202","name":"长城乡"}]},{"code":"430304","name":"岳塘区","children":[{"code":"430304001","name":"岳塘街道"},{"code":"430304002","name":"东坪街道"},{"code":"430304004","name":"书院路街道"},{"code":"430304005","name":"下摄司街道"},{"code":"430304006","name":"建设路街道"},{"code":"430304008","name":"五里堆街道"},{"code":"430304010","name":"宝塔街道"},{"code":"430304014","name":"霞城街道"},{"code":"430304015","name":"荷塘街道"}]},{"code":"430321","name":"湘潭县","children":[{"code":"430321100","name":"易俗河镇"},{"code":"430321102","name":"谭家山镇"},{"code":"430321103","name":"中路铺镇"},{"code":"430321104","name":"茶恩寺镇"},{"code":"430321105","name":"河口镇"},{"code":"430321106","name":"射埠镇"},{"code":"430321107","name":"花石镇"},{"code":"430321108","name":"青山桥镇"},{"code":"430321109","name":"石鼓镇"},{"code":"430321111","name":"云湖桥镇"},{"code":"430321112","name":"石潭镇"},{"code":"430321113","name":"杨嘉桥镇"},{"code":"430321114","name":"乌石镇"},{"code":"430321115","name":"白石镇"},{"code":"430321202","name":"分水乡"},{"code":"430321203","name":"排头乡"},{"code":"430321205","name":"锦石乡"}]},{"code":"430371","name":"湖南湘潭高新技术产业园区","children":[{"code":"430371001","name":"板塘街道"},{"code":"430371002","name":"双马街道"}]},{"code":"430372","name":"湘潭昭山示范区","children":[{"code":"430372100","name":"昭山镇"}]},{"code":"430373","name":"湘潭九华示范区","children":[{"code":"430373001","name":"和平街道"},{"code":"430373002","name":"九华街道"},{"code":"430373200","name":"响水乡"}]},{"code":"430381","name":"湘乡市","children":[{"code":"430381001","name":"望春门街道"},{"code":"430381002","name":"新湘路街道"},{"code":"430381003","name":"昆仑桥街道"},{"code":"430381004","name":"东山街道"},{"code":"430381100","name":"山枣镇"},{"code":"430381101","name":"栗山镇"},{"code":"430381102","name":"中沙镇"},{"code":"430381103","name":"虞唐镇"},{"code":"430381104","name":"潭市镇"},{"code":"430381105","name":"棋梓镇"},{"code":"430381106","name":"壶天镇"},{"code":"430381107","name":"翻江镇"},{"code":"430381108","name":"金石镇"},{"code":"430381109","name":"白田镇"},{"code":"430381110","name":"月山镇"},{"code":"430381111","name":"泉塘镇"},{"code":"430381112","name":"梅桥镇"},{"code":"430381113","name":"毛田镇"},{"code":"430381114","name":"龙洞镇"},{"code":"430381200","name":"东郊乡"},{"code":"430381202","name":"金薮乡"},{"code":"430381203","name":"育塅乡"}]},{"code":"430382","name":"韶山市","children":[{"code":"430382100","name":"清溪镇"},{"code":"430382101","name":"银田镇"},{"code":"430382200","name":"韶山乡"},{"code":"430382203","name":"杨林乡"}]}]},{"code":"4304","name":"衡阳市","children":[{"code":"430405","name":"珠晖区","children":[{"code":"430405007","name":"衡州路街道"},{"code":"430405009","name":"广东路街道"},{"code":"430405010","name":"东风路街道"},{"code":"430405011","name":"冶金街道"},{"code":"430405012","name":"苗圃街道"},{"code":"430405013","name":"粤汉街道"},{"code":"430405014","name":"东阳渡街道"},{"code":"430405100","name":"茶山坳镇"},{"code":"430405200","name":"和平乡"},{"code":"430405201","name":"酃湖乡"},{"code":"430405403","name":"松林茶场"}]},{"code":"430406","name":"雁峰区","children":[{"code":"430406001","name":"先锋街道"},{"code":"430406002","name":"雁峰街道"},{"code":"430406003","name":"天马山街道"},{"code":"430406004","name":"黄茶岭街道"},{"code":"430406005","name":"白沙洲街道"},{"code":"430406100","name":"岳屏镇"},{"code":"430406400","name":"白沙洲工业园"}]},{"code":"430407","name":"石鼓区","children":[{"code":"430407001","name":"人民街道"},{"code":"430407002","name":"青山街道"},{"code":"430407003","name":"潇湘街道"},{"code":"430407004","name":"五一街道"},{"code":"430407005","name":"合江街道"},{"code":"430407006","name":"黄沙湾街道"},{"code":"430407100","name":"角山镇"}]},{"code":"430408","name":"蒸湘区","children":[{"code":"430408001","name":"蒸湘街道"},{"code":"430408002","name":"红湘街道"},{"code":"430408004","name":"联合街道"},{"code":"430408100","name":"呆鹰岭镇"},{"code":"430408101","name":"雨母山镇"}]},{"code":"430412","name":"南岳区","children":[{"code":"430412001","name":"祝融街道"},{"code":"430412100","name":"南岳镇"},{"code":"430412203","name":"寿岳乡"}]},{"code":"430421","name":"衡阳县","children":[{"code":"430421100","name":"西渡镇"},{"code":"430421101","name":"集兵镇"},{"code":"430421103","name":"杉桥镇"},{"code":"430421104","name":"井头镇"},{"code":"430421105","name":"演陂镇"},{"code":"430421106","name":"金兰镇"},{"code":"430421107","name":"洪市镇"},{"code":"430421108","name":"曲兰镇"},{"code":"430421109","name":"金溪镇"},{"code":"430421110","name":"界牌镇"},{"code":"430421111","name":"渣江镇"},{"code":"430421112","name":"三湖镇"},{"code":"430421113","name":"台源镇"},{"code":"430421114","name":"关市镇"},{"code":"430421115","name":"库宗桥镇"},{"code":"430421116","name":"岘山镇"},{"code":"430421117","name":"石市镇"},{"code":"430421200","name":"樟木乡"},{"code":"430421201","name":"岣嵝乡"},{"code":"430421205","name":"栏垅乡"},{"code":"430421207","name":"大安乡"},{"code":"430421208","name":"溪江乡"},{"code":"430421210","name":"长安乡"},{"code":"430421211","name":"板市乡"},{"code":"430421212","name":"樟树乡"}]},{"code":"430422","name":"衡南县","children":[{"code":"430422001","name":"云集街道"},{"code":"430422002","name":"车江街道"},{"code":"430422003","name":"向阳桥街道"},{"code":"430422103","name":"茶市镇"},{"code":"430422104","name":"冠市镇"},{"code":"430422105","name":"江口镇"},{"code":"430422106","name":"宝盖镇"},{"code":"430422107","name":"花桥镇"},{"code":"430422108","name":"铁丝塘镇"},{"code":"430422109","name":"泉溪镇"},{"code":"430422110","name":"洪山镇"},{"code":"430422111","name":"三塘镇"},{"code":"430422112","name":"谭子山镇"},{"code":"430422113","name":"岐山镇"},{"code":"430422114","name":"泉湖镇"},{"code":"430422115","name":"柞市镇"},{"code":"430422116","name":"茅市镇"},{"code":"430422117","name":"硫市镇"},{"code":"430422118","name":"栗江镇"},{"code":"430422119","name":"近尾洲镇"},{"code":"430422121","name":"咸塘镇"},{"code":"430422122","name":"松江镇"},{"code":"430422200","name":"相市乡"},{"code":"430422407","name":"衡州监狱"}]},{"code":"430423","name":"衡山县","children":[{"code":"430423100","name":"开云镇"},{"code":"430423101","name":"白果镇"},{"code":"430423102","name":"东湖镇"},{"code":"430423103","name":"萱洲镇"},{"code":"430423104","name":"长江镇"},{"code":"430423105","name":"新桥镇"},{"code":"430423107","name":"店门镇"},{"code":"430423201","name":"永和乡"},{"code":"430423203","name":"福田铺乡"},{"code":"430423204","name":"岭坡乡"},{"code":"430423207","name":"贯塘乡"},{"code":"430423208","name":"江东乡"}]},{"code":"430424","name":"衡东县","children":[{"code":"430424100","name":"洣水镇"},{"code":"430424101","name":"石湾镇"},{"code":"430424102","name":"新塘镇"},{"code":"430424103","name":"大浦镇"},{"code":"430424104","name":"吴集镇"},{"code":"430424105","name":"甘溪镇"},{"code":"430424106","name":"杨林镇"},{"code":"430424107","name":"草市镇"},{"code":"430424108","name":"杨桥镇"},{"code":"430424109","name":"霞流镇"},{"code":"430424110","name":"荣桓镇"},{"code":"430424111","name":"高湖镇"},{"code":"430424112","name":"白莲镇"},{"code":"430424113","name":"三樟镇"},{"code":"430424114","name":"蓬源镇"},{"code":"430424204","name":"南湾乡"},{"code":"430424211","name":"石滩乡"},{"code":"430424401","name":"河西开发区"},{"code":"430424403","name":"大浦工业园"}]},{"code":"430426","name":"祁东县","children":[{"code":"430426001","name":"洪桥街道"},{"code":"430426002","name":"玉合街道"},{"code":"430426003","name":"永昌街道"},{"code":"430426004","name":"白鹤街道"},{"code":"430426102","name":"金桥镇"},{"code":"430426103","name":"鸟江镇"},{"code":"430426104","name":"粮市镇"},{"code":"430426105","name":"河洲镇"},{"code":"430426106","name":"归阳镇"},{"code":"430426107","name":"过水坪镇"},{"code":"430426108","name":"双桥镇"},{"code":"430426109","name":"灵官镇"},{"code":"430426110","name":"风石堰镇"},{"code":"430426111","name":"白地市镇"},{"code":"430426112","name":"黄土铺镇"},{"code":"430426113","name":"石亭子镇"},{"code":"430426114","name":"官家嘴镇"},{"code":"430426115","name":"步云桥镇"},{"code":"430426116","name":"砖塘镇"},{"code":"430426117","name":"蒋家桥镇"},{"code":"430426118","name":"太和堂镇"},{"code":"430426200","name":"马杜桥乡"},{"code":"430426201","name":"凤歧坪乡"},{"code":"430426202","name":"城连圩乡"}]},{"code":"430471","name":"衡阳综合保税区","children":[{"code":"430471401","name":"衡阳综合保税区"}]},{"code":"430472","name":"湖南衡阳高新技术产业园区","children":[{"code":"430472003","name":"华兴街道"}]},{"code":"430473","name":"湖南衡阳松木经济开发区","children":[{"code":"430473400","name":"松木工业园"}]},{"code":"430481","name":"耒阳市","children":[{"code":"430481001","name":"蔡子池街道"},{"code":"430481002","name":"灶市街街道"},{"code":"430481003","name":"水东江街道"},{"code":"430481004","name":"五里牌街道"},{"code":"430481005","name":"三架街道"},{"code":"430481006","name":"余庆街道"},{"code":"430481100","name":"黄市镇"},{"code":"430481101","name":"小水镇"},{"code":"430481102","name":"公平圩镇"},{"code":"430481104","name":"三都镇"},{"code":"430481105","name":"南阳镇"},{"code":"430481107","name":"夏塘镇"},{"code":"430481108","name":"龙塘镇"},{"code":"430481109","name":"哲桥镇"},{"code":"430481110","name":"永济镇"},{"code":"430481111","name":"遥田镇"},{"code":"430481112","name":"新市镇"},{"code":"430481113","name":"淝田镇"},{"code":"430481114","name":"大市镇"},{"code":"430481115","name":"仁义镇"},{"code":"430481116","name":"南京镇"},{"code":"430481117","name":"大义镇"},{"code":"430481118","name":"东湖圩镇"},{"code":"430481119","name":"马水镇"},{"code":"430481120","name":"导子镇"},{"code":"430481201","name":"亮源乡"},{"code":"430481203","name":"太平圩乡"},{"code":"430481213","name":"长坪乡"},{"code":"430481214","name":"太和圩乡"},{"code":"430481215","name":"坛下乡"}]},{"code":"430482","name":"常宁市","children":[{"code":"430482001","name":"宜阳街道"},{"code":"430482002","name":"泉峰街道"},{"code":"430482003","name":"培元街道"},{"code":"430482005","name":"曲潭街道"},{"code":"430482006","name":"天堂山街道"},{"code":"430482101","name":"柏坊镇"},{"code":"430482102","name":"水口山镇"},{"code":"430482103","name":"烟洲镇"},{"code":"430482104","name":"荫田镇"},{"code":"430482105","name":"白沙镇"},{"code":"430482106","name":"西岭镇"},{"code":"430482108","name":"三角塘镇"},{"code":"430482109","name":"洋泉镇"},{"code":"430482110","name":"庙前镇"},{"code":"430482111","name":"罗桥镇"},{"code":"430482112","name":"板桥镇"},{"code":"430482113","name":"胜桥镇"},{"code":"430482114","name":"官岭镇"},{"code":"430482115","name":"新河镇"},{"code":"430482201","name":"蓬塘乡"},{"code":"430482202","name":"兰江乡"},{"code":"430482203","name":"大堡乡"},{"code":"430482206","name":"塔山瑶族乡"}]}]},{"code":"4305","name":"邵阳市","children":[{"code":"430502","name":"双清区","children":[{"code":"430502001","name":"兴隆街道"},{"code":"430502002","name":"龙须塘街道"},{"code":"430502003","name":"汽车站街道"},{"code":"430502004","name":"小江湖街道"},{"code":"430502005","name":"东风路街道"},{"code":"430502006","name":"桥头街道"},{"code":"430502007","name":"滨江街道"},{"code":"430502008","name":"石桥街道"},{"code":"430502009","name":"爱莲街道"},{"code":"430502100","name":"高崇山镇"},{"code":"430502101","name":"渡头桥镇"},{"code":"430502202","name":"火车站乡"}]},{"code":"430503","name":"大祥区","children":[{"code":"430503001","name":"中心路街道"},{"code":"430503002","name":"红旗路街道"},{"code":"430503003","name":"城北路街道"},{"code":"430503004","name":"城西街道"},{"code":"430503005","name":"翠园街道"},{"code":"430503006","name":"百春园街道"},{"code":"430503007","name":"城南街道"},{"code":"430503008","name":"火车南站街道"},{"code":"430503009","name":"学院路街道"},{"code":"430503010","name":"雨溪街道"},{"code":"430503011","name":"檀江街道"},{"code":"430503101","name":"罗市镇"},{"code":"430503202","name":"蔡锷乡"},{"code":"430503203","name":"板桥乡"}]},{"code":"430511","name":"北塔区","children":[{"code":"430511001","name":"新滩镇街道"},{"code":"430511002","name":"状元洲街道"},{"code":"430511003","name":"田江街道"},{"code":"430511004","name":"茶元头街道"},{"code":"430511101","name":"陈家桥镇"}]},{"code":"430522","name":"新邵县","children":[{"code":"430522100","name":"酿溪镇"},{"code":"430522101","name":"严塘镇"},{"code":"430522102","name":"雀塘镇"},{"code":"430522103","name":"陈家坊镇"},{"code":"430522104","name":"潭溪镇"},{"code":"430522105","name":"寸石镇"},{"code":"430522106","name":"坪上镇"},{"code":"430522107","name":"龙溪铺镇"},{"code":"430522108","name":"巨口铺镇"},{"code":"430522109","name":"新田铺镇"},{"code":"430522110","name":"小塘镇"},{"code":"430522111","name":"太芝庙镇"},{"code":"430522112","name":"大新镇"},{"code":"430522200","name":"潭府乡"},{"code":"430522203","name":"迎光乡"}]},{"code":"430523","name":"邵阳县","children":[{"code":"430523100","name":"塘渡口镇"},{"code":"430523101","name":"白仓镇"},{"code":"430523102","name":"金称市镇"},{"code":"430523103","name":"塘田市镇"},{"code":"430523104","name":"黄亭市镇"},{"code":"430523105","name":"长阳铺镇"},{"code":"430523106","name":"岩口铺镇"},{"code":"430523107","name":"九公桥镇"},{"code":"430523108","name":"下花桥镇"},{"code":"430523109","name":"谷洲镇"},{"code":"430523110","name":"郦家坪镇"},{"code":"430523111","name":"五峰铺镇"},{"code":"430523201","name":"小溪市乡"},{"code":"430523203","name":"长乐乡"},{"code":"430523204","name":"蔡桥乡"},{"code":"430523205","name":"河伯乡"},{"code":"430523206","name":"黄荆乡"},{"code":"430523207","name":"诸甲亭乡"},{"code":"430523208","name":"罗城乡"},{"code":"430523209","name":"金江乡"},{"code":"430523401","name":"七里山园艺场"},{"code":"430523402","name":"五峰铺国有林场"},{"code":"430523403","name":"河伯岭国有林场"}]},{"code":"430524","name":"隆回县","children":[{"code":"430524001","name":"桃花坪街道"},{"code":"430524002","name":"花门街道"},{"code":"430524101","name":"小沙江镇"},{"code":"430524102","name":"金石桥镇"},{"code":"430524103","name":"司门前镇"},{"code":"430524104","name":"高平镇"},{"code":"430524105","name":"六都寨镇"},{"code":"430524106","name":"荷香桥镇"},{"code":"430524107","name":"横板桥镇"},{"code":"430524108","name":"周旺镇"},{"code":"430524109","name":"滩头镇"},{"code":"430524110","name":"鸭田镇"},{"code":"430524111","name":"西洋江镇"},{"code":"430524113","name":"岩口镇"},{"code":"430524114","name":"北山镇"},{"code":"430524115","name":"三阁司镇"},{"code":"430524116","name":"南岳庙镇"},{"code":"430524117","name":"七江镇"},{"code":"430524118","name":"羊古坳镇"},{"code":"430524119","name":"罗洪镇"},{"code":"430524200","name":"麻塘山乡"},{"code":"430524201","name":"虎形山瑶族乡"},{"code":"430524203","name":"大水田乡"},{"code":"430524207","name":"荷田乡"},{"code":"430524212","name":"山界回族乡"}]},{"code":"430525","name":"洞口县","children":[{"code":"430525001","name":"文昌街道"},{"code":"430525002","name":"雪峰街道"},{"code":"430525003","name":"花古街道"},{"code":"430525101","name":"江口镇"},{"code":"430525102","name":"毓兰镇"},{"code":"430525103","name":"高沙镇"},{"code":"430525104","name":"竹市镇"},{"code":"430525105","name":"石江镇"},{"code":"430525106","name":"黄桥镇"},{"code":"430525107","name":"山门镇"},{"code":"430525108","name":"醪田镇"},{"code":"430525109","name":"花园镇"},{"code":"430525110","name":"岩山镇"},{"code":"430525111","name":"水东镇"},{"code":"430525112","name":"杨林镇"},{"code":"430525113","name":"月溪镇"},{"code":"430525114","name":"石柱镇"},{"code":"430525201","name":"古楼乡"},{"code":"430525202","name":"长塘瑶族乡"},{"code":"430525203","name":"罗溪瑶族乡"},{"code":"430525205","name":"渣坪乡"},{"code":"430525211","name":"桐山乡"},{"code":"430525212","name":"大屋瑶族乡"},{"code":"430525500","name":"茶铺茶场管理区"}]},{"code":"430527","name":"绥宁县","children":[{"code":"430527100","name":"长铺镇"},{"code":"430527101","name":"武阳镇"},{"code":"430527102","name":"李熙桥镇"},{"code":"430527103","name":"红岩镇"},{"code":"430527104","name":"唐家坊镇"},{"code":"430527105","name":"金屋塘镇"},{"code":"430527106","name":"瓦屋塘镇"},{"code":"430527107","name":"黄土矿镇"},{"code":"430527200","name":"东山侗族乡"},{"code":"430527201","name":"鹅公岭侗族苗族乡"},{"code":"430527203","name":"寨市苗族侗族乡"},{"code":"430527204","name":"乐安铺苗族侗族乡"},{"code":"430527206","name":"关峡苗族乡"},{"code":"430527207","name":"长铺子苗族侗族乡"},{"code":"430527210","name":"麻塘苗族瑶族乡"},{"code":"430527212","name":"河口苗族乡"},{"code":"430527217","name":"水口乡"}]},{"code":"430528","name":"新宁县","children":[{"code":"430528100","name":"金石镇"},{"code":"430528101","name":"水庙镇"},{"code":"430528102","name":"崀山镇"},{"code":"430528104","name":"黄龙镇"},{"code":"430528105","name":"高桥镇"},{"code":"430528106","name":"回龙寺镇"},{"code":"430528107","name":"一渡水镇"},{"code":"430528108","name":"马头桥镇"},{"code":"430528200","name":"黄金瑶族乡"},{"code":"430528201","name":"麻林瑶族乡"},{"code":"430528203","name":"万塘乡"},{"code":"430528204","name":"清江桥乡"},{"code":"430528205","name":"安山乡"},{"code":"430528206","name":"丰田乡"},{"code":"430528208","name":"巡田乡"},{"code":"430528209","name":"靖位乡"}]},{"code":"430529","name":"城步苗族自治县","children":[{"code":"430529100","name":"儒林镇"},{"code":"430529101","name":"茅坪镇"},{"code":"430529102","name":"西岩镇"},{"code":"430529103","name":"丹口镇"},{"code":"430529104","name":"五团镇"},{"code":"430529106","name":"长安营镇"},{"code":"430529107","name":"白毛坪镇"},{"code":"430529200","name":"威溪乡"},{"code":"430529203","name":"兰蓉乡"},{"code":"430529204","name":"汀坪乡"},{"code":"430529205","name":"蒋坊乡"},{"code":"430529206","name":"金紫乡"}]},{"code":"430581","name":"武冈市","children":[{"code":"430581001","name":"辕门口街道"},{"code":"430581002","name":"迎春亭街道"},{"code":"430581003","name":"法相岩街道"},{"code":"430581004","name":"水西门街道"},{"code":"430581100","name":"邓元泰镇"},{"code":"430581101","name":"湾头桥镇"},{"code":"430581102","name":"文坪镇"},{"code":"430581103","name":"荆竹铺镇"},{"code":"430581104","name":"稠树塘镇"},{"code":"430581105","name":"邓家铺镇"},{"code":"430581106","name":"龙溪镇"},{"code":"430581107","name":"司马冲镇"},{"code":"430581108","name":"秦桥镇"},{"code":"430581109","name":"双牌镇"},{"code":"430581110","name":"大甸镇"},{"code":"430581204","name":"马坪乡"},{"code":"430581205","name":"晏田乡"},{"code":"430581207","name":"水浸坪乡"}]},{"code":"430582","name":"邵东市","children":[{"code":"430582001","name":"大禾塘街道"},{"code":"430582002","name":"两市塘街道"},{"code":"430582003","name":"宋家塘街道"},{"code":"430582101","name":"牛马司镇"},{"code":"430582102","name":"界岭镇"},{"code":"430582103","name":"九龙岭镇"},{"code":"430582104","name":"仙槎桥镇"},{"code":"430582105","name":"火厂坪镇"},{"code":"430582106","name":"佘田桥镇"},{"code":"430582107","name":"灵官殿镇"},{"code":"430582108","name":"团山镇"},{"code":"430582109","name":"砂石镇"},{"code":"430582110","name":"廉桥镇"},{"code":"430582111","name":"流光岭镇"},{"code":"430582112","name":"流泽镇"},{"code":"430582113","name":"魏家桥镇"},{"code":"430582114","name":"野鸡坪镇"},{"code":"430582115","name":"杨桥镇"},{"code":"430582116","name":"水东江镇"},{"code":"430582117","name":"黑田铺镇"},{"code":"430582118","name":"简家陇镇"},{"code":"430582201","name":"双凤乡"},{"code":"430582202","name":"周官桥乡"},{"code":"430582203","name":"堡面前乡"},{"code":"430582204","name":"斫曹乡"}]}]},{"code":"4306","name":"岳阳市","children":[{"code":"430602","name":"岳阳楼区","children":[{"code":"430602001","name":"岳阳楼街道"},{"code":"430602002","name":"三眼桥街道"},{"code":"430602003","name":"吕仙亭街道"},{"code":"430602004","name":"金鹗山街道"},{"code":"430602005","name":"东茅岭街道"},{"code":"430602006","name":"五里牌街道"},{"code":"430602007","name":"望岳路街道"},{"code":"430602008","name":"城陵矶街道"},{"code":"430602009","name":"枫桥湖街道"},{"code":"430602010","name":"奇家岭街道"},{"code":"430602011","name":"洞庭街道"},{"code":"430602012","name":"洛王街道"},{"code":"430602013","name":"南湖街道"},{"code":"430602014","name":"站前街道"},{"code":"430602015","name":"王家河街道"},{"code":"430602016","name":"求索街道"},{"code":"430602017","name":"湖滨街道"},{"code":"430602018","name":"龙山街道"},{"code":"430602019","name":"月山街道"},{"code":"430602100","name":"西塘镇"},{"code":"430602201","name":"郭镇乡"},{"code":"430602203","name":"康王乡"},{"code":"430602402","name":"经济技术开发区通海路管理处"},{"code":"430602406","name":"金凤桥管理处"},{"code":"430602407","name":"木里港管理处"}]},{"code":"430603","name":"云溪区","children":[{"code":"430603001","name":"长岭街道"},{"code":"430603002","name":"云溪街道"},{"code":"430603003","name":"松杨湖街道"},{"code":"430603101","name":"陆城镇"},{"code":"430603102","name":"路口镇"}]},{"code":"430611","name":"君山区","children":[{"code":"430611001","name":"柳林洲街道"},{"code":"430611101","name":"广兴洲镇"},{"code":"430611102","name":"许市镇"},{"code":"430611103","name":"钱粮湖镇"},{"code":"430611104","name":"良心堡镇"}]},{"code":"430621","name":"岳阳县","children":[{"code":"430621100","name":"荣家湾镇"},{"code":"430621104","name":"黄沙街镇"},{"code":"430621105","name":"新墙镇"},{"code":"430621106","name":"柏祥镇"},{"code":"430621107","name":"筻口镇"},{"code":"430621108","name":"公田镇"},{"code":"430621109","name":"毛田镇"},{"code":"430621110","name":"月田镇"},{"code":"430621111","name":"张谷英镇"},{"code":"430621112","name":"新开镇"},{"code":"430621113","name":"步仙镇"},{"code":"430621114","name":"杨林街镇"},{"code":"430621202","name":"中洲乡"},{"code":"430621203","name":"长湖乡"},{"code":"430621500","name":"东洞庭湖管委会"}]},{"code":"430623","name":"华容县","children":[{"code":"430623101","name":"三封寺镇"},{"code":"430623102","name":"治河渡镇"},{"code":"430623103","name":"北景港镇"},{"code":"430623104","name":"鲇鱼须镇"},{"code":"430623106","name":"万庾镇"},{"code":"430623110","name":"插旗镇"},{"code":"430623111","name":"注滋口镇"},{"code":"430623112","name":"操军镇"},{"code":"430623114","name":"东山镇"},{"code":"430623119","name":"梅田湖镇"},{"code":"430623120","name":"章华镇"},{"code":"430623121","name":"禹山镇"},{"code":"430623201","name":"新河乡"},{"code":"430623207","name":"团洲乡"}]},{"code":"430624","name":"湘阴县","children":[{"code":"430624001","name":"文星街道"},{"code":"430624101","name":"东塘镇"},{"code":"430624104","name":"樟树镇"},{"code":"430624110","name":"三塘镇"},{"code":"430624116","name":"岭北镇"},{"code":"430624117","name":"新泉镇"},{"code":"430624118","name":"湘滨镇"},{"code":"430624119","name":"南湖洲镇"},{"code":"430624120","name":"鹤龙湖镇"},{"code":"430624122","name":"静河镇"},{"code":"430624124","name":"石塘镇"},{"code":"430624125","name":"洋沙湖镇"},{"code":"430624126","name":"金龙镇"},{"code":"430624201","name":"六塘乡"},{"code":"430624206","name":"杨林寨乡"}]},{"code":"430626","name":"平江县","children":[{"code":"430626001","name":"汉昌街道"},{"code":"430626002","name":"天岳街道"},{"code":"430626101","name":"安定镇"},{"code":"430626102","name":"三市镇"},{"code":"430626103","name":"加义镇"},{"code":"430626104","name":"长寿镇"},{"code":"430626105","name":"龙门镇"},{"code":"430626106","name":"虹桥镇"},{"code":"430626107","name":"南江镇"},{"code":"430626108","name":"梅仙镇"},{"code":"430626109","name":"浯口镇"},{"code":"430626110","name":"瓮江镇"},{"code":"430626111","name":"伍市镇"},{"code":"430626112","name":"向家镇"},{"code":"430626113","name":"童市镇"},{"code":"430626114","name":"岑川镇"},{"code":"430626115","name":"福寿山镇"},{"code":"430626116","name":"余坪镇"},{"code":"430626117","name":"石牛寨镇"},{"code":"430626118","name":"上塔市镇"},{"code":"430626200","name":"三阳乡"},{"code":"430626205","name":"木金乡"},{"code":"430626208","name":"板江乡"},{"code":"430626209","name":"大洲乡"},{"code":"430626210","name":"三墩乡"}]},{"code":"430671","name":"岳阳市屈原管理区","children":[{"code":"430671001","name":"天问街道"},{"code":"430671101","name":"营田镇"},{"code":"430671102","name":"河市镇"},{"code":"430671203","name":"凤凰乡"}]},{"code":"430681","name":"汨罗市","children":[{"code":"430681101","name":"汨罗镇"},{"code":"430681102","name":"新市镇"},{"code":"430681103","name":"古培镇"},{"code":"430681104","name":"白水镇"},{"code":"430681105","name":"川山坪镇"},{"code":"430681107","name":"弼时镇"},{"code":"430681110","name":"长乐镇"},{"code":"430681111","name":"大荆镇"},{"code":"430681112","name":"桃林寺镇"},{"code":"430681113","name":"三江镇"},{"code":"430681118","name":"屈子祠镇"},{"code":"430681119","name":"归义镇"},{"code":"430681120","name":"神鼎山镇"},{"code":"430681121","name":"罗江镇"},{"code":"430681122","name":"白塘镇"},{"code":"430681403","name":"营田"}]},{"code":"430682","name":"临湘市","children":[{"code":"430682001","name":"长安街道"},{"code":"430682003","name":"桃矿街道"},{"code":"430682004","name":"五里牌街道"},{"code":"430682005","name":"云湖街道"},{"code":"430682101","name":"忠防镇"},{"code":"430682103","name":"聂市镇"},{"code":"430682105","name":"江南镇"},{"code":"430682107","name":"桃林镇"},{"code":"430682108","name":"长塘镇"},{"code":"430682109","name":"白羊田镇"},{"code":"430682110","name":"詹桥镇"},{"code":"430682113","name":"黄盖镇"},{"code":"430682114","name":"羊楼司镇"},{"code":"430682115","name":"坦渡镇"}]}]},{"code":"4307","name":"常德市","children":[{"code":"430702","name":"武陵区","children":[{"code":"430702001","name":"启明街道"},{"code":"430702002","name":"府坪街道"},{"code":"430702003","name":"穿紫河街道"},{"code":"430702004","name":"丹阳街道"},{"code":"430702005","name":"白马湖街道"},{"code":"430702006","name":"德山街道"},{"code":"430702007","name":"东江街道"},{"code":"430702008","name":"永安街道"},{"code":"430702009","name":"南坪街道"},{"code":"430702010","name":"长庚街道"},{"code":"430702011","name":"芷兰街道"},{"code":"430702012","name":"芙蓉街道"},{"code":"430702013","name":"柳叶湖街道"},{"code":"430702014","name":"七里桥街道"},{"code":"430702015","name":"樟木桥街道"},{"code":"430702100","name":"河洑镇"},{"code":"430702102","name":"白鹤镇"},{"code":"430702200","name":"芦荻山乡"},{"code":"430702204","name":"丹洲乡"}]},{"code":"430703","name":"鼎城区","children":[{"code":"430703001","name":"玉霞街道"},{"code":"430703002","name":"红云街道"},{"code":"430703003","name":"郭家铺街道"},{"code":"430703004","name":"斗姆湖街道"},{"code":"430703007","name":"灌溪街道"},{"code":"430703101","name":"蒿子港镇"},{"code":"430703102","name":"中河口镇"},{"code":"430703103","name":"十美堂镇"},{"code":"430703104","name":"牛鼻滩镇"},{"code":"430703105","name":"韩公渡镇"},{"code":"430703106","name":"石公桥镇"},{"code":"430703107","name":"镇德桥镇"},{"code":"430703108","name":"周家店镇"},{"code":"430703110","name":"双桥坪镇"},{"code":"430703112","name":"蔡家岗镇"},{"code":"430703114","name":"草坪镇"},{"code":"430703115","name":"石门桥镇"},{"code":"430703116","name":"谢家铺镇"},{"code":"430703117","name":"黄土店镇"},{"code":"430703118","name":"尧天坪镇"},{"code":"430703121","name":"石板滩镇"},{"code":"430703122","name":"花岩溪镇"},{"code":"430703204","name":"许家桥回族维吾尔族乡"},{"code":"430703502","name":"花岩溪林场"},{"code":"430703503","name":"贺家山原种场"}]},{"code":"430721","name":"安乡县","children":[{"code":"430721100","name":"深柳镇"},{"code":"430721101","name":"大鲸港镇"},{"code":"430721102","name":"黄山头镇"},{"code":"430721103","name":"三岔河镇"},{"code":"430721104","name":"官垱镇"},{"code":"430721105","name":"下渔口镇"},{"code":"430721106","name":"陈家嘴镇"},{"code":"430721108","name":"大湖口镇"},{"code":"430721201","name":"安障乡"},{"code":"430721205","name":"安全乡"},{"code":"430721208","name":"安丰乡"},{"code":"430721210","name":"安康乡"}]},{"code":"430722","name":"汉寿县","children":[{"code":"430722001","name":"龙阳街道"},{"code":"430722002","name":"辰阳街道"},{"code":"430722003","name":"沧浪街道"},{"code":"430722004","name":"株木山街道"},{"code":"430722101","name":"蒋家嘴镇"},{"code":"430722102","name":"岩汪湖镇"},{"code":"430722103","name":"坡头镇"},{"code":"430722104","name":"酉港镇"},{"code":"430722105","name":"洲口镇"},{"code":"430722106","name":"罐头嘴镇"},{"code":"430722107","name":"沧港镇"},{"code":"430722108","name":"朱家铺镇"},{"code":"430722109","name":"太子庙镇"},{"code":"430722111","name":"崔家桥镇"},{"code":"430722112","name":"军山铺镇"},{"code":"430722113","name":"百禄桥镇"},{"code":"430722114","name":"西湖镇"},{"code":"430722115","name":"洋淘湖镇"},{"code":"430722117","name":"丰家铺镇"},{"code":"430722118","name":"龙潭桥镇"},{"code":"430722205","name":"聂家桥乡"},{"code":"430722206","name":"毛家滩回族维吾尔族乡"},{"code":"430722501","name":"西湖管理区"}]},{"code":"430723","name":"澧县","children":[{"code":"430723001","name":"澧西街道"},{"code":"430723002","name":"澧阳街道"},{"code":"430723003","name":"澧浦街道"},{"code":"430723004","name":"澧澹街道"},{"code":"430723102","name":"小渡口镇"},{"code":"430723103","name":"梦溪镇"},{"code":"430723104","name":"复兴镇"},{"code":"430723105","name":"盐井镇"},{"code":"430723107","name":"大堰垱镇"},{"code":"430723108","name":"王家厂镇"},{"code":"430723109","name":"金罗镇"},{"code":"430723110","name":"码头铺镇"},{"code":"430723112","name":"甘溪滩镇"},{"code":"430723113","name":"火连坡镇"},{"code":"430723114","name":"澧南镇"},{"code":"430723115","name":"如东镇"},{"code":"430723116","name":"涔南镇"},{"code":"430723117","name":"官垸镇"},{"code":"430723118","name":"城头山镇"}]},{"code":"430724","name":"临澧县","children":[{"code":"430724001","name":"安福街道"},{"code":"430724002","name":"望城街道"},{"code":"430724101","name":"合口镇"},{"code":"430724102","name":"新安镇"},{"code":"430724103","name":"佘市桥镇"},{"code":"430724104","name":"太浮镇"},{"code":"430724105","name":"四新岗镇"},{"code":"430724106","name":"停弦渡镇"},{"code":"430724107","name":"修梅镇"},{"code":"430724204","name":"烽火乡"},{"code":"430724209","name":"刻木山乡"}]},{"code":"430725","name":"桃源县","children":[{"code":"430725001","name":"漳江街道"},{"code":"430725002","name":"浔阳街道"},{"code":"430725101","name":"陬市镇"},{"code":"430725102","name":"盘塘镇"},{"code":"430725103","name":"热市镇"},{"code":"430725104","name":"黄石镇"},{"code":"430725105","name":"漆河镇"},{"code":"430725106","name":"理公港镇"},{"code":"430725107","name":"观音寺镇"},{"code":"430725108","name":"龙潭镇"},{"code":"430725109","name":"三阳港镇"},{"code":"430725110","name":"剪市镇"},{"code":"430725111","name":"茶庵铺镇"},{"code":"430725112","name":"西安镇"},{"code":"430725113","name":"沙坪镇"},{"code":"430725114","name":"桃花源镇"},{"code":"430725115","name":"架桥镇"},{"code":"430725116","name":"马鬃岭镇"},{"code":"430725117","name":"夷望溪镇"},{"code":"430725118","name":"双溪口镇"},{"code":"430725119","name":"九溪镇"},{"code":"430725120","name":"牛车河镇"},{"code":"430725121","name":"杨溪桥镇"},{"code":"430725122","name":"郑家驿镇"},{"code":"430725123","name":"木塘垸镇"},{"code":"430725124","name":"佘家坪镇"},{"code":"430725200","name":"青林回族维吾尔族乡"},{"code":"430725202","name":"枫树维吾尔族回族乡"},{"code":"430725216","name":"泥窝潭乡"}]},{"code":"430726","name":"石门县","children":[{"code":"430726001","name":"楚江街道"},{"code":"430726002","name":"永兴街道"},{"code":"430726003","name":"宝峰街道"},{"code":"430726004","name":"二都街道"},{"code":"430726101","name":"蒙泉镇"},{"code":"430726102","name":"夹山镇"},{"code":"430726103","name":"易家渡镇"},{"code":"430726104","name":"新关镇"},{"code":"430726105","name":"皂市镇"},{"code":"430726106","name":"维新镇"},{"code":"430726107","name":"太平镇"},{"code":"430726108","name":"磨市镇"},{"code":"430726109","name":"壶瓶山镇"},{"code":"430726110","name":"南北镇"},{"code":"430726111","name":"白云镇"},{"code":"430726112","name":"新铺镇"},{"code":"430726113","name":"子良镇"},{"code":"430726203","name":"三圣乡"},{"code":"430726205","name":"所街乡"},{"code":"430726206","name":"雁池乡"},{"code":"430726207","name":"罗坪乡"},{"code":"430726500","name":"秀坪园艺场"},{"code":"430726502","name":"东山峰管理区"},{"code":"430726503","name":"大同山林场"},{"code":"430726504","name":"白云山林场"},{"code":"430726505","name":"洛浦寺林场"},{"code":"430726506","name":"夹山管理处"}]},{"code":"430771","name":"常德市西洞庭管理区","children":[{"code":"430771004","name":"龙泉街道"},{"code":"430771005","name":"金凤街道"},{"code":"430771101","name":"祝丰镇"}]},{"code":"430781","name":"津市市","children":[{"code":"430781001","name":"三洲驿街道"},{"code":"430781002","name":"汪家桥街道"},{"code":"430781003","name":"襄阳街街道"},{"code":"430781004","name":"金鱼岭街道"},{"code":"430781005","name":"嘉山街道"},{"code":"430781100","name":"新洲镇"},{"code":"430781103","name":"白衣镇"},{"code":"430781105","name":"药山镇"},{"code":"430781106","name":"毛里湖镇"},{"code":"430781500","name":"涔澹农场"}]}]},{"code":"4308","name":"张家界市","children":[{"code":"430802","name":"永定区","children":[{"code":"430802001","name":"永定街道"},{"code":"430802002","name":"大庸桥街道"},{"code":"430802003","name":"西溪坪街道"},{"code":"430802004","name":"官黎坪街道"},{"code":"430802005","name":"崇文街道"},{"code":"430802006","name":"南庄坪街道"},{"code":"430802100","name":"新桥镇"},{"code":"430802101","name":"茅岩河镇"},{"code":"430802102","name":"教字垭镇"},{"code":"430802103","name":"天门山镇"},{"code":"430802104","name":"沅古坪镇"},{"code":"430802105","name":"尹家溪镇"},{"code":"430802108","name":"王家坪镇"},{"code":"430802201","name":"三家馆乡"},{"code":"430802204","name":"合作桥乡"},{"code":"430802206","name":"谢家垭乡"},{"code":"430802208","name":"罗塔坪乡"},{"code":"430802209","name":"罗水乡"},{"code":"430802210","name":"桥头乡"},{"code":"430802212","name":"四都坪乡"},{"code":"430802404","name":"原种场"}]},{"code":"430811","name":"武陵源区","children":[{"code":"430811001","name":"军地坪街道"},{"code":"430811002","name":"锣鼓塔街道"},{"code":"430811201","name":"协合乡"},{"code":"430811202","name":"中湖乡"}]},{"code":"430821","name":"慈利县","children":[{"code":"430821100","name":"零阳镇"},{"code":"430821101","name":"岩泊渡镇"},{"code":"430821102","name":"溪口镇"},{"code":"430821103","name":"东岳观镇"},{"code":"430821104","name":"通津铺镇"},{"code":"430821105","name":"杉木桥镇"},{"code":"430821106","name":"象市镇"},{"code":"430821107","name":"江垭镇"},{"code":"430821108","name":"苗市镇"},{"code":"430821109","name":"零溪镇"},{"code":"430821110","name":"高桥镇"},{"code":"430821111","name":"龙潭河镇"},{"code":"430821112","name":"广福桥镇"},{"code":"430821113","name":"三合镇"},{"code":"430821114","name":"二坊坪镇"},{"code":"430821200","name":"南山坪乡"},{"code":"430821202","name":"洞溪乡"},{"code":"430821209","name":"杨柳铺乡"},{"code":"430821211","name":"三官寺土家族乡"},{"code":"430821212","name":"高峰土家族乡"},{"code":"430821213","name":"许家坊土家族乡"},{"code":"430821214","name":"金岩土家族乡"},{"code":"430821215","name":"赵家岗土家族乡"},{"code":"430821216","name":"甘堰土家族乡"},{"code":"430821217","name":"阳和土家族乡"}]},{"code":"430822","name":"桑植县","children":[{"code":"430822100","name":"澧源镇"},{"code":"430822101","name":"瑞塔铺镇"},{"code":"430822102","name":"官地坪镇"},{"code":"430822103","name":"凉水口镇"},{"code":"430822104","name":"龙潭坪镇"},{"code":"430822105","name":"五道水镇"},{"code":"430822106","name":"陈家河镇"},{"code":"430822107","name":"廖家村镇"},{"code":"430822108","name":"利福塔镇"},{"code":"430822109","name":"八大公山镇"},{"code":"430822110","name":"桥自弯镇"},{"code":"430822111","name":"人潮溪镇"},{"code":"430822200","name":"空壳树乡"},{"code":"430822202","name":"竹叶坪乡"},{"code":"430822203","name":"走马坪白族乡"},{"code":"430822207","name":"刘家坪白族乡"},{"code":"430822208","name":"芙蓉桥白族乡"},{"code":"430822210","name":"马合口白族乡"},{"code":"430822213","name":"洪家关白族乡"},{"code":"430822216","name":"沙塔坪乡"},{"code":"430822224","name":"河口乡"},{"code":"430822225","name":"上河溪乡"},{"code":"430822228","name":"上洞街乡"}]}]},{"code":"4309","name":"益阳市","children":[{"code":"430902","name":"资阳区","children":[{"code":"430902005","name":"大码头街道"},{"code":"430902006","name":"汽车路街道"},{"code":"430902102","name":"迎风桥镇"},{"code":"430902104","name":"沙头镇"},{"code":"430902105","name":"茈湖口镇"},{"code":"430902106","name":"长春镇"},{"code":"430902107","name":"新桥河镇"},{"code":"430902203","name":"张家塞乡"},{"code":"430902401","name":"长春经济开发区"}]},{"code":"430903","name":"赫山区","children":[{"code":"430903001","name":"赫山街道"},{"code":"430903002","name":"桃花仑街道"},{"code":"430903003","name":"金银山街道"},{"code":"430903006","name":"会龙山街道"},{"code":"430903007","name":"鱼形山街道"},{"code":"430903008","name":"龙光桥街道"},{"code":"430903101","name":"八字哨镇"},{"code":"430903103","name":"泉交河镇"},{"code":"430903104","name":"欧江岔镇"},{"code":"430903105","name":"沧水铺镇"},{"code":"430903107","name":"岳家桥镇"},{"code":"430903110","name":"新市渡镇"},{"code":"430903111","name":"兰溪镇"},{"code":"430903113","name":"衡龙桥镇"},{"code":"430903114","name":"泥江口镇"},{"code":"430903209","name":"笔架山乡"},{"code":"430903402","name":"龙岭产业开发区"}]},{"code":"430921","name":"南县","children":[{"code":"430921102","name":"明山头镇"},{"code":"430921103","name":"青树嘴镇"},{"code":"430921106","name":"厂窖镇"},{"code":"430921107","name":"武圣宫镇"},{"code":"430921125","name":"南洲镇"},{"code":"430921126","name":"华阁镇"},{"code":"430921127","name":"茅草街镇"},{"code":"430921128","name":"三仙湖镇"},{"code":"430921129","name":"麻河口镇"},{"code":"430921131","name":"浪拔湖镇"},{"code":"430921132","name":"中鱼口镇"},{"code":"430921201","name":"乌嘴乡"}]},{"code":"430922","name":"桃江县","children":[{"code":"430922101","name":"修山镇"},{"code":"430922103","name":"鸬鹚渡镇"},{"code":"430922107","name":"石牛江镇"},{"code":"430922108","name":"牛田镇"},{"code":"430922109","name":"松木塘镇"},{"code":"430922112","name":"桃花江镇"},{"code":"430922113","name":"灰山港镇"},{"code":"430922114","name":"武潭镇"},{"code":"430922115","name":"马迹塘镇"},{"code":"430922116","name":"三堂街镇"},{"code":"430922117","name":"大栗港镇"},{"code":"430922118","name":"沾溪镇"},{"code":"430922119","name":"高桥镇"},{"code":"430922208","name":"鲊埠回族乡"},{"code":"430922212","name":"浮丘山乡"}]},{"code":"430923","name":"安化县","children":[{"code":"430923101","name":"清塘铺镇"},{"code":"430923103","name":"仙溪镇"},{"code":"430923105","name":"长塘镇"},{"code":"430923106","name":"小淹镇"},{"code":"430923108","name":"羊角塘镇"},{"code":"430923109","name":"冷市镇"},{"code":"430923111","name":"奎溪镇"},{"code":"430923112","name":"烟溪镇"},{"code":"430923113","name":"渠江镇"},{"code":"430923114","name":"平口镇"},{"code":"430923115","name":"柘溪镇"},{"code":"430923116","name":"乐安镇"},{"code":"430923117","name":"滔溪镇"},{"code":"430923118","name":"梅城镇"},{"code":"430923119","name":"大福镇"},{"code":"430923120","name":"马路镇"},{"code":"430923121","name":"东坪镇"},{"code":"430923122","name":"江南镇"},{"code":"430923123","name":"龙塘镇"},{"code":"430923200","name":"高明乡"},{"code":"430923209","name":"田庄乡"},{"code":"430923211","name":"南金乡"},{"code":"430923212","name":"古楼乡"}]},{"code":"430971","name":"益阳市大通湖管理区","children":[{"code":"430971121","name":"河坝镇"},{"code":"430971123","name":"金盆镇"},{"code":"430971124","name":"北洲子镇"},{"code":"430971130","name":"千山红镇"},{"code":"430971405","name":"南湾湖"}]},{"code":"430972","name":"湖南益阳高新技术产业园区","children":[{"code":"430972005","name":"朝阳街道"},{"code":"430972006","name":"东部产业园地区"},{"code":"430972109","name":"谢林港镇"}]},{"code":"430981","name":"沅江市","children":[{"code":"430981006","name":"琼湖街道"},{"code":"430981008","name":"胭脂湖街道"},{"code":"430981102","name":"四季红镇"},{"code":"430981105","name":"泗湖山镇"},{"code":"430981107","name":"南嘴镇"},{"code":"430981108","name":"新湾镇"},{"code":"430981110","name":"茶盘洲镇"},{"code":"430981112","name":"南大膳镇"},{"code":"430981113","name":"黄茅洲镇"},{"code":"430981114","name":"草尾镇"},{"code":"430981115","name":"阳罗洲镇"},{"code":"430981116","name":"共华镇"},{"code":"430981401","name":"南洞庭湿地保护与发展事务中心"},{"code":"430981402","name":"漉湖湿地保护与发展事务中心"}]}]},{"code":"4310","name":"郴州市","children":[{"code":"431002","name":"北湖区","children":[{"code":"431002001","name":"人民路街道"},{"code":"431002002","name":"北湖街道"},{"code":"431002003","name":"燕泉街道"},{"code":"431002004","name":"下湄桥街道"},{"code":"431002005","name":"骆仙街道"},{"code":"431002006","name":"增福街道"},{"code":"431002007","name":"郴江街道"},{"code":"431002008","name":"涌泉街道"},{"code":"431002009","name":"安和街道"},{"code":"431002010","name":"石盖塘街道"},{"code":"431002101","name":"华塘镇"},{"code":"431002102","name":"鲁塘镇"},{"code":"431002209","name":"仰天湖瑶族乡"},{"code":"431002210","name":"保和瑶族乡"}]},{"code":"431003","name":"苏仙区","children":[{"code":"431003001","name":"苏仙岭街道"},{"code":"431003002","name":"南塔街道"},{"code":"431003003","name":"白鹿洞街道"},{"code":"431003004","name":"王仙岭街道"},{"code":"431003005","name":"卜里坪街道"},{"code":"431003006","name":"观山洞街道"},{"code":"431003101","name":"白露塘镇"},{"code":"431003102","name":"良田镇"},{"code":"431003103","name":"栖凤渡镇"},{"code":"431003104","name":"坳上镇"},{"code":"431003105","name":"许家洞镇"},{"code":"431003107","name":"五里牌镇"},{"code":"431003109","name":"五盖山镇"},{"code":"431003110","name":"飞天山镇"}]},{"code":"431021","name":"桂阳县","children":[{"code":"431021001","name":"龙潭街道"},{"code":"431021002","name":"鹿峰街道"},{"code":"431021003","name":"黄沙坪街道"},{"code":"431021102","name":"仁义镇"},{"code":"431021103","name":"太和镇"},{"code":"431021104","name":"洋市镇"},{"code":"431021105","name":"和平镇"},{"code":"431021106","name":"流峰镇"},{"code":"431021107","name":"塘市镇"},{"code":"431021108","name":"莲塘镇"},{"code":"431021109","name":"舂陵江镇"},{"code":"431021110","name":"荷叶镇"},{"code":"431021111","name":"方元镇"},{"code":"431021112","name":"樟市镇"},{"code":"431021113","name":"敖泉镇"},{"code":"431021114","name":"正和镇"},{"code":"431021115","name":"浩塘镇"},{"code":"431021116","name":"雷坪镇"},{"code":"431021117","name":"欧阳海镇"},{"code":"431021118","name":"四里镇"},{"code":"431021209","name":"桥市乡"},{"code":"431021226","name":"白水瑶族乡"}]},{"code":"431022","name":"宜章县","children":[{"code":"431022101","name":"白石渡镇"},{"code":"431022102","name":"杨梅山镇"},{"code":"431022103","name":"瑶岗仙镇"},{"code":"431022104","name":"梅田镇"},{"code":"431022106","name":"黄沙镇"},{"code":"431022107","name":"迎春镇"},{"code":"431022108","name":"一六镇"},{"code":"431022109","name":"栗源镇"},{"code":"431022110","name":"岩泉镇"},{"code":"431022111","name":"玉溪镇"},{"code":"431022112","name":"天塘镇"},{"code":"431022113","name":"笆篱镇"},{"code":"431022114","name":"里田镇"},{"code":"431022115","name":"五岭镇"},{"code":"431022201","name":"浆水乡"},{"code":"431022202","name":"长村乡"},{"code":"431022205","name":"莽山瑶族乡"},{"code":"431022208","name":"关溪乡"},{"code":"431022212","name":"赤石乡"}]},{"code":"431023","name":"永兴县","children":[{"code":"431023001","name":"便江街道"},{"code":"431023002","name":"湘阴渡街道"},{"code":"431023101","name":"马田镇"},{"code":"431023104","name":"金龟镇"},{"code":"431023105","name":"柏林镇"},{"code":"431023106","name":"鲤鱼塘镇"},{"code":"431023109","name":"悦来镇"},{"code":"431023112","name":"黄泥镇"},{"code":"431023113","name":"樟树镇"},{"code":"431023114","name":"太和镇"},{"code":"431023115","name":"油麻镇"},{"code":"431023116","name":"高亭司镇"},{"code":"431023203","name":"洋塘乡"},{"code":"431023214","name":"大布江乡"},{"code":"431023215","name":"龙形市乡"},{"code":"431023216","name":"七甲乡"}]},{"code":"431024","name":"嘉禾县","children":[{"code":"431024100","name":"珠泉镇"},{"code":"431024102","name":"塘村镇"},{"code":"431024103","name":"袁家镇"},{"code":"431024104","name":"行廊镇"},{"code":"431024106","name":"龙潭镇"},{"code":"431024107","name":"石桥镇"},{"code":"431024108","name":"坦坪镇"},{"code":"431024110","name":"广发镇"},{"code":"431024111","name":"晋屏镇"},{"code":"431024201","name":"普满乡"}]},{"code":"431025","name":"临武县","children":[{"code":"431025100","name":"舜峰镇"},{"code":"431025101","name":"金江镇"},{"code":"431025104","name":"武水镇"},{"code":"431025105","name":"南强镇"},{"code":"431025106","name":"汾市镇"},{"code":"431025107","name":"水东镇"},{"code":"431025108","name":"楚江镇"},{"code":"431025109","name":"麦市镇"},{"code":"431025110","name":"香花镇"},{"code":"431025208","name":"花塘乡"},{"code":"431025211","name":"万水乡"},{"code":"431025214","name":"镇南乡"},{"code":"431025216","name":"西山瑶族乡"}]},{"code":"431026","name":"汝城县","children":[{"code":"431026102","name":"热水镇"},{"code":"431026103","name":"土桥镇"},{"code":"431026104","name":"泉水镇"},{"code":"431026105","name":"暖水镇"},{"code":"431026106","name":"大坪镇"},{"code":"431026107","name":"三江口瑶族镇"},{"code":"431026108","name":"卢阳镇"},{"code":"431026109","name":"马桥镇"},{"code":"431026110","name":"井坡镇"},{"code":"431026207","name":"南洞乡"},{"code":"431026209","name":"濠头乡"},{"code":"431026214","name":"延寿瑶族乡"},{"code":"431026216","name":"集益乡"},{"code":"431026217","name":"文明瑶族乡"},{"code":"431026400","name":"大坪国有林场"},{"code":"431026401","name":"汝城经济开发区"}]},{"code":"431027","name":"桂东县","children":[{"code":"431027100","name":"沤江镇"},{"code":"431027101","name":"沙田镇"},{"code":"431027102","name":"清泉镇"},{"code":"431027103","name":"大塘镇"},{"code":"431027104","name":"四都镇"},{"code":"431027105","name":"寨前镇"},{"code":"431027106","name":"普乐镇"},{"code":"431027200","name":"桥头乡"},{"code":"431027208","name":"新坊乡"},{"code":"431027210","name":"东洛乡"},{"code":"431027213","name":"青山乡"},{"code":"431027400","name":"宋坪林场"}]},{"code":"431028","name":"安仁县","children":[{"code":"431028101","name":"安平镇"},{"code":"431028102","name":"龙海镇"},{"code":"431028105","name":"灵官镇"},{"code":"431028106","name":"永乐江镇"},{"code":"431028107","name":"金紫仙镇"},{"code":"431028201","name":"龙市乡"},{"code":"431028204","name":"渡口乡"},{"code":"431028205","name":"华王乡"},{"code":"431028206","name":"牌楼乡"},{"code":"431028207","name":"平背乡"},{"code":"431028209","name":"承坪乡"},{"code":"431028210","name":"竹山乡"},{"code":"431028214","name":"洋际乡"}]},{"code":"431081","name":"资兴市","children":[{"code":"431081001","name":"唐洞街道"},{"code":"431081002","name":"东江街道"},{"code":"431081100","name":"滁口镇"},{"code":"431081102","name":"三都镇"},{"code":"431081103","name":"蓼江镇"},{"code":"431081105","name":"兴宁镇"},{"code":"431081106","name":"州门司镇"},{"code":"431081108","name":"黄草镇"},{"code":"431081110","name":"汤溪镇"},{"code":"431081112","name":"清江镇"},{"code":"431081113","name":"白廊镇"},{"code":"431081219","name":"回龙山瑶族乡"},{"code":"431081220","name":"八面山瑶族乡"}]}]},{"code":"4311","name":"永州市","children":[{"code":"431102","name":"零陵区","children":[{"code":"431102001","name":"朝阳街道"},{"code":"431102002","name":"南津渡街道"},{"code":"431102003","name":"七里店街道"},{"code":"431102004","name":"徐家井街道"},{"code":"431102005","name":"接履桥街道"},{"code":"431102006","name":"石山脚街道"},{"code":"431102101","name":"水口山镇"},{"code":"431102102","name":"珠山镇"},{"code":"431102103","name":"黄田铺镇"},{"code":"431102104","name":"富家桥镇"},{"code":"431102105","name":"菱角塘镇"},{"code":"431102106","name":"邮亭圩镇"},{"code":"431102108","name":"石岩头镇"},{"code":"431102200","name":"大庆坪乡"},{"code":"431102201","name":"梳子铺乡"},{"code":"431102203","name":"凼底乡"}]},{"code":"431103","name":"冷水滩区","children":[{"code":"431103001","name":"梅湾街道"},{"code":"431103002","name":"菱角山街道"},{"code":"431103003","name":"肖家园街道"},{"code":"431103004","name":"杨家桥街道"},{"code":"431103005","name":"梧桐街道"},{"code":"431103006","name":"凤凰街道"},{"code":"431103007","name":"珊瑚街道"},{"code":"431103008","name":"曲河街道"},{"code":"431103009","name":"岚角山街道"},{"code":"431103101","name":"花桥街镇"},{"code":"431103102","name":"普利桥镇"},{"code":"431103103","name":"牛角坝镇"},{"code":"431103104","name":"高溪市镇"},{"code":"431103105","name":"黄阳司镇"},{"code":"431103106","name":"上岭桥镇"},{"code":"431103108","name":"伊塘镇"},{"code":"431103110","name":"蔡市镇"},{"code":"431103201","name":"杨村甸乡"}]},{"code":"431122","name":"东安县","children":[{"code":"431122100","name":"白牙市镇"},{"code":"431122101","name":"大庙口镇"},{"code":"431122102","name":"紫溪市镇"},{"code":"431122103","name":"横塘镇"},{"code":"431122104","name":"石期市镇"},{"code":"431122105","name":"井头圩镇"},{"code":"431122106","name":"端桥铺镇"},{"code":"431122107","name":"鹿马桥镇"},{"code":"431122108","name":"芦洪市镇"},{"code":"431122109","name":"新圩江镇"},{"code":"431122110","name":"花桥镇"},{"code":"431122111","name":"大盛镇"},{"code":"431122112","name":"南桥镇"},{"code":"431122201","name":"川岩乡"},{"code":"431122202","name":"水岭乡"},{"code":"431122400","name":"大庙口林场"},{"code":"431122401","name":"黄泥洞林场"}]},{"code":"431123","name":"双牌县","children":[{"code":"431123100","name":"泷泊镇"},{"code":"431123101","name":"江村镇"},{"code":"431123102","name":"五里牌镇"},{"code":"431123103","name":"茶林镇"},{"code":"431123104","name":"何家洞镇"},{"code":"431123105","name":"麻江镇"},{"code":"431123206","name":"塘底乡"},{"code":"431123207","name":"上梧江瑶族乡"},{"code":"431123208","name":"理家坪乡"},{"code":"431123209","name":"五星岭乡"},{"code":"431123210","name":"打鼓坪乡"},{"code":"431123400","name":"双牌打鼓坪林场"},{"code":"431123401","name":"双牌五星岭林场"},{"code":"431123402","name":"阳明山国家森林公园管理局"}]},{"code":"431124","name":"道县","children":[{"code":"431124001","name":"濂溪街道"},{"code":"431124002","name":"西洲街道"},{"code":"431124003","name":"上关街道"},{"code":"431124004","name":"营江街道"},{"code":"431124005","name":"东门街道"},{"code":"431124006","name":"富塘街道"},{"code":"431124007","name":"万家庄街道"},{"code":"431124101","name":"梅花镇"},{"code":"431124102","name":"寿雁镇"},{"code":"431124103","name":"仙子脚镇"},{"code":"431124104","name":"清塘镇"},{"code":"431124105","name":"祥霖铺镇"},{"code":"431124106","name":"蚣坝镇"},{"code":"431124107","name":"四马桥镇"},{"code":"431124108","name":"白马渡镇"},{"code":"431124109","name":"柑子园镇"},{"code":"431124111","name":"白芒铺镇"},{"code":"431124112","name":"桥头镇"},{"code":"431124201","name":"乐福堂乡"},{"code":"431124210","name":"审章塘瑶族乡"},{"code":"431124212","name":"横岭瑶族乡"},{"code":"431124213","name":"洪塘营瑶族乡"},{"code":"431124402","name":"道县大坪铺农场"}]},{"code":"431125","name":"江永县","children":[{"code":"431125100","name":"潇浦镇"},{"code":"431125101","name":"上江圩镇"},{"code":"431125103","name":"夏层铺镇"},{"code":"431125104","name":"桃川镇"},{"code":"431125105","name":"粗石江镇"},{"code":"431125200","name":"松柏瑶族乡"},{"code":"431125202","name":"千家峒瑶族乡"},{"code":"431125203","name":"兰溪瑶族乡"},{"code":"431125204","name":"源口瑶族乡"}]},{"code":"431126","name":"宁远县","children":[{"code":"431126001","name":"文庙街道"},{"code":"431126002","name":"舜陵街道"},{"code":"431126003","name":"桐山街道"},{"code":"431126004","name":"东溪街道"},{"code":"431126101","name":"天堂镇"},{"code":"431126102","name":"水市镇"},{"code":"431126103","name":"湾井镇"},{"code":"431126104","name":"冷水镇"},{"code":"431126105","name":"太平镇"},{"code":"431126106","name":"禾亭镇"},{"code":"431126107","name":"仁和镇"},{"code":"431126108","name":"中和镇"},{"code":"431126109","name":"柏家坪镇"},{"code":"431126110","name":"清水桥镇"},{"code":"431126111","name":"鲤溪镇"},{"code":"431126112","name":"保安镇"},{"code":"431126200","name":"九疑山瑶族乡"},{"code":"431126202","name":"五龙山瑶族乡"},{"code":"431126203","name":"棉花坪瑶族乡"},{"code":"431126204","name":"桐木漯瑶族乡"}]},{"code":"431127","name":"蓝山县","children":[{"code":"431127100","name":"塔峰镇"},{"code":"431127102","name":"毛俊镇"},{"code":"431127103","name":"楠市镇"},{"code":"431127104","name":"所城镇"},{"code":"431127105","name":"新圩镇"},{"code":"431127106","name":"祠堂圩镇"},{"code":"431127107","name":"土市镇"},{"code":"431127108","name":"太平圩镇"},{"code":"431127200","name":"汇源瑶族乡"},{"code":"431127201","name":"犁头瑶族乡"},{"code":"431127202","name":"浆洞瑶族乡"},{"code":"431127203","name":"湘江源瑶族乡"},{"code":"431127204","name":"大桥瑶族乡"},{"code":"431127205","name":"荆竹瑶族乡"},{"code":"431127400","name":"蓝山荆竹林场"},{"code":"431127401","name":"蓝山浆洞林场"},{"code":"431127402","name":"蓝山南岭林场"},{"code":"431127403","name":"蓝山原种场"},{"code":"431127404","name":"蓝山黄毛岭茶场"}]},{"code":"431128","name":"新田县","children":[{"code":"431128001","name":"龙泉街道"},{"code":"431128002","name":"中山街道"},{"code":"431128101","name":"金陵镇"},{"code":"431128102","name":"骥村镇"},{"code":"431128103","name":"枧头镇"},{"code":"431128104","name":"新圩镇"},{"code":"431128105","name":"石羊镇"},{"code":"431128106","name":"新隆镇"},{"code":"431128107","name":"三井镇"},{"code":"431128108","name":"大坪塘镇"},{"code":"431128109","name":"陶岭镇"},{"code":"431128110","name":"金盆镇"},{"code":"431128202","name":"门楼下瑶族乡"}]},{"code":"431129","name":"江华瑶族自治县","children":[{"code":"431129100","name":"沱江镇"},{"code":"431129103","name":"大路铺镇"},{"code":"431129104","name":"白芒营镇"},{"code":"431129105","name":"涛圩镇"},{"code":"431129106","name":"河路口镇"},{"code":"431129108","name":"大圩镇"},{"code":"431129109","name":"水口镇"},{"code":"431129110","name":"码市镇"},{"code":"431129111","name":"涔天河镇"},{"code":"431129200","name":"界牌乡"},{"code":"431129201","name":"桥市乡"},{"code":"431129202","name":"大石桥乡"},{"code":"431129207","name":"湘江乡"},{"code":"431129209","name":"蔚竹口乡"},{"code":"431129210","name":"大锡乡"},{"code":"431129211","name":"小圩壮族乡"}]},{"code":"431171","name":"永州经济技术开发区","children":[{"code":"431171001","name":"仁湾街道"}]},{"code":"431173","name":"永州市回龙圩管理区","children":[{"code":"431173100","name":"回龙圩镇"}]},{"code":"431181","name":"祁阳市","children":[{"code":"431181001","name":"龙山街道"},{"code":"431181002","name":"长虹街道"},{"code":"431181003","name":"浯溪街道"},{"code":"431181101","name":"观音滩镇"},{"code":"431181102","name":"茅竹镇"},{"code":"431181103","name":"三口塘镇"},{"code":"431181104","name":"大忠桥镇"},{"code":"431181105","name":"肖家镇"},{"code":"431181106","name":"八宝镇"},{"code":"431181107","name":"白水镇"},{"code":"431181108","name":"进宝塘镇"},{"code":"431181109","name":"黄泥塘镇"},{"code":"431181110","name":"羊角塘镇"},{"code":"431181111","name":"梅溪镇"},{"code":"431181112","name":"潘市镇"},{"code":"431181113","name":"七里桥镇"},{"code":"431181114","name":"下马渡镇"},{"code":"431181115","name":"黎家坪镇"},{"code":"431181116","name":"文富市镇"},{"code":"431181117","name":"大村甸镇"},{"code":"431181118","name":"文明铺镇"},{"code":"431181119","name":"龚家坪镇"},{"code":"431181120","name":"金洞镇"},{"code":"431181201","name":"凤凰乡"},{"code":"431181202","name":"石鼓源乡"},{"code":"431181203","name":"晒北滩瑶族乡"},{"code":"431181401","name":"原种场"},{"code":"431181402","name":"畜牧场"}]}]},{"code":"4312","name":"怀化市","children":[{"code":"431202","name":"鹤城区","children":[{"code":"431202001","name":"城中街道"},{"code":"431202002","name":"城北街道"},{"code":"431202003","name":"红星街道"},{"code":"431202004","name":"迎丰街道"},{"code":"431202005","name":"坨院街道"},{"code":"431202006","name":"河西街道"},{"code":"431202007","name":"城南街道"},{"code":"431202101","name":"黄金坳镇"},{"code":"431202201","name":"盈口乡"},{"code":"431202205","name":"凉亭坳乡"},{"code":"431202400","name":"黄岩旅游度假区"}]},{"code":"431221","name":"中方县","children":[{"code":"431221100","name":"中方镇"},{"code":"431221102","name":"泸阳镇"},{"code":"431221103","name":"花桥镇"},{"code":"431221104","name":"铜湾镇"},{"code":"431221105","name":"桐木镇"},{"code":"431221106","name":"铁坡镇"},{"code":"431221107","name":"新建镇"},{"code":"431221108","name":"接龙镇"},{"code":"431221109","name":"铜鼎镇"},{"code":"431221110","name":"新路河镇"},{"code":"431221111","name":"袁家镇"},{"code":"431221214","name":"蒿吉坪瑶族乡"}]},{"code":"431222","name":"沅陵县","children":[{"code":"431222102","name":"麻溪铺镇"},{"code":"431222105","name":"五强溪镇"},{"code":"431222110","name":"明溪口镇"},{"code":"431222111","name":"凉水井镇"},{"code":"431222112","name":"七甲坪镇"},{"code":"431222113","name":"筲箕湾镇"},{"code":"431222114","name":"官庄镇"},{"code":"431222115","name":"沅陵镇"},{"code":"431222223","name":"杜家坪乡"},{"code":"431222224","name":"楠木铺乡"},{"code":"431222230","name":"肖家桥乡"},{"code":"431222234","name":"火场土家族乡"},{"code":"431222238","name":"陈家滩乡"},{"code":"431222239","name":"清浪乡"},{"code":"431222245","name":"借母溪乡"},{"code":"431222247","name":"荔溪乡"},{"code":"431222248","name":"大合坪乡"},{"code":"431222250","name":"马底驿乡"},{"code":"431222251","name":"北溶乡"},{"code":"431222252","name":"二酉乡"},{"code":"431222253","name":"盘古乡"}]},{"code":"431223","name":"辰溪县","children":[{"code":"431223100","name":"辰阳镇"},{"code":"431223101","name":"孝坪镇"},{"code":"431223102","name":"田湾镇"},{"code":"431223103","name":"火马冲镇"},{"code":"431223104","name":"黄溪口镇"},{"code":"431223105","name":"潭湾镇"},{"code":"431223106","name":"安坪镇"},{"code":"431223108","name":"锦滨镇"},{"code":"431223109","name":"修溪镇"},{"code":"431223200","name":"船溪乡"},{"code":"431223204","name":"长田湾乡"},{"code":"431223205","name":"小龙门乡"},{"code":"431223206","name":"后塘瑶族乡"},{"code":"431223207","name":"苏木溪瑶族乡"},{"code":"431223208","name":"罗子山瑶族乡"},{"code":"431223209","name":"上蒲溪瑶族乡"},{"code":"431223210","name":"仙人湾瑶族乡"},{"code":"431223211","name":"龙头庵乡"},{"code":"431223215","name":"大水田乡"},{"code":"431223216","name":"桥头溪乡"},{"code":"431223218","name":"龙泉岩乡"},{"code":"431223221","name":"柿溪乡"},{"code":"431223222","name":"谭家场乡"}]},{"code":"431224","name":"溆浦县","children":[{"code":"431224100","name":"卢峰镇"},{"code":"431224102","name":"低庄镇"},{"code":"431224103","name":"桥江镇"},{"code":"431224104","name":"龙潭镇"},{"code":"431224105","name":"均坪镇"},{"code":"431224106","name":"观音阁镇"},{"code":"431224107","name":"双井镇"},{"code":"431224108","name":"水东镇"},{"code":"431224109","name":"两丫坪镇"},{"code":"431224110","name":"黄茅园镇"},{"code":"431224112","name":"葛竹坪镇"},{"code":"431224118","name":"大江口镇"},{"code":"431224119","name":"思蒙镇"},{"code":"431224120","name":"深子湖镇"},{"code":"431224121","name":"祖师殿镇"},{"code":"431224122","name":"三江镇"},{"code":"431224123","name":"统溪河镇"},{"code":"431224124","name":"北斗溪镇"},{"code":"431224204","name":"舒溶溪乡"},{"code":"431224213","name":"油洋乡"},{"code":"431224219","name":"小横垅乡"},{"code":"431224223","name":"中都乡"},{"code":"431224224","name":"沿溪乡"},{"code":"431224230","name":"龙庄湾乡"},{"code":"431224231","name":"淘金坪乡"}]},{"code":"431225","name":"会同县","children":[{"code":"431225100","name":"林城镇"},{"code":"431225101","name":"坪村镇"},{"code":"431225102","name":"堡子镇"},{"code":"431225103","name":"团河镇"},{"code":"431225104","name":"若水镇"},{"code":"431225106","name":"广坪镇"},{"code":"431225107","name":"马鞍镇"},{"code":"431225108","name":"金竹镇"},{"code":"431225200","name":"沙溪乡"},{"code":"431225201","name":"金子岩侗族苗族乡"},{"code":"431225204","name":"高椅乡"},{"code":"431225209","name":"宝田侗族苗族乡"},{"code":"431225210","name":"漠滨侗族苗族乡"},{"code":"431225211","name":"蒲稳侗族苗族乡"},{"code":"431225212","name":"青朗侗族苗族乡"},{"code":"431225213","name":"炮团侗族苗族乡"},{"code":"431225214","name":"地灵乡"},{"code":"431225215","name":"连山乡"}]},{"code":"431226","name":"麻阳苗族自治县","children":[{"code":"431226101","name":"锦和镇"},{"code":"431226102","name":"江口墟镇"},{"code":"431226103","name":"岩门镇"},{"code":"431226104","name":"兰里镇"},{"code":"431226105","name":"吕家坪镇"},{"code":"431226106","name":"高村镇"},{"code":"431226107","name":"尧市镇"},{"code":"431226108","name":"郭公坪镇"},{"code":"431226204","name":"文昌阁乡"},{"code":"431226205","name":"大桥江乡"},{"code":"431226206","name":"舒家村乡"},{"code":"431226207","name":"隆家堡乡"},{"code":"431226208","name":"谭家寨乡"},{"code":"431226209","name":"石羊哨乡"},{"code":"431226210","name":"板栗树乡"},{"code":"431226212","name":"兰村乡"},{"code":"431226215","name":"和平溪乡"},{"code":"431226216","name":"黄桑乡"}]},{"code":"431227","name":"新晃侗族自治县","children":[{"code":"431227101","name":"波洲镇"},{"code":"431227103","name":"鱼市镇"},{"code":"431227104","name":"凉伞镇"},{"code":"431227105","name":"扶罗镇"},{"code":"431227106","name":"中寨镇"},{"code":"431227107","name":"晃洲镇"},{"code":"431227108","name":"林冲镇"},{"code":"431227109","name":"贡溪镇"},{"code":"431227110","name":"禾滩镇"},{"code":"431227200","name":"步头降苗族乡"},{"code":"431227215","name":"米贝苗族乡"}]},{"code":"431228","name":"芷江侗族自治县","children":[{"code":"431228100","name":"芷江镇"},{"code":"431228101","name":"罗旧镇"},{"code":"431228102","name":"新店坪镇"},{"code":"431228103","name":"碧涌镇"},{"code":"431228104","name":"公坪镇"},{"code":"431228105","name":"岩桥镇"},{"code":"431228106","name":"三道坑镇"},{"code":"431228107","name":"土桥镇"},{"code":"431228108","name":"楠木坪镇"},{"code":"431228201","name":"牛牯坪乡"},{"code":"431228204","name":"水宽乡"},{"code":"431228212","name":"大树坳乡"},{"code":"431228215","name":"梨溪口乡"},{"code":"431228216","name":"洞下场乡"},{"code":"431228220","name":"禾梨坳乡"},{"code":"431228221","name":"冷水溪乡"},{"code":"431228223","name":"晓坪乡"},{"code":"431228224","name":"罗卜田乡"}]},{"code":"431229","name":"靖州苗族侗族自治县","children":[{"code":"431229100","name":"渠阳镇"},{"code":"431229101","name":"甘棠镇"},{"code":"431229102","name":"大堡子镇"},{"code":"431229103","name":"坳上镇"},{"code":"431229104","name":"新厂镇"},{"code":"431229105","name":"平茶镇"},{"code":"431229200","name":"太阳坪乡"},{"code":"431229201","name":"三锹乡"},{"code":"431229202","name":"文溪乡"},{"code":"431229203","name":"寨牙乡"},{"code":"431229206","name":"藕团乡"}]},{"code":"431230","name":"通道侗族自治县","children":[{"code":"431230100","name":"双江镇"},{"code":"431230101","name":"县溪镇"},{"code":"431230102","name":"播阳镇"},{"code":"431230104","name":"牙屯堡镇"},{"code":"431230105","name":"菁芜洲镇"},{"code":"431230106","name":"溪口镇"},{"code":"431230107","name":"陇城镇"},{"code":"431230108","name":"万佛山镇"},{"code":"431230109","name":"独坡镇"},{"code":"431230203","name":"大高坪苗族乡"},{"code":"431230216","name":"坪坦乡"},{"code":"431230400","name":"通道县地连林场"},{"code":"431230401","name":"通道县播阳农场"}]},{"code":"431271","name":"怀化市洪江管理区","children":[{"code":"431271001","name":"河滨路街道"},{"code":"431271002","name":"沅江路街道"},{"code":"431271003","name":"新街街道"},{"code":"431271004","name":"高坡街街道"},{"code":"431271218","name":"横岩乡"},{"code":"431271220","name":"桂花园乡"}]},{"code":"431281","name":"洪江市","children":[{"code":"431281101","name":"黔城镇"},{"code":"431281102","name":"安江镇"},{"code":"431281103","name":"托口镇"},{"code":"431281104","name":"雪峰镇"},{"code":"431281106","name":"江市镇"},{"code":"431281107","name":"沅河镇"},{"code":"431281108","name":"塘湾镇"},{"code":"431281202","name":"岔头乡"},{"code":"431281203","name":"茅渡乡"},{"code":"431281204","name":"大崇乡"},{"code":"431281205","name":"熟坪乡"},{"code":"431281206","name":"铁山乡"},{"code":"431281207","name":"群峰乡"},{"code":"431281208","name":"湾溪乡"},{"code":"431281209","name":"洗马乡"},{"code":"431281211","name":"沙湾乡"},{"code":"431281212","name":"深渡苗族乡"},{"code":"431281213","name":"龙船塘瑶族乡"},{"code":"431281214","name":"太平乡"},{"code":"431281217","name":"岩垅乡"}]}]},{"code":"4313","name":"娄底市","children":[{"code":"431302","name":"娄星区","children":[{"code":"431302001","name":"乐坪街道"},{"code":"431302002","name":"花山街道"},{"code":"431302003","name":"黄泥塘街道"},{"code":"431302004","name":"长青街道"},{"code":"431302005","name":"大科街道"},{"code":"431302006","name":"涟滨街道"},{"code":"431302007","name":"大埠桥街道"},{"code":"431302100","name":"杉山镇"},{"code":"431302101","name":"万宝镇"},{"code":"431302104","name":"石井镇"},{"code":"431302105","name":"水洞底镇"},{"code":"431302106","name":"蛇形山镇"},{"code":"431302204","name":"双江乡"}]},{"code":"431321","name":"双峰县","children":[{"code":"431321001","name":"永丰街道"},{"code":"431321002","name":"金开街道"},{"code":"431321101","name":"荷叶镇"},{"code":"431321102","name":"井字镇"},{"code":"431321103","name":"梓门桥镇"},{"code":"431321104","name":"杏子铺镇"},{"code":"431321105","name":"走马街镇"},{"code":"431321107","name":"洪山殿镇"},{"code":"431321108","name":"甘棠镇"},{"code":"431321109","name":"三塘铺镇"},{"code":"431321110","name":"青树坪镇"},{"code":"431321111","name":"花门镇"},{"code":"431321112","name":"锁石镇"},{"code":"431321200","name":"石牛乡"},{"code":"431321201","name":"沙塘乡"},{"code":"431321202","name":"印塘乡"}]},{"code":"431322","name":"新化县","children":[{"code":"431322001","name":"上梅街道"},{"code":"431322002","name":"上渡街道"},{"code":"431322003","name":"枫林街道"},{"code":"431322101","name":"石冲口镇"},{"code":"431322102","name":"洋溪镇"},{"code":"431322103","name":"槎溪镇"},{"code":"431322104","name":"水车镇"},{"code":"431322105","name":"文田镇"},{"code":"431322106","name":"奉家镇"},{"code":"431322107","name":"炉观镇"},{"code":"431322108","name":"游家镇"},{"code":"431322109","name":"西河镇"},{"code":"431322110","name":"孟公镇"},{"code":"431322111","name":"琅塘镇"},{"code":"431322112","name":"白溪镇"},{"code":"431322113","name":"圳上镇"},{"code":"431322114","name":"吉庆镇"},{"code":"431322115","name":"温塘镇"},{"code":"431322116","name":"田坪镇"},{"code":"431322117","name":"桑梓镇"},{"code":"431322118","name":"曹家镇"},{"code":"431322200","name":"科头乡"},{"code":"431322201","name":"维山乡"},{"code":"431322202","name":"天门乡"},{"code":"431322203","name":"荣华乡"},{"code":"431322204","name":"金凤乡"},{"code":"431322205","name":"油溪乡"},{"code":"431322206","name":"坐石乡"},{"code":"431322500","name":"大熊山国有林场"},{"code":"431322501","name":"古台山国有林场"}]},{"code":"431381","name":"冷水江市","children":[{"code":"431381001","name":"冷水江街道"},{"code":"431381002","name":"锡矿山街道"},{"code":"431381003","name":"沙塘湾街道"},{"code":"431381004","name":"布溪街道"},{"code":"431381100","name":"禾青镇"},{"code":"431381102","name":"渣渡镇"},{"code":"431381103","name":"铎山镇"},{"code":"431381105","name":"三尖镇"},{"code":"431381106","name":"金竹山镇"},{"code":"431381205","name":"中连乡"}]},{"code":"431382","name":"涟源市","children":[{"code":"431382001","name":"蓝田街道"},{"code":"431382002","name":"六亩塘街道"},{"code":"431382003","name":"石马山街道"},{"code":"431382102","name":"安平镇"},{"code":"431382103","name":"湄江镇"},{"code":"431382104","name":"伏口镇"},{"code":"431382105","name":"桥头河镇"},{"code":"431382106","name":"七星街镇"},{"code":"431382107","name":"杨市镇"},{"code":"431382108","name":"枫坪镇"},{"code":"431382109","name":"斗笠山镇"},{"code":"431382111","name":"白马镇"},{"code":"431382112","name":"茅塘镇"},{"code":"431382113","name":"荷塘镇"},{"code":"431382114","name":"金石镇"},{"code":"431382115","name":"龙塘镇"},{"code":"431382116","name":"渡头塘镇"},{"code":"431382117","name":"湖泉镇"},{"code":"431382200","name":"三甲乡"},{"code":"431382202","name":"古塘乡"}]}]},{"code":"4331","name":"湘西土家族苗族自治州","children":[{"code":"433101","name":"吉首市","children":[{"code":"433101002","name":"峒河街道"},{"code":"433101004","name":"乾州街道"},{"code":"433101005","name":"镇溪街道"},{"code":"433101007","name":"石家冲街道"},{"code":"433101008","name":"双塘街道"},{"code":"433101009","name":"吉凤街道"},{"code":"433101100","name":"矮寨镇"},{"code":"433101101","name":"马颈坳镇"},{"code":"433101102","name":"河溪镇"},{"code":"433101104","name":"丹青镇"},{"code":"433101105","name":"太平镇"},{"code":"433101201","name":"已略乡"}]},{"code":"433122","name":"泸溪县","children":[{"code":"433122102","name":"达岚镇"},{"code":"433122104","name":"兴隆场镇"},{"code":"433122105","name":"潭溪镇"},{"code":"433122106","name":"洗溪镇"},{"code":"433122107","name":"武溪镇"},{"code":"433122108","name":"浦市镇"},{"code":"433122109","name":"合水镇"},{"code":"433122203","name":"石榴坪乡"},{"code":"433122206","name":"解放岩乡"},{"code":"433122207","name":"小章乡"},{"code":"433122208","name":"白羊溪乡"},{"code":"433122400","name":"军亭界林场"}]},{"code":"433123","name":"凤凰县","children":[{"code":"433123101","name":"廖家桥镇"},{"code":"433123104","name":"茶田镇"},{"code":"433123105","name":"吉信镇"},{"code":"433123107","name":"腊尔山镇"},{"code":"433123108","name":"禾库镇"},{"code":"433123109","name":"沱江镇"},{"code":"433123110","name":"阿拉营镇"},{"code":"433123111","name":"木江坪镇"},{"code":"433123112","name":"山江镇"},{"code":"433123113","name":"落潮井镇"},{"code":"433123114","name":"新场镇"},{"code":"433123115","name":"筸子坪镇"},{"code":"433123116","name":"千工坪镇"},{"code":"433123204","name":"水打田乡"},{"code":"433123205","name":"林峰乡"},{"code":"433123216","name":"麻冲乡"},{"code":"433123220","name":"两林乡"}]},{"code":"433124","name":"花垣县","children":[{"code":"433124102","name":"龙潭镇"},{"code":"433124103","name":"民乐镇"},{"code":"433124105","name":"吉卫镇"},{"code":"433124106","name":"麻栗场镇"},{"code":"433124107","name":"雅酉镇"},{"code":"433124108","name":"边城镇"},{"code":"433124109","name":"花垣镇"},{"code":"433124110","name":"双龙镇"},{"code":"433124111","name":"石栏镇"},{"code":"433124200","name":"长乐乡"},{"code":"433124206","name":"猫儿乡"},{"code":"433124213","name":"补抽乡"}]},{"code":"433125","name":"保靖县","children":[{"code":"433125104","name":"普戎镇"},{"code":"433125108","name":"复兴镇"},{"code":"433125109","name":"迁陵镇"},{"code":"433125110","name":"清水坪镇"},{"code":"433125111","name":"比耳镇"},{"code":"433125112","name":"毛沟镇"},{"code":"433125113","name":"水田河镇"},{"code":"433125114","name":"葫芦镇"},{"code":"433125115","name":"碗米坡镇"},{"code":"433125116","name":"吕洞山镇"},{"code":"433125217","name":"阳朝乡"},{"code":"433125218","name":"长潭河乡"}]},{"code":"433126","name":"古丈县","children":[{"code":"433126101","name":"古阳镇"},{"code":"433126103","name":"岩头寨镇"},{"code":"433126104","name":"默戎镇"},{"code":"433126105","name":"红石林镇"},{"code":"433126106","name":"断龙山镇"},{"code":"433126107","name":"高峰镇"},{"code":"433126108","name":"坪坝镇"}]},{"code":"433127","name":"永顺县","children":[{"code":"433127101","name":"首车镇"},{"code":"433127103","name":"芙蓉镇"},{"code":"433127104","name":"永茂镇"},{"code":"433127108","name":"小溪镇"},{"code":"433127109","name":"青坪镇"},{"code":"433127112","name":"石堤镇"},{"code":"433127113","name":"万坪镇"},{"code":"433127114","name":"塔卧镇"},{"code":"433127115","name":"砂坝镇"},{"code":"433127116","name":"灵溪镇"},{"code":"433127117","name":"松柏镇"},{"code":"433127118","name":"泽家镇"},{"code":"433127200","name":"两岔乡"},{"code":"433127202","name":"西歧乡"},{"code":"433127203","name":"对山乡"},{"code":"433127210","name":"高坪乡"},{"code":"433127216","name":"朗溪乡"},{"code":"433127220","name":"润雅乡"},{"code":"433127222","name":"车坪乡"},{"code":"433127228","name":"毛坝乡"},{"code":"433127229","name":"万民乡"},{"code":"433127230","name":"盐井乡"},{"code":"433127238","name":"颗砂乡"}]},{"code":"433130","name":"龙山县","children":[{"code":"433130001","name":"民安街道"},{"code":"433130002","name":"华塘街道"},{"code":"433130004","name":"兴隆街道"},{"code":"433130005","name":"石羔街道"},{"code":"433130104","name":"洗车河镇"},{"code":"433130110","name":"石牌镇"},{"code":"433130112","name":"茨岩塘镇"},{"code":"433130113","name":"红岩溪镇"},{"code":"433130114","name":"靛房镇"},{"code":"433130115","name":"苗儿滩镇"},{"code":"433130116","name":"里耶镇"},{"code":"433130117","name":"桂塘镇"},{"code":"433130118","name":"召市镇"},{"code":"433130119","name":"洗洛镇"},{"code":"433130120","name":"水田坝镇"},{"code":"433130121","name":"农车镇"},{"code":"433130200","name":"洛塔乡"},{"code":"433130210","name":"大安乡"},{"code":"433130220","name":"内溪乡"},{"code":"433130236","name":"咱果乡"},{"code":"433130237","name":"茅坪乡"}]}]}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市","children":[{"code":"440103","name":"荔湾区","children":[{"code":"440103001","name":"沙面街道"},{"code":"440103002","name":"岭南街道"},{"code":"440103003","name":"华林街道"},{"code":"440103004","name":"多宝街道"},{"code":"440103005","name":"昌华街道"},{"code":"440103006","name":"逢源街道"},{"code":"440103007","name":"龙津街道"},{"code":"440103008","name":"金花街道"},{"code":"440103009","name":"彩虹街道"},{"code":"440103010","name":"南源街道"},{"code":"440103011","name":"西村街道"},{"code":"440103012","name":"站前街道"},{"code":"440103013","name":"桥中街道"},{"code":"440103014","name":"白鹤洞街道"},{"code":"440103015","name":"冲口街道"},{"code":"440103016","name":"花地街道"},{"code":"440103017","name":"石围塘街道"},{"code":"440103018","name":"茶滘街道"},{"code":"440103019","name":"东漖街道"},{"code":"440103020","name":"海龙街道"},{"code":"440103021","name":"东沙街道"},{"code":"440103022","name":"中南街道"}]},{"code":"440104","name":"越秀区","children":[{"code":"440104001","name":"洪桥街道"},{"code":"440104003","name":"北京街道"},{"code":"440104004","name":"六榕街道"},{"code":"440104005","name":"流花街道"},{"code":"440104007","name":"光塔街道"},{"code":"440104010","name":"人民街道"},{"code":"440104011","name":"东山街道"},{"code":"440104012","name":"农林街道"},{"code":"440104013","name":"梅花村街道"},{"code":"440104014","name":"黄花岗街道"},{"code":"440104015","name":"华乐街道"},{"code":"440104016","name":"建设街道"},{"code":"440104017","name":"大塘街道"},{"code":"440104018","name":"珠光街道"},{"code":"440104019","name":"大东街道"},{"code":"440104020","name":"白云街道"},{"code":"440104021","name":"登峰街道"},{"code":"440104022","name":"矿泉街道"}]},{"code":"440105","name":"海珠区","children":[{"code":"440105001","name":"赤岗街道"},{"code":"440105002","name":"新港街道"},{"code":"440105003","name":"昌岗街道"},{"code":"440105004","name":"江南中街道"},{"code":"440105005","name":"滨江街道"},{"code":"440105006","name":"素社街道"},{"code":"440105007","name":"海幢街道"},{"code":"440105008","name":"南华西街道"},{"code":"440105009","name":"龙凤街道"},{"code":"440105010","name":"沙园街道"},{"code":"440105011","name":"南石头街道"},{"code":"440105012","name":"凤阳街道"},{"code":"440105013","name":"瑞宝街道"},{"code":"440105014","name":"江海街道"},{"code":"440105015","name":"琶洲街道"},{"code":"440105016","name":"南洲街道"},{"code":"440105017","name":"华洲街道"},{"code":"440105018","name":"官洲街道"}]},{"code":"440106","name":"天河区","children":[{"code":"440106001","name":"五山街道"},{"code":"440106002","name":"员村街道"},{"code":"440106003","name":"车陂街道"},{"code":"440106004","name":"沙河街道"},{"code":"440106006","name":"石牌街道"},{"code":"440106007","name":"沙东街道"},{"code":"440106008","name":"天河南街道"},{"code":"440106009","name":"林和街道"},{"code":"440106010","name":"兴华街道"},{"code":"440106011","name":"棠下街道"},{"code":"440106012","name":"天园街道"},{"code":"440106013","name":"猎德街道"},{"code":"440106014","name":"冼村街道"},{"code":"440106015","name":"元岗街道"},{"code":"440106016","name":"黄村街道"},{"code":"440106017","name":"长兴街道"},{"code":"440106018","name":"龙洞街道"},{"code":"440106019","name":"凤凰街道"},{"code":"440106020","name":"前进街道"},{"code":"440106021","name":"珠吉街道"},{"code":"440106022","name":"新塘街道"}]},{"code":"440111","name":"白云区","children":[{"code":"440111002","name":"三元里街道"},{"code":"440111003","name":"松洲街道"},{"code":"440111004","name":"景泰街道"},{"code":"440111005","name":"同德街道"},{"code":"440111006","name":"黄石街道"},{"code":"440111007","name":"棠景街道"},{"code":"440111008","name":"新市街道"},{"code":"440111009","name":"同和街道"},{"code":"440111010","name":"京溪街道"},{"code":"440111011","name":"永平街道"},{"code":"440111012","name":"嘉禾街道"},{"code":"440111013","name":"均禾街道"},{"code":"440111014","name":"石井街道"},{"code":"440111015","name":"金沙街道"},{"code":"440111016","name":"云城街道"},{"code":"440111017","name":"鹤龙街道"},{"code":"440111018","name":"白云湖街道"},{"code":"440111019","name":"石门街道"},{"code":"440111020","name":"龙归街道"},{"code":"440111021","name":"大源街道"},{"code":"440111103","name":"人和镇"},{"code":"440111107","name":"太和镇"},{"code":"440111108","name":"钟落潭镇"},{"code":"440111113","name":"江高镇"}]},{"code":"440112","name":"黄埔区","children":[{"code":"440112001","name":"黄埔街道"},{"code":"440112002","name":"红山街道"},{"code":"440112003","name":"鱼珠街道"},{"code":"440112005","name":"大沙街道"},{"code":"440112006","name":"文冲街道"},{"code":"440112007","name":"穗东街道"},{"code":"440112008","name":"南岗街道"},{"code":"440112010","name":"长洲街道"},{"code":"440112011","name":"夏港街道"},{"code":"440112012","name":"萝岗街道"},{"code":"440112013","name":"云埔街道"},{"code":"440112014","name":"联和街道"},{"code":"440112015","name":"永和街道"},{"code":"440112016","name":"长岭街道"},{"code":"440112017","name":"九佛街道"},{"code":"440112018","name":"龙湖街道"},{"code":"440112101","name":"新龙镇"}]},{"code":"440113","name":"番禺区","children":[{"code":"440113007","name":"市桥街道"},{"code":"440113008","name":"沙头街道"},{"code":"440113009","name":"东环街道"},{"code":"440113010","name":"桥南街道"},{"code":"440113011","name":"小谷围街道"},{"code":"440113012","name":"大石街道"},{"code":"440113013","name":"洛浦街道"},{"code":"440113014","name":"石壁街道"},{"code":"440113015","name":"钟村街道"},{"code":"440113016","name":"大龙街道"},{"code":"440113017","name":"沙湾街道"},{"code":"440113102","name":"南村镇"},{"code":"440113103","name":"新造镇"},{"code":"440113104","name":"化龙镇"},{"code":"440113105","name":"石楼镇"},{"code":"440113120","name":"石碁镇"}]},{"code":"440114","name":"花都区","children":[{"code":"440114001","name":"新华街道"},{"code":"440114002","name":"花城街道"},{"code":"440114003","name":"秀全街道"},{"code":"440114004","name":"新雅街道"},{"code":"440114103","name":"梯面镇"},{"code":"440114104","name":"花山镇"},{"code":"440114105","name":"花东镇"},{"code":"440114107","name":"炭步镇"},{"code":"440114108","name":"赤坭镇"},{"code":"440114109","name":"狮岭镇"}]},{"code":"440115","name":"南沙区","children":[{"code":"440115001","name":"南沙街道"},{"code":"440115002","name":"珠江街道"},{"code":"440115003","name":"龙穴街道"},{"code":"440115100","name":"万顷沙镇"},{"code":"440115101","name":"横沥镇"},{"code":"440115102","name":"黄阁镇"},{"code":"440115103","name":"东涌镇"},{"code":"440115104","name":"大岗镇"},{"code":"440115105","name":"榄核镇"}]},{"code":"440117","name":"从化区","children":[{"code":"440117001","name":"街口街道"},{"code":"440117002","name":"江埔街道"},{"code":"440117003","name":"城郊街道"},{"code":"440117103","name":"温泉镇"},{"code":"440117104","name":"良口镇"},{"code":"440117107","name":"吕田镇"},{"code":"440117111","name":"太平镇"},{"code":"440117113","name":"鳌头镇"},{"code":"440117404","name":"黄龙带水库"},{"code":"440117405","name":"大岭山林场"}]},{"code":"440118","name":"增城区","children":[{"code":"440118001","name":"荔城街道"},{"code":"440118002","name":"增江街道"},{"code":"440118003","name":"朱村街道"},{"code":"440118004","name":"永宁街道"},{"code":"440118005","name":"荔湖街道"},{"code":"440118006","name":"宁西街道"},{"code":"440118101","name":"新塘镇"},{"code":"440118102","name":"石滩镇"},{"code":"440118103","name":"中新镇"},{"code":"440118104","name":"正果镇"},{"code":"440118105","name":"派潭镇"},{"code":"440118106","name":"小楼镇"},{"code":"440118107","name":"仙村镇"}]}]},{"code":"4402","name":"韶关市","children":[{"code":"440203","name":"武江区","children":[{"code":"440203001","name":"新华街道"},{"code":"440203002","name":"惠民街道"},{"code":"440203100","name":"西联镇"},{"code":"440203101","name":"西河镇"},{"code":"440203102","name":"龙归镇"},{"code":"440203103","name":"江湾镇"},{"code":"440203104","name":"重阳镇"}]},{"code":"440204","name":"浈江区","children":[{"code":"440204001","name":"东河街道"},{"code":"440204002","name":"车站街道"},{"code":"440204008","name":"风采街道"},{"code":"440204100","name":"新韶镇"},{"code":"440204101","name":"乐园镇"},{"code":"440204102","name":"十里亭镇"},{"code":"440204103","name":"犁市镇"},{"code":"440204104","name":"花坪镇"},{"code":"440204401","name":"曲仁矿务局田螺冲"},{"code":"440204402","name":"曲仁矿务局曲仁"}]},{"code":"440205","name":"曲江区","children":[{"code":"440205001","name":"松山街道"},{"code":"440205100","name":"马坝镇"},{"code":"440205101","name":"大塘镇"},{"code":"440205102","name":"枫湾镇"},{"code":"440205103","name":"小坑镇"},{"code":"440205104","name":"沙溪镇"},{"code":"440205106","name":"乌石镇"},{"code":"440205107","name":"樟市镇"},{"code":"440205108","name":"白土镇"},{"code":"440205109","name":"罗坑镇"}]},{"code":"440222","name":"始兴县","children":[{"code":"440222100","name":"太平镇"},{"code":"440222101","name":"马市镇"},{"code":"440222102","name":"澄江镇"},{"code":"440222103","name":"顿岗镇"},{"code":"440222104","name":"罗坝镇"},{"code":"440222105","name":"司前镇"},{"code":"440222106","name":"隘子镇"},{"code":"440222107","name":"城南镇"},{"code":"440222108","name":"沈所镇"},{"code":"440222204","name":"深渡水乡"}]},{"code":"440224","name":"仁化县","children":[{"code":"440224001","name":"丹霞街道"},{"code":"440224102","name":"闻韶镇"},{"code":"440224103","name":"扶溪镇"},{"code":"440224104","name":"长江镇"},{"code":"440224105","name":"城口镇"},{"code":"440224106","name":"红山镇"},{"code":"440224107","name":"石塘镇"},{"code":"440224108","name":"董塘镇"},{"code":"440224109","name":"大桥镇"},{"code":"440224110","name":"周田镇"},{"code":"440224111","name":"黄坑镇"}]},{"code":"440229","name":"翁源县","children":[{"code":"440229100","name":"龙仙镇"},{"code":"440229104","name":"坝仔镇"},{"code":"440229106","name":"江尾镇"},{"code":"440229109","name":"官渡镇"},{"code":"440229111","name":"周陂镇"},{"code":"440229113","name":"翁城镇"},{"code":"440229114","name":"新江镇"},{"code":"440229115","name":"铁龙镇"}]},{"code":"440232","name":"乳源瑶族自治县","children":[{"code":"440232100","name":"乳城镇"},{"code":"440232103","name":"一六镇"},{"code":"440232104","name":"桂头镇"},{"code":"440232106","name":"洛阳镇"},{"code":"440232108","name":"大布镇"},{"code":"440232109","name":"大桥镇"},{"code":"440232111","name":"东坪镇"},{"code":"440232112","name":"游溪镇"},{"code":"440232113","name":"必背镇"},{"code":"440232450","name":"天井山林场"},{"code":"440232451","name":"乳阳林业局"}]},{"code":"440233","name":"新丰县","children":[{"code":"440233001","name":"丰城街道"},{"code":"440233100","name":"黄磜镇"},{"code":"440233101","name":"马头镇"},{"code":"440233102","name":"梅坑镇"},{"code":"440233103","name":"沙田镇"},{"code":"440233104","name":"遥田镇"},{"code":"440233105","name":"回龙镇"}]},{"code":"440281","name":"乐昌市","children":[{"code":"440281001","name":"乐城街道"},{"code":"440281102","name":"北乡镇"},{"code":"440281103","name":"九峰镇"},{"code":"440281104","name":"廊田镇"},{"code":"440281105","name":"长来镇"},{"code":"440281106","name":"梅花镇"},{"code":"440281107","name":"三溪镇"},{"code":"440281108","name":"坪石镇"},{"code":"440281110","name":"黄圃镇"},{"code":"440281111","name":"五山镇"},{"code":"440281112","name":"两江镇"},{"code":"440281113","name":"沙坪镇"},{"code":"440281114","name":"云岩镇"},{"code":"440281115","name":"秀水镇"},{"code":"440281117","name":"大源镇"},{"code":"440281118","name":"庆云镇"},{"code":"440281119","name":"白石镇"},{"code":"440281451","name":"坪梅矿务局坪石"},{"code":"440281452","name":"坪梅矿务局梅田"}]},{"code":"440282","name":"南雄市","children":[{"code":"440282001","name":"雄州街道"},{"code":"440282100","name":"乌迳镇"},{"code":"440282103","name":"界址镇"},{"code":"440282104","name":"坪田镇"},{"code":"440282105","name":"黄坑镇"},{"code":"440282106","name":"邓坊镇"},{"code":"440282107","name":"油山镇"},{"code":"440282109","name":"南亩镇"},{"code":"440282110","name":"水口镇"},{"code":"440282111","name":"江头镇"},{"code":"440282112","name":"湖口镇"},{"code":"440282113","name":"珠玑镇"},{"code":"440282115","name":"主田镇"},{"code":"440282116","name":"古市镇"},{"code":"440282118","name":"全安镇"},{"code":"440282120","name":"百顺镇"},{"code":"440282121","name":"澜河镇"},{"code":"440282122","name":"帽子峰镇"},{"code":"440282400","name":"东莞大岭山(南雄)产业转移工业园"}]}]},{"code":"4403","name":"深圳市","children":[{"code":"440303","name":"罗湖区","children":[{"code":"440303001","name":"桂园街道"},{"code":"440303002","name":"黄贝街道"},{"code":"440303003","name":"东门街道"},{"code":"440303004","name":"翠竹街道"},{"code":"440303005","name":"南湖街道"},{"code":"440303006","name":"笋岗街道"},{"code":"440303007","name":"东湖街道"},{"code":"440303008","name":"莲塘街道"},{"code":"440303009","name":"东晓街道"},{"code":"440303010","name":"清水河街道"}]},{"code":"440304","name":"福田区","children":[{"code":"440304001","name":"南园街道"},{"code":"440304002","name":"园岭街道"},{"code":"440304004","name":"福田街道"},{"code":"440304005","name":"沙头街道"},{"code":"440304006","name":"香蜜湖街道"},{"code":"440304007","name":"梅林街道"},{"code":"440304008","name":"莲花街道"},{"code":"440304009","name":"华富街道"},{"code":"440304010","name":"福保街道"},{"code":"440304011","name":"华强北街道"},{"code":"440304400","name":"福田保税区"}]},{"code":"440305","name":"南山区","children":[{"code":"440305001","name":"南头街道"},{"code":"440305002","name":"南山街道"},{"code":"440305003","name":"沙河街道"},{"code":"440305005","name":"蛇口街道"},{"code":"440305006","name":"招商街道"},{"code":"440305007","name":"粤海街道"},{"code":"440305008","name":"桃源街道"},{"code":"440305009","name":"西丽街道"},{"code":"440305400","name":"前海合作区"}]},{"code":"440306","name":"宝安区","children":[{"code":"440306017","name":"新安街道"},{"code":"440306018","name":"西乡街道"},{"code":"440306019","name":"航城街道"},{"code":"440306020","name":"福永街道"},{"code":"440306021","name":"福海街道"},{"code":"440306022","name":"沙井街道"},{"code":"440306023","name":"新桥街道"},{"code":"440306024","name":"松岗街道"},{"code":"440306025","name":"燕罗街道"},{"code":"440306026","name":"石岩街道"},{"code":"440306400","name":"深圳市宝安国际机场"}]},{"code":"440307","name":"龙岗区","children":[{"code":"440307003","name":"平湖街道"},{"code":"440307006","name":"坪地街道"},{"code":"440307009","name":"葵涌街道"},{"code":"440307010","name":"大鹏街道"},{"code":"440307011","name":"南澳街道"},{"code":"440307012","name":"南湾街道"},{"code":"440307013","name":"坂田街道"},{"code":"440307014","name":"布吉街道"},{"code":"440307015","name":"龙城街道"},{"code":"440307016","name":"龙岗街道"},{"code":"440307017","name":"横岗街道"},{"code":"440307018","name":"吉华街道"},{"code":"440307019","name":"宝龙街道"},{"code":"440307020","name":"园山街道"}]},{"code":"440308","name":"盐田区","children":[{"code":"440308001","name":"梅沙街道"},{"code":"440308002","name":"盐田街道"},{"code":"440308003","name":"沙头角街道"},{"code":"440308004","name":"海山街道"},{"code":"440308403","name":"深圳盐田综合保税区"}]},{"code":"440309","name":"龙华区","children":[{"code":"440309001","name":"观湖街道"},{"code":"440309002","name":"民治街道"},{"code":"440309003","name":"龙华街道"},{"code":"440309004","name":"大浪街道"},{"code":"440309005","name":"福城街道"},{"code":"440309006","name":"观澜街道"}]},{"code":"440310","name":"坪山区","children":[{"code":"440310001","name":"坪山街道"},{"code":"440310002","name":"马峦街道"},{"code":"440310003","name":"碧岭街道"},{"code":"440310004","name":"石井街道"},{"code":"440310005","name":"坑梓街道"},{"code":"440310006","name":"龙田街道"},{"code":"440310401","name":"深圳坪山综合保税区"}]},{"code":"440311","name":"光明区","children":[{"code":"440311001","name":"光明街道"},{"code":"440311002","name":"公明街道"},{"code":"440311003","name":"新湖街道"},{"code":"440311004","name":"凤凰街道"},{"code":"440311005","name":"玉塘街道"},{"code":"440311006","name":"马田街道"}]}]},{"code":"4404","name":"珠海市","children":[{"code":"440402","name":"香洲区","children":[{"code":"440402001","name":"翠香街道"},{"code":"440402002","name":"梅华街道"},{"code":"440402003","name":"前山街道"},{"code":"440402004","name":"吉大街道"},{"code":"440402005","name":"拱北街道"},{"code":"440402006","name":"香湾街道"},{"code":"440402007","name":"狮山街道"},{"code":"440402008","name":"湾仔街道"},{"code":"440402009","name":"凤山街道"},{"code":"440402100","name":"唐家湾镇"},{"code":"440402102","name":"南屏镇"},{"code":"440402104","name":"横琴镇"},{"code":"440402105","name":"桂山镇"},{"code":"440402106","name":"万山镇"},{"code":"440402107","name":"担杆镇"},{"code":"440402401","name":"南屏科技园"},{"code":"440402402","name":"保税区"},{"code":"440402403","name":"三溪科创小镇发展中心"},{"code":"440402404","name":"洪湾商贸物流中心"}]},{"code":"440403","name":"斗门区","children":[{"code":"440403001","name":"白藤街道"},{"code":"440403100","name":"莲洲镇"},{"code":"440403103","name":"斗门镇"},{"code":"440403105","name":"乾务镇"},{"code":"440403106","name":"白蕉镇"},{"code":"440403107","name":"井岸镇"}]},{"code":"440404","name":"金湾区","children":[{"code":"440404100","name":"三灶镇"},{"code":"440404101","name":"南水镇"},{"code":"440404103","name":"红旗镇"},{"code":"440404104","name":"平沙镇"},{"code":"440404400","name":"联港工业区"},{"code":"440404401","name":"航空产业园"}]}]},{"code":"4405","name":"汕头市","children":[{"code":"440507","name":"龙湖区","children":[{"code":"440507001","name":"金霞街道"},{"code":"440507003","name":"珠池街道"},{"code":"440507004","name":"新津街道"},{"code":"440507005","name":"鸥汀街道"},{"code":"440507008","name":"龙祥街道"},{"code":"440507009","name":"外砂街道"},{"code":"440507010","name":"龙华街道"},{"code":"440507011","name":"新溪街道"},{"code":"440507012","name":"新海街道"},{"code":"440507013","name":"龙腾街道"}]},{"code":"440511","name":"金平区","children":[{"code":"440511001","name":"石炮台街道"},{"code":"440511002","name":"金砂街道"},{"code":"440511004","name":"东方街道"},{"code":"440511005","name":"大华街道"},{"code":"440511007","name":"光华街道"},{"code":"440511009","name":"广厦街道"},{"code":"440511013","name":"岐山街道"},{"code":"440511015","name":"鮀莲街道"},{"code":"440511016","name":"鮀江街道"},{"code":"440511017","name":"月浦街道"},{"code":"440511018","name":"小公园街道"},{"code":"440511019","name":"金东街道"}]},{"code":"440512","name":"濠江区","children":[{"code":"440512001","name":"达濠街道"},{"code":"440512002","name":"马窖街道"},{"code":"440512003","name":"礐石街道"},{"code":"440512004","name":"广澳街道"},{"code":"440512005","name":"滨海街道"},{"code":"440512006","name":"河浦街道"},{"code":"440512007","name":"玉新街道"}]},{"code":"440513","name":"潮阳区","children":[{"code":"440513001","name":"文光街道"},{"code":"440513002","name":"棉北街道"},{"code":"440513003","name":"城南街道"},{"code":"440513004","name":"金浦街道"},{"code":"440513100","name":"海门镇"},{"code":"440513101","name":"河溪镇"},{"code":"440513102","name":"和平镇"},{"code":"440513103","name":"西胪镇"},{"code":"440513104","name":"关埠镇"},{"code":"440513106","name":"谷饶镇"},{"code":"440513107","name":"贵屿镇"},{"code":"440513108","name":"铜盂镇"},{"code":"440513110","name":"金灶镇"}]},{"code":"440514","name":"潮南区","children":[{"code":"440514001","name":"峡山街道"},{"code":"440514101","name":"井都镇"},{"code":"440514103","name":"成田镇"},{"code":"440514104","name":"司马浦镇"},{"code":"440514105","name":"陈店镇"},{"code":"440514106","name":"两英镇"},{"code":"440514107","name":"仙城镇"},{"code":"440514108","name":"胪岗镇"},{"code":"440514109","name":"红场镇"},{"code":"440514110","name":"雷岭镇"},{"code":"440514112","name":"陇田镇"}]},{"code":"440515","name":"澄海区","children":[{"code":"440515001","name":"凤翔街道"},{"code":"440515002","name":"广益街道"},{"code":"440515003","name":"澄华街道"},{"code":"440515100","name":"上华镇"},{"code":"440515101","name":"隆都镇"},{"code":"440515102","name":"莲下镇"},{"code":"440515103","name":"莲上镇"},{"code":"440515104","name":"溪南镇"},{"code":"440515105","name":"东里镇"},{"code":"440515106","name":"盐鸿镇"},{"code":"440515107","name":"莲华镇"}]},{"code":"440523","name":"南澳县","children":[{"code":"440523100","name":"后宅镇"},{"code":"440523101","name":"云澳镇"},{"code":"440523102","name":"深澳镇"}]}]},{"code":"4406","name":"佛山市","children":[{"code":"440604","name":"禅城区","children":[{"code":"440604010","name":"石湾镇街道"},{"code":"440604011","name":"张槎街道"},{"code":"440604012","name":"祖庙街道"},{"code":"440604100","name":"南庄镇"}]},{"code":"440605","name":"南海区","children":[{"code":"440605011","name":"桂城街道"},{"code":"440605121","name":"九江镇"},{"code":"440605122","name":"西樵镇"},{"code":"440605123","name":"丹灶镇"},{"code":"440605124","name":"狮山镇"},{"code":"440605125","name":"大沥镇"},{"code":"440605126","name":"里水镇"}]},{"code":"440606","name":"顺德区","children":[{"code":"440606003","name":"伦教街道"},{"code":"440606004","name":"勒流街道"},{"code":"440606005","name":"大良街道"},{"code":"440606006","name":"容桂街道"},{"code":"440606101","name":"陈村镇"},{"code":"440606102","name":"北滘镇"},{"code":"440606103","name":"乐从镇"},{"code":"440606104","name":"龙江镇"},{"code":"440606105","name":"杏坛镇"},{"code":"440606106","name":"均安镇"}]},{"code":"440607","name":"三水区","children":[{"code":"440607001","name":"西南街道"},{"code":"440607004","name":"云东海街道"},{"code":"440607101","name":"大塘镇"},{"code":"440607103","name":"乐平镇"},{"code":"440607104","name":"白坭镇"},{"code":"440607105","name":"芦苞镇"},{"code":"440607106","name":"南山镇"},{"code":"440607400","name":"省三水劳教所"},{"code":"440607401","name":"省南丰劳教所"},{"code":"440607402","name":"省女子劳教所"},{"code":"440607403","name":"省第二戒毒劳教所"},{"code":"440607404","name":"广州军区三水农场"}]},{"code":"440608","name":"高明区","children":[{"code":"440608004","name":"荷城街道"},{"code":"440608106","name":"杨和镇"},{"code":"440608107","name":"明城镇"},{"code":"440608108","name":"更合镇"},{"code":"440608400","name":"高明监狱"},{"code":"440608401","name":"云勇林场"},{"code":"440608402","name":"对川茶场"},{"code":"440608403","name":"佛山监狱"}]}]},{"code":"4407","name":"江门市","children":[{"code":"440703","name":"蓬江区","children":[{"code":"440703002","name":"白沙街道"},{"code":"440703005","name":"潮连街道"},{"code":"440703006","name":"环市街道"},{"code":"440703101","name":"棠下镇"},{"code":"440703102","name":"荷塘镇"},{"code":"440703103","name":"杜阮镇"}]},{"code":"440704","name":"江海区","children":[{"code":"440704001","name":"江南街道"},{"code":"440704004","name":"外海街道"},{"code":"440704005","name":"礼乐街道"}]},{"code":"440705","name":"新会区","children":[{"code":"440705001","name":"会城街道"},{"code":"440705101","name":"大泽镇"},{"code":"440705102","name":"司前镇"},{"code":"440705103","name":"罗坑镇"},{"code":"440705104","name":"双水镇"},{"code":"440705105","name":"崖门镇"},{"code":"440705106","name":"沙堆镇"},{"code":"440705107","name":"古井镇"},{"code":"440705108","name":"三江镇"},{"code":"440705109","name":"睦洲镇"},{"code":"440705110","name":"大鳌镇"},{"code":"440705450","name":"圭峰区"},{"code":"440705451","name":"银湖湾"},{"code":"440705452","name":"银湖湾滨海新区"},{"code":"440705453","name":"工业园区"},{"code":"440705470","name":"新会经济开发区"}]},{"code":"440781","name":"台山市","children":[{"code":"440781001","name":"台城街道"},{"code":"440781100","name":"大江镇"},{"code":"440781101","name":"水步镇"},{"code":"440781102","name":"四九镇"},{"code":"440781103","name":"白沙镇"},{"code":"440781104","name":"三合镇"},{"code":"440781105","name":"冲蒌镇"},{"code":"440781106","name":"斗山镇"},{"code":"440781107","name":"都斛镇"},{"code":"440781108","name":"赤溪镇"},{"code":"440781109","name":"端芬镇"},{"code":"440781110","name":"广海镇"},{"code":"440781111","name":"海宴镇"},{"code":"440781112","name":"汶村镇"},{"code":"440781113","name":"深井镇"},{"code":"440781114","name":"北陡镇"},{"code":"440781115","name":"川岛镇"}]},{"code":"440783","name":"开平市","children":[{"code":"440783001","name":"三埠街道"},{"code":"440783002","name":"长沙街道"},{"code":"440783103","name":"沙塘镇"},{"code":"440783104","name":"苍城镇"},{"code":"440783105","name":"龙胜镇"},{"code":"440783106","name":"大沙镇"},{"code":"440783107","name":"马冈镇"},{"code":"440783108","name":"塘口镇"},{"code":"440783109","name":"赤坎镇"},{"code":"440783110","name":"百合镇"},{"code":"440783111","name":"蚬冈镇"},{"code":"440783112","name":"金鸡镇"},{"code":"440783115","name":"月山镇"},{"code":"440783116","name":"赤水镇"},{"code":"440783117","name":"水口镇"},{"code":"440783400","name":"翠山湖新区"}]},{"code":"440784","name":"鹤山市","children":[{"code":"440784001","name":"沙坪街道"},{"code":"440784101","name":"龙口镇"},{"code":"440784102","name":"雅瑶镇"},{"code":"440784103","name":"古劳镇"},{"code":"440784104","name":"桃源镇"},{"code":"440784105","name":"鹤城镇"},{"code":"440784106","name":"共和镇"},{"code":"440784107","name":"址山镇"},{"code":"440784108","name":"宅梧镇"},{"code":"440784112","name":"双合镇"},{"code":"440784401","name":"广东省江门监狱"},{"code":"440784402","name":"江门市四堡林场"}]},{"code":"440785","name":"恩平市","children":[{"code":"440785001","name":"恩城街道"},{"code":"440785100","name":"横陂镇"},{"code":"440785101","name":"圣堂镇"},{"code":"440785102","name":"良西镇"},{"code":"440785103","name":"沙湖镇"},{"code":"440785104","name":"牛江镇"},{"code":"440785105","name":"君堂镇"},{"code":"440785106","name":"大田镇"},{"code":"440785107","name":"那吉镇"},{"code":"440785108","name":"大槐镇"},{"code":"440785109","name":"东成镇"},{"code":"440785400","name":"恩平园区管委会"}]}]},{"code":"4408","name":"湛江市","children":[{"code":"440802","name":"赤坎区","children":[{"code":"440802001","name":"中华街道"},{"code":"440802002","name":"寸金街道"},{"code":"440802003","name":"民主街道"},{"code":"440802004","name":"中山街道"},{"code":"440802005","name":"沙湾街道"},{"code":"440802006","name":"调顺街道"},{"code":"440802007","name":"南桥街道"},{"code":"440802008","name":"北桥街道"}]},{"code":"440803","name":"霞山区","children":[{"code":"440803001","name":"解放街道"},{"code":"440803002","name":"爱国街道"},{"code":"440803003","name":"工农街道"},{"code":"440803004","name":"友谊街道"},{"code":"440803005","name":"新兴街道"},{"code":"440803006","name":"海滨街道"},{"code":"440803009","name":"建设街道"},{"code":"440803010","name":"东新街道"},{"code":"440803011","name":"新园街道"},{"code":"440803012","name":"海头街道"},{"code":"440803070","name":"泉庄街道"},{"code":"440803071","name":"乐华街道"}]},{"code":"440804","name":"坡头区","children":[{"code":"440804001","name":"南调街道"},{"code":"440804002","name":"麻斜街道"},{"code":"440804100","name":"南三镇"},{"code":"440804101","name":"坡头镇"},{"code":"440804102","name":"乾塘镇"},{"code":"440804103","name":"龙头镇"},{"code":"440804104","name":"官渡镇"},{"code":"440804401","name":"湛江市坡头区官渡工业园"}]},{"code":"440811","name":"麻章区","children":[{"code":"440811070","name":"东山街道"},{"code":"440811071","name":"东简街道"},{"code":"440811072","name":"民安街道"},{"code":"440811100","name":"麻章镇"},{"code":"440811101","name":"太平镇"},{"code":"440811102","name":"湖光镇"},{"code":"440811173","name":"硇洲镇"},{"code":"440811450","name":"湖光农场"}]},{"code":"440823","name":"遂溪县","children":[{"code":"440823100","name":"遂城镇"},{"code":"440823101","name":"黄略镇"},{"code":"440823102","name":"洋青镇"},{"code":"440823103","name":"界炮镇"},{"code":"440823104","name":"乐民镇"},{"code":"440823105","name":"江洪镇"},{"code":"440823106","name":"杨柑镇"},{"code":"440823107","name":"城月镇"},{"code":"440823108","name":"乌塘镇"},{"code":"440823109","name":"建新镇"},{"code":"440823110","name":"岭北镇"},{"code":"440823111","name":"北坡镇"},{"code":"440823112","name":"港门镇"},{"code":"440823113","name":"草潭镇"},{"code":"440823114","name":"河头镇"}]},{"code":"440825","name":"徐闻县","children":[{"code":"440825001","name":"徐城街道"},{"code":"440825102","name":"迈陈镇"},{"code":"440825103","name":"海安镇"},{"code":"440825104","name":"曲界镇"},{"code":"440825105","name":"前山镇"},{"code":"440825106","name":"西连镇"},{"code":"440825107","name":"下桥镇"},{"code":"440825108","name":"龙塘镇"},{"code":"440825109","name":"下洋镇"},{"code":"440825110","name":"锦和镇"},{"code":"440825111","name":"和安镇"},{"code":"440825112","name":"新寮镇"},{"code":"440825113","name":"南山镇"},{"code":"440825201","name":"城北乡"},{"code":"440825204","name":"角尾乡"}]},{"code":"440881","name":"廉江市","children":[{"code":"440881001","name":"罗州街道"},{"code":"440881002","name":"城南街道"},{"code":"440881003","name":"城北街道"},{"code":"440881101","name":"石城镇"},{"code":"440881102","name":"新民镇"},{"code":"440881103","name":"吉水镇"},{"code":"440881104","name":"河唇镇"},{"code":"440881105","name":"石角镇"},{"code":"440881106","name":"良垌镇"},{"code":"440881107","name":"横山镇"},{"code":"440881108","name":"安铺镇"},{"code":"440881109","name":"营仔镇"},{"code":"440881110","name":"青平镇"},{"code":"440881111","name":"车板镇"},{"code":"440881112","name":"高桥镇"},{"code":"440881113","name":"石岭镇"},{"code":"440881114","name":"雅塘镇"},{"code":"440881115","name":"石颈镇"},{"code":"440881116","name":"长山镇"},{"code":"440881117","name":"塘蓬镇"},{"code":"440881118","name":"和寮镇"},{"code":"440881401","name":"九洲江开发区"}]},{"code":"440882","name":"雷州市","children":[{"code":"440882001","name":"雷城街道"},{"code":"440882002","name":"西湖街道"},{"code":"440882003","name":"新城街道"},{"code":"440882100","name":"白沙镇"},{"code":"440882101","name":"沈塘镇"},{"code":"440882102","name":"客路镇"},{"code":"440882103","name":"杨家镇"},{"code":"440882104","name":"唐家镇"},{"code":"440882105","name":"企水镇"},{"code":"440882106","name":"纪家镇"},{"code":"440882107","name":"松竹镇"},{"code":"440882108","name":"南兴镇"},{"code":"440882109","name":"雷高镇"},{"code":"440882110","name":"东里镇"},{"code":"440882111","name":"调风镇"},{"code":"440882112","name":"龙门镇"},{"code":"440882113","name":"英利镇"},{"code":"440882114","name":"北和镇"},{"code":"440882115","name":"乌石镇"},{"code":"440882116","name":"覃斗镇"},{"code":"440882117","name":"附城镇"},{"code":"440882450","name":"湛江奋勇高新技术产业开发区"}]},{"code":"440883","name":"吴川市","children":[{"code":"440883001","name":"梅菉街道"},{"code":"440883002","name":"塘尾街道"},{"code":"440883003","name":"大山江街道"},{"code":"440883004","name":"博铺街道"},{"code":"440883005","name":"海滨街道"},{"code":"440883100","name":"浅水镇"},{"code":"440883101","name":"长岐镇"},{"code":"440883102","name":"覃巴镇"},{"code":"440883103","name":"王村港镇"},{"code":"440883104","name":"振文镇"},{"code":"440883105","name":"樟铺镇"},{"code":"440883106","name":"吴阳镇"},{"code":"440883107","name":"塘㙍镇"},{"code":"440883109","name":"黄坡镇"},{"code":"440883111","name":"兰石镇"}]}]},{"code":"4409","name":"茂名市","children":[{"code":"440902","name":"茂南区","children":[{"code":"440902001","name":"红旗街道"},{"code":"440902002","name":"河西街道"},{"code":"440902003","name":"河东街道"},{"code":"440902004","name":"露天矿街道"},{"code":"440902005","name":"新华街道"},{"code":"440902006","name":"官渡街道"},{"code":"440902007","name":"站前街道"},{"code":"440902008","name":"城南街道"},{"code":"440902100","name":"金塘镇"},{"code":"440902101","name":"公馆镇"},{"code":"440902102","name":"新坡镇"},{"code":"440902103","name":"镇盛镇"},{"code":"440902104","name":"鳌头镇"},{"code":"440902105","name":"袂花镇"},{"code":"440902106","name":"高山镇"},{"code":"440902107","name":"山阁镇"},{"code":"440902108","name":"羊角镇"}]},{"code":"440904","name":"电白区","children":[{"code":"440904001","name":"南海街道"},{"code":"440904002","name":"高地街道"},{"code":"440904003","name":"水东街道"},{"code":"440904004","name":"电海街道"},{"code":"440904005","name":"陈村街道"},{"code":"440904100","name":"马踏镇"},{"code":"440904101","name":"岭门镇"},{"code":"440904102","name":"坡心镇"},{"code":"440904103","name":"七迳镇"},{"code":"440904104","name":"树仔镇"},{"code":"440904105","name":"沙院镇"},{"code":"440904106","name":"麻岗镇"},{"code":"440904107","name":"旦场镇"},{"code":"440904109","name":"小良镇"},{"code":"440904115","name":"霞洞镇"},{"code":"440904116","name":"观珠镇"},{"code":"440904117","name":"沙琅镇"},{"code":"440904118","name":"黄岭镇"},{"code":"440904119","name":"望夫镇"},{"code":"440904120","name":"罗坑镇"},{"code":"440904121","name":"那霍镇"},{"code":"440904125","name":"博贺镇"},{"code":"440904126","name":"林头镇"},{"code":"440904127","name":"电城镇"},{"code":"440904451","name":"曙光农场"},{"code":"440904452","name":"水丰农场"},{"code":"440904453","name":"新华农场"},{"code":"440904454","name":"电白盐场"}]},{"code":"440981","name":"高州市","children":[{"code":"440981002","name":"石仔岭街道"},{"code":"440981003","name":"山美街道"},{"code":"440981006","name":"金山街道"},{"code":"440981007","name":"潘州街道"},{"code":"440981008","name":"宝光街道"},{"code":"440981100","name":"谢鸡镇"},{"code":"440981101","name":"新垌镇"},{"code":"440981102","name":"云潭镇"},{"code":"440981103","name":"分界镇"},{"code":"440981104","name":"根子镇"},{"code":"440981105","name":"泗水镇"},{"code":"440981107","name":"镇江镇"},{"code":"440981109","name":"沙田镇"},{"code":"440981110","name":"南塘镇"},{"code":"440981111","name":"荷花镇"},{"code":"440981112","name":"石板镇"},{"code":"440981115","name":"大井镇"},{"code":"440981116","name":"潭头镇"},{"code":"440981119","name":"大坡镇"},{"code":"440981120","name":"平山镇"},{"code":"440981121","name":"深镇镇"},{"code":"440981122","name":"马贵镇"},{"code":"440981123","name":"古丁镇"},{"code":"440981124","name":"曹江镇"},{"code":"440981126","name":"荷塘镇"},{"code":"440981127","name":"石鼓镇"},{"code":"440981128","name":"东岸镇"},{"code":"440981129","name":"长坡镇"},{"code":"440981450","name":"团结农场"},{"code":"440981451","name":"胜利农场"},{"code":"440981452","name":"火星农场"}]},{"code":"440982","name":"化州市","children":[{"code":"440982001","name":"河西街道"},{"code":"440982002","name":"东山街道"},{"code":"440982003","name":"下郭街道"},{"code":"440982004","name":"南盛街道"},{"code":"440982005","name":"石湾街道"},{"code":"440982006","name":"鉴江街道"},{"code":"440982100","name":"长岐镇"},{"code":"440982101","name":"同庆镇"},{"code":"440982102","name":"杨梅镇"},{"code":"440982103","name":"良光镇"},{"code":"440982104","name":"笪桥镇"},{"code":"440982106","name":"丽岗镇"},{"code":"440982107","name":"新安镇"},{"code":"440982108","name":"官桥镇"},{"code":"440982110","name":"林尘镇"},{"code":"440982112","name":"合江镇"},{"code":"440982113","name":"那务镇"},{"code":"440982114","name":"播扬镇"},{"code":"440982115","name":"宝圩镇"},{"code":"440982116","name":"平定镇"},{"code":"440982117","name":"文楼镇"},{"code":"440982118","name":"江湖镇"},{"code":"440982120","name":"中垌镇"},{"code":"440982401","name":"新时代农场"},{"code":"440982402","name":"新华农场"},{"code":"440982403","name":"和平农场"},{"code":"440982404","name":"红阳农场"},{"code":"440982405","name":"红峰农场"},{"code":"440982406","name":"建设农场"},{"code":"440982407","name":"石滩农场"}]},{"code":"440983","name":"信宜市","children":[{"code":"440983001","name":"东镇街道"},{"code":"440983101","name":"镇隆镇"},{"code":"440983102","name":"水口镇"},{"code":"440983105","name":"丁堡镇"},{"code":"440983106","name":"池洞镇"},{"code":"440983112","name":"贵子镇"},{"code":"440983113","name":"怀乡镇"},{"code":"440983114","name":"茶山镇"},{"code":"440983115","name":"洪冠镇"},{"code":"440983116","name":"白石镇"},{"code":"440983117","name":"大成镇"},{"code":"440983118","name":"钱排镇"},{"code":"440983119","name":"合水镇"},{"code":"440983120","name":"新宝镇"},{"code":"440983121","name":"平塘镇"},{"code":"440983122","name":"思贺镇"},{"code":"440983123","name":"金垌镇"},{"code":"440983124","name":"朱砂镇"},{"code":"440983125","name":"北界镇"},{"code":"440983400","name":"信宜市国营红旗农场"}]}]},{"code":"4412","name":"肇庆市","children":[{"code":"441202","name":"端州区","children":[{"code":"441202001","name":"端州区城东街道"},{"code":"441202003","name":"端州区城西街道"},{"code":"441202005","name":"端州区黄岗街道"},{"code":"441202006","name":"端州区睦岗街道"}]},{"code":"441203","name":"鼎湖区","children":[{"code":"441203001","name":"坑口街道"},{"code":"441203002","name":"桂城街道"},{"code":"441203003","name":"广利街道"},{"code":"441203101","name":"永安镇"},{"code":"441203102","name":"沙浦镇"},{"code":"441203103","name":"凤凰镇"},{"code":"441203104","name":"莲花镇"}]},{"code":"441204","name":"高要区","children":[{"code":"441204001","name":"南岸街道"},{"code":"441204100","name":"河台镇"},{"code":"441204101","name":"乐城镇"},{"code":"441204102","name":"水南镇"},{"code":"441204103","name":"禄步镇"},{"code":"441204105","name":"小湘镇"},{"code":"441204106","name":"大湾镇"},{"code":"441204107","name":"新桥镇"},{"code":"441204108","name":"白诸镇"},{"code":"441204109","name":"莲塘镇"},{"code":"441204110","name":"活道镇"},{"code":"441204111","name":"蛟塘镇"},{"code":"441204112","name":"回龙镇"},{"code":"441204113","name":"白土镇"},{"code":"441204114","name":"金渡镇"},{"code":"441204115","name":"金利镇"},{"code":"441204116","name":"蚬岗镇"}]},{"code":"441223","name":"广宁县","children":[{"code":"441223001","name":"南街街道"},{"code":"441223100","name":"排沙镇"},{"code":"441223102","name":"潭布镇"},{"code":"441223103","name":"江屯镇"},{"code":"441223105","name":"螺岗镇"},{"code":"441223106","name":"北市镇"},{"code":"441223107","name":"坑口镇"},{"code":"441223108","name":"赤坑镇"},{"code":"441223110","name":"宾亨镇"},{"code":"441223111","name":"五和镇"},{"code":"441223112","name":"横山镇"},{"code":"441223113","name":"木格镇"},{"code":"441223114","name":"石咀镇"},{"code":"441223115","name":"古水镇"},{"code":"441223116","name":"洲仔镇"}]},{"code":"441224","name":"怀集县","children":[{"code":"441224001","name":"怀城街道"},{"code":"441224002","name":"幸福街道"},{"code":"441224102","name":"坳仔镇"},{"code":"441224103","name":"汶朗镇"},{"code":"441224104","name":"甘洒镇"},{"code":"441224105","name":"凤岗镇"},{"code":"441224106","name":"洽水镇"},{"code":"441224107","name":"梁村镇"},{"code":"441224108","name":"大岗镇"},{"code":"441224109","name":"岗坪镇"},{"code":"441224110","name":"冷坑镇"},{"code":"441224111","name":"马宁镇"},{"code":"441224112","name":"蓝钟镇"},{"code":"441224113","name":"永固镇"},{"code":"441224114","name":"诗洞镇"},{"code":"441224115","name":"桥头镇"},{"code":"441224116","name":"中洲镇"},{"code":"441224118","name":"连麦镇"},{"code":"441224200","name":"下帅壮族瑶族乡"}]},{"code":"441225","name":"封开县","children":[{"code":"441225001","name":"江口街道"},{"code":"441225101","name":"江川镇"},{"code":"441225102","name":"白垢镇"},{"code":"441225103","name":"大洲镇"},{"code":"441225104","name":"渔涝镇"},{"code":"441225105","name":"河儿口镇"},{"code":"441225106","name":"连都镇"},{"code":"441225107","name":"杏花镇"},{"code":"441225108","name":"罗董镇"},{"code":"441225109","name":"长岗镇"},{"code":"441225110","name":"平凤镇"},{"code":"441225111","name":"南丰镇"},{"code":"441225112","name":"大玉口镇"},{"code":"441225113","name":"都平镇"},{"code":"441225114","name":"金装镇"},{"code":"441225115","name":"长安镇"}]},{"code":"441226","name":"德庆县","children":[{"code":"441226001","name":"德城街道"},{"code":"441226101","name":"新圩镇"},{"code":"441226102","name":"回龙镇"},{"code":"441226103","name":"官圩镇"},{"code":"441226105","name":"马圩镇"},{"code":"441226106","name":"高良镇"},{"code":"441226107","name":"莫村镇"},{"code":"441226109","name":"永丰镇"},{"code":"441226110","name":"武垄镇"},{"code":"441226111","name":"播植镇"},{"code":"441226112","name":"凤村镇"},{"code":"441226113","name":"悦城镇"},{"code":"441226114","name":"九市镇"}]},{"code":"441284","name":"四会市","children":[{"code":"441284001","name":"城中街道"},{"code":"441284002","name":"东城街道"},{"code":"441284003","name":"贞山街道"},{"code":"441284100","name":"龙甫镇"},{"code":"441284101","name":"地豆镇"},{"code":"441284102","name":"威整镇"},{"code":"441284103","name":"罗源镇"},{"code":"441284104","name":"迳口镇"},{"code":"441284105","name":"大沙镇"},{"code":"441284107","name":"石狗镇"},{"code":"441284108","name":"黄田镇"},{"code":"441284110","name":"江谷镇"},{"code":"441284113","name":"下茆镇"},{"code":"441284400","name":"广东省济广监狱"},{"code":"441284450","name":"肇庆高新技术产业开发区"}]}]},{"code":"4413","name":"惠州市","children":[{"code":"441302","name":"惠城区","children":[{"code":"441302001","name":"桥东街道"},{"code":"441302002","name":"桥西街道"},{"code":"441302003","name":"江南街道"},{"code":"441302004","name":"江北街道"},{"code":"441302005","name":"龙丰街道"},{"code":"441302006","name":"河南岸街道"},{"code":"441302007","name":"惠环街道"},{"code":"441302008","name":"陈江街道"},{"code":"441302009","name":"水口街道"},{"code":"441302010","name":"小金口街道"},{"code":"441302100","name":"汝湖镇"},{"code":"441302103","name":"三栋镇"},{"code":"441302106","name":"潼湖镇"},{"code":"441302107","name":"沥林镇"},{"code":"441302109","name":"马安镇"},{"code":"441302110","name":"横沥镇"},{"code":"441302112","name":"芦洲镇"},{"code":"441302114","name":"潼侨镇"},{"code":"441302401","name":"东江高新科技产业园"},{"code":"441302402","name":"惠南高新科技产业园"},{"code":"441302450","name":"惠州市林场"}]},{"code":"441303","name":"惠阳区","children":[{"code":"441303001","name":"淡水街道"},{"code":"441303002","name":"秋长街道"},{"code":"441303003","name":"三和街道"},{"code":"441303006","name":"大亚湾澳头街道"},{"code":"441303007","name":"大亚湾霞涌街道"},{"code":"441303008","name":"大亚湾西区街道"},{"code":"441303101","name":"沙田镇"},{"code":"441303103","name":"新圩镇"},{"code":"441303104","name":"镇隆镇"},{"code":"441303108","name":"永湖镇"},{"code":"441303109","name":"良井镇"},{"code":"441303110","name":"平潭镇"}]},{"code":"441322","name":"博罗县","children":[{"code":"441322001","name":"罗阳街道"},{"code":"441322002","name":"龙溪街道"},{"code":"441322100","name":"石坝镇"},{"code":"441322102","name":"麻陂镇"},{"code":"441322103","name":"观音阁镇"},{"code":"441322104","name":"公庄镇"},{"code":"441322105","name":"杨村镇"},{"code":"441322106","name":"柏塘镇"},{"code":"441322108","name":"泰美镇"},{"code":"441322113","name":"湖镇镇"},{"code":"441322115","name":"长宁镇"},{"code":"441322116","name":"福田镇"},{"code":"441322117","name":"龙华镇"},{"code":"441322119","name":"园洲镇"},{"code":"441322121","name":"石湾镇"},{"code":"441322122","name":"杨侨镇"},{"code":"441322123","name":"横河镇"},{"code":"441322570","name":"罗浮山管委会"}]},{"code":"441323","name":"惠东县","children":[{"code":"441323001","name":"平山街道"},{"code":"441323002","name":"大岭街道"},{"code":"441323102","name":"白花镇"},{"code":"441323103","name":"梁化镇"},{"code":"441323104","name":"稔山镇"},{"code":"441323105","name":"铁涌镇"},{"code":"441323106","name":"平海镇"},{"code":"441323109","name":"吉隆镇"},{"code":"441323110","name":"黄埠镇"},{"code":"441323113","name":"多祝镇"},{"code":"441323115","name":"安墩镇"},{"code":"441323118","name":"高潭镇"},{"code":"441323120","name":"宝口镇"},{"code":"441323121","name":"白盆珠镇"},{"code":"441323450","name":"广东省惠州市国营惠东梁化林场"},{"code":"441323451","name":"广东省惠州市国营惠东九龙峰林场"},{"code":"441323452","name":"惠东县港口海龟湾自然保护区"},{"code":"441323453","name":"莲花山白盆珠省级自然保护区"},{"code":"441323454","name":"广东惠东古田省级自然保护区"},{"code":"441323455","name":"惠东县珠三角产业转移园"},{"code":"441323570","name":"巺寮滨海旅游度假区"}]},{"code":"441324","name":"龙门县","children":[{"code":"441324001","name":"龙城街道"},{"code":"441324002","name":"平陵街道"},{"code":"441324100","name":"麻榨镇"},{"code":"441324101","name":"永汉镇"},{"code":"441324115","name":"龙田镇"},{"code":"441324116","name":"龙潭镇"},{"code":"441324117","name":"地派镇"},{"code":"441324118","name":"龙华镇"},{"code":"441324119","name":"龙江镇"},{"code":"441324200","name":"蓝田瑶族乡"},{"code":"441324453","name":"龙门县密溪林场"},{"code":"441324570","name":"南昆山生态旅游区"}]}]},{"code":"4414","name":"梅州市","children":[{"code":"441402","name":"梅江区","children":[{"code":"441402004","name":"江南街道"},{"code":"441402006","name":"金山街道"},{"code":"441402007","name":"西郊街道"},{"code":"441402102","name":"三角镇"},{"code":"441402103","name":"长沙镇"},{"code":"441402105","name":"城北镇"},{"code":"441402106","name":"西阳镇"}]},{"code":"441403","name":"梅县区","children":[{"code":"441403001","name":"新城街道"},{"code":"441403101","name":"城东镇"},{"code":"441403102","name":"石扇镇"},{"code":"441403103","name":"梅西镇"},{"code":"441403104","name":"大坪镇"},{"code":"441403105","name":"石坑镇"},{"code":"441403109","name":"水车镇"},{"code":"441403110","name":"梅南镇"},{"code":"441403113","name":"丙村镇"},{"code":"441403115","name":"白渡镇"},{"code":"441403116","name":"松源镇"},{"code":"441403117","name":"隆文镇"},{"code":"441403118","name":"桃尧镇"},{"code":"441403126","name":"畲江镇"},{"code":"441403129","name":"雁洋镇"},{"code":"441403130","name":"松口镇"},{"code":"441403131","name":"南口镇"},{"code":"441403132","name":"程江镇"},{"code":"441403133","name":"扶大镇"},{"code":"441403500","name":"梅西水库"}]},{"code":"441422","name":"大埔县","children":[{"code":"441422100","name":"湖寮镇"},{"code":"441422103","name":"青溪镇"},{"code":"441422105","name":"三河镇"},{"code":"441422108","name":"银江镇"},{"code":"441422109","name":"洲瑞镇"},{"code":"441422112","name":"光德镇"},{"code":"441422113","name":"桃源镇"},{"code":"441422116","name":"百侯镇"},{"code":"441422117","name":"大东镇"},{"code":"441422121","name":"大麻镇"},{"code":"441422122","name":"枫朗镇"},{"code":"441422123","name":"茶阳镇"},{"code":"441422124","name":"高陂镇"},{"code":"441422125","name":"西河镇"},{"code":"441422400","name":"丰溪林场"},{"code":"441422401","name":"洲瑞林场"},{"code":"441422402","name":"大埔林场"}]},{"code":"441423","name":"丰顺县","children":[{"code":"441423103","name":"北斗镇"},{"code":"441423104","name":"汤西镇"},{"code":"441423105","name":"汤南镇"},{"code":"441423106","name":"埔寨镇"},{"code":"441423110","name":"建桥镇"},{"code":"441423111","name":"龙岗镇"},{"code":"441423112","name":"潘田镇"},{"code":"441423114","name":"黄金镇"},{"code":"441423122","name":"小胜镇"},{"code":"441423123","name":"砂田镇"},{"code":"441423124","name":"八乡山镇"},{"code":"441423125","name":"丰良镇"},{"code":"441423126","name":"潭江镇"},{"code":"441423127","name":"汤坑镇"},{"code":"441423128","name":"留隍镇"},{"code":"441423129","name":"大龙华镇"},{"code":"441423450","name":"埔寨农场"}]},{"code":"441424","name":"五华县","children":[{"code":"441424103","name":"转水镇"},{"code":"441424108","name":"潭下镇"},{"code":"441424117","name":"郭田镇"},{"code":"441424118","name":"双华镇"},{"code":"441424125","name":"梅林镇"},{"code":"441424126","name":"华阳镇"},{"code":"441424130","name":"华城镇"},{"code":"441424131","name":"周江镇"},{"code":"441424134","name":"水寨镇"},{"code":"441424135","name":"河东镇"},{"code":"441424136","name":"岐岭镇"},{"code":"441424137","name":"长布镇"},{"code":"441424138","name":"横陂镇"},{"code":"441424139","name":"安流镇"},{"code":"441424140","name":"棉洋镇"},{"code":"441424141","name":"龙村镇"}]},{"code":"441426","name":"平远县","children":[{"code":"441426101","name":"石正镇"},{"code":"441426104","name":"八尺镇"},{"code":"441426105","name":"差干镇"},{"code":"441426107","name":"河头镇"},{"code":"441426108","name":"中行镇"},{"code":"441426109","name":"上举镇"},{"code":"441426110","name":"泗水镇"},{"code":"441426114","name":"长田镇"},{"code":"441426115","name":"热柘镇"},{"code":"441426117","name":"东石镇"},{"code":"441426118","name":"仁居镇"},{"code":"441426119","name":"大柘镇"}]},{"code":"441427","name":"蕉岭县","children":[{"code":"441427103","name":"三圳镇"},{"code":"441427106","name":"文福镇"},{"code":"441427107","name":"广福镇"},{"code":"441427112","name":"新铺镇"},{"code":"441427113","name":"蓝坊镇"},{"code":"441427114","name":"南礤镇"},{"code":"441427115","name":"蕉城镇"},{"code":"441427116","name":"长潭镇"},{"code":"441427450","name":"华侨农场"}]},{"code":"441481","name":"兴宁市","children":[{"code":"441481001","name":"兴田街道"},{"code":"441481002","name":"福兴街道"},{"code":"441481003","name":"宁新街道"},{"code":"441481107","name":"永和镇"},{"code":"441481111","name":"新圩镇"},{"code":"441481115","name":"罗浮镇"},{"code":"441481116","name":"罗岗镇"},{"code":"441481117","name":"黄槐镇"},{"code":"441481123","name":"龙田镇"},{"code":"441481124","name":"石马镇"},{"code":"441481128","name":"宁中镇"},{"code":"441481129","name":"径南镇"},{"code":"441481130","name":"坭陂镇"},{"code":"441481131","name":"水口镇"},{"code":"441481132","name":"黄陂镇"},{"code":"441481133","name":"合水镇"},{"code":"441481134","name":"大坪镇"},{"code":"441481135","name":"叶塘镇"},{"code":"441481136","name":"新陂镇"},{"code":"441481137","name":"刁坊镇"}]}]},{"code":"4415","name":"汕尾市","children":[{"code":"441502","name":"城区","children":[{"code":"441502001","name":"新港街道"},{"code":"441502002","name":"香洲街道"},{"code":"441502003","name":"凤山街道"},{"code":"441502004","name":"田墘街道"},{"code":"441502005","name":"东洲街道"},{"code":"441502006","name":"遮浪街道"},{"code":"441502007","name":"马宫街道"},{"code":"441502100","name":"红草镇"},{"code":"441502102","name":"东涌镇"},{"code":"441502103","name":"捷胜镇"}]},{"code":"441521","name":"海丰县","children":[{"code":"441521101","name":"梅陇镇"},{"code":"441521102","name":"小漠镇"},{"code":"441521103","name":"鹅埠镇"},{"code":"441521104","name":"赤石镇"},{"code":"441521105","name":"鮜门镇"},{"code":"441521106","name":"联安镇"},{"code":"441521107","name":"陶河镇"},{"code":"441521108","name":"赤坑镇"},{"code":"441521109","name":"大湖镇"},{"code":"441521110","name":"可塘镇"},{"code":"441521112","name":"黄羌镇"},{"code":"441521113","name":"平东镇"},{"code":"441521115","name":"海城镇"},{"code":"441521118","name":"公平镇"},{"code":"441521119","name":"附城镇"},{"code":"441521120","name":"城东镇"}]},{"code":"441523","name":"陆河县","children":[{"code":"441523100","name":"河田镇"},{"code":"441523101","name":"水唇镇"},{"code":"441523102","name":"河口镇"},{"code":"441523103","name":"新田镇"},{"code":"441523104","name":"上护镇"},{"code":"441523105","name":"螺溪镇"},{"code":"441523106","name":"东坑镇"},{"code":"441523107","name":"南万镇"}]},{"code":"441581","name":"陆丰市","children":[{"code":"441581001","name":"东海街道"},{"code":"441581002","name":"河西街道"},{"code":"441581003","name":"城东街道"},{"code":"441581101","name":"甲子镇"},{"code":"441581102","name":"碣石镇"},{"code":"441581103","name":"湖东镇"},{"code":"441581104","name":"大安镇"},{"code":"441581105","name":"博美镇"},{"code":"441581106","name":"内湖镇"},{"code":"441581107","name":"南塘镇"},{"code":"441581108","name":"陂洋镇"},{"code":"441581109","name":"八万镇"},{"code":"441581110","name":"金厢镇"},{"code":"441581111","name":"潭西镇"},{"code":"441581112","name":"甲东镇"},{"code":"441581115","name":"河东镇"},{"code":"441581116","name":"上英镇"},{"code":"441581117","name":"桥冲镇"},{"code":"441581118","name":"甲西镇"},{"code":"441581119","name":"西南镇"},{"code":"441581400","name":"华侨管理区"},{"code":"441581450","name":"铜锣湖农场"},{"code":"441581451","name":"星都经济开发试验区"},{"code":"441581452","name":"大安农场"},{"code":"441581453","name":"罗经嶂林场"},{"code":"441581454","name":"湖东林场"},{"code":"441581455","name":"东海岸林场"},{"code":"441581456","name":"红岭林场"},{"code":"441581457","name":"畜牧果林场"}]}]},{"code":"4416","name":"河源市","children":[{"code":"441602","name":"源城区","children":[{"code":"441602001","name":"上城街道"},{"code":"441602002","name":"新江街道"},{"code":"441602003","name":"东埔街道"},{"code":"441602004","name":"源西街道"},{"code":"441602005","name":"高埔岗街道"},{"code":"441602006","name":"城东街道"},{"code":"441602100","name":"源南镇"},{"code":"441602101","name":"埔前镇"}]},{"code":"441621","name":"紫金县","children":[{"code":"441621100","name":"紫城镇"},{"code":"441621102","name":"龙窝镇"},{"code":"441621103","name":"九和镇"},{"code":"441621104","name":"上义镇"},{"code":"441621105","name":"蓝塘镇"},{"code":"441621106","name":"凤安镇"},{"code":"441621107","name":"义容镇"},{"code":"441621108","name":"古竹镇"},{"code":"441621109","name":"临江镇"},{"code":"441621110","name":"柏埔镇"},{"code":"441621111","name":"黄塘镇"},{"code":"441621112","name":"敬梓镇"},{"code":"441621114","name":"水墩镇"},{"code":"441621115","name":"南岭镇"},{"code":"441621116","name":"苏区镇"},{"code":"441621117","name":"瓦溪镇"},{"code":"441621118","name":"好义镇"},{"code":"441621119","name":"中坝镇"}]},{"code":"441622","name":"龙川县","children":[{"code":"441622100","name":"老隆镇"},{"code":"441622102","name":"义都镇"},{"code":"441622103","name":"佗城镇"},{"code":"441622104","name":"鹤市镇"},{"code":"441622105","name":"黄布镇"},{"code":"441622106","name":"紫市镇"},{"code":"441622107","name":"通衢镇"},{"code":"441622109","name":"登云镇"},{"code":"441622110","name":"丰稔镇"},{"code":"441622111","name":"四都镇"},{"code":"441622112","name":"铁场镇"},{"code":"441622114","name":"龙母镇"},{"code":"441622115","name":"田心镇"},{"code":"441622116","name":"黎咀镇"},{"code":"441622117","name":"黄石镇"},{"code":"441622118","name":"赤光镇"},{"code":"441622119","name":"廻龙镇"},{"code":"441622120","name":"新田镇"},{"code":"441622121","name":"车田镇"},{"code":"441622123","name":"岩镇镇"},{"code":"441622124","name":"麻布岗镇"},{"code":"441622125","name":"贝岭镇"},{"code":"441622126","name":"细坳镇"},{"code":"441622127","name":"上坪镇"}]},{"code":"441623","name":"连平县","children":[{"code":"441623100","name":"元善镇"},{"code":"441623101","name":"上坪镇"},{"code":"441623102","name":"内莞镇"},{"code":"441623104","name":"陂头镇"},{"code":"441623105","name":"溪山镇"},{"code":"441623107","name":"隆街镇"},{"code":"441623108","name":"田源镇"},{"code":"441623109","name":"油溪镇"},{"code":"441623110","name":"忠信镇"},{"code":"441623111","name":"高莞镇"},{"code":"441623113","name":"大湖镇"},{"code":"441623114","name":"三角镇"},{"code":"441623115","name":"绣缎镇"}]},{"code":"441624","name":"和平县","children":[{"code":"441624100","name":"阳明镇"},{"code":"441624101","name":"大坝镇"},{"code":"441624102","name":"长塘镇"},{"code":"441624103","name":"下车镇"},{"code":"441624104","name":"上陵镇"},{"code":"441624105","name":"优胜镇"},{"code":"441624106","name":"贝墩镇"},{"code":"441624107","name":"古寨镇"},{"code":"441624108","name":"彭寨镇"},{"code":"441624109","name":"合水镇"},{"code":"441624110","name":"公白镇"},{"code":"441624111","name":"青州镇"},{"code":"441624112","name":"浰源镇"},{"code":"441624113","name":"热水镇"},{"code":"441624114","name":"东水镇"},{"code":"441624115","name":"礼士镇"},{"code":"441624116","name":"林寨镇"}]},{"code":"441625","name":"东源县","children":[{"code":"441625100","name":"仙塘镇"},{"code":"441625101","name":"灯塔镇"},{"code":"441625102","name":"骆湖镇"},{"code":"441625103","name":"船塘镇"},{"code":"441625104","name":"顺天镇"},{"code":"441625105","name":"上莞镇"},{"code":"441625106","name":"曾田镇"},{"code":"441625107","name":"柳城镇"},{"code":"441625108","name":"义合镇"},{"code":"441625109","name":"蓝口镇"},{"code":"441625110","name":"黄田镇"},{"code":"441625111","name":"叶潭镇"},{"code":"441625112","name":"黄村镇"},{"code":"441625113","name":"康禾镇"},{"code":"441625114","name":"锡场镇"},{"code":"441625115","name":"新港镇"},{"code":"441625116","name":"双江镇"},{"code":"441625117","name":"涧头镇"},{"code":"441625121","name":"新回龙镇"},{"code":"441625122","name":"半江镇"},{"code":"441625200","name":"漳溪乡"}]}]},{"code":"4417","name":"阳江市","children":[{"code":"441702","name":"江城区","children":[{"code":"441702001","name":"南恩街道"},{"code":"441702002","name":"城南街道"},{"code":"441702003","name":"城北街道"},{"code":"441702004","name":"中洲街道"},{"code":"441702006","name":"城东街道"},{"code":"441702008","name":"岗列街道"},{"code":"441702009","name":"城西街道"},{"code":"441702011","name":"白沙街道"},{"code":"441702102","name":"埠场镇"},{"code":"441702103","name":"平冈镇"},{"code":"441702105","name":"闸坡镇"},{"code":"441702106","name":"双捷镇"},{"code":"441702401","name":"阳江林场罗琴分场"}]},{"code":"441704","name":"阳东区","children":[{"code":"441704100","name":"东城镇"},{"code":"441704101","name":"北惯镇"},{"code":"441704102","name":"那龙镇"},{"code":"441704103","name":"东平镇"},{"code":"441704104","name":"雅韶镇"},{"code":"441704105","name":"大沟镇"},{"code":"441704106","name":"新洲镇"},{"code":"441704107","name":"合山镇"},{"code":"441704108","name":"塘坪镇"},{"code":"441704109","name":"大八镇"},{"code":"441704110","name":"红丰镇"},{"code":"441704400","name":"阳江监狱"},{"code":"441704501","name":"阳江林场宝山分场"},{"code":"441704502","name":"阳江林场田畔分场"},{"code":"441704503","name":"阳东原种场"},{"code":"441704504","name":"阳东林场"},{"code":"441704505","name":"阳江林场东岸分场"}]},{"code":"441721","name":"阳西县","children":[{"code":"441721100","name":"织篢镇"},{"code":"441721101","name":"程村镇"},{"code":"441721102","name":"塘口镇"},{"code":"441721103","name":"上洋镇"},{"code":"441721104","name":"溪头镇"},{"code":"441721105","name":"沙扒镇"},{"code":"441721106","name":"儒洞镇"},{"code":"441721107","name":"新圩镇"},{"code":"441721502","name":"阳江林场儒洞分场"}]},{"code":"441781","name":"阳春市","children":[{"code":"441781001","name":"春城街道"},{"code":"441781002","name":"河西街道"},{"code":"441781101","name":"河朗镇"},{"code":"441781102","name":"松柏镇"},{"code":"441781103","name":"石望镇"},{"code":"441781105","name":"春湾镇"},{"code":"441781106","name":"合水镇"},{"code":"441781107","name":"陂面镇"},{"code":"441781108","name":"圭岗镇"},{"code":"441781109","name":"永宁镇"},{"code":"441781110","name":"马水镇"},{"code":"441781111","name":"岗美镇"},{"code":"441781112","name":"河口镇"},{"code":"441781113","name":"潭水镇"},{"code":"441781114","name":"三甲镇"},{"code":"441781116","name":"双窖镇"},{"code":"441781117","name":"八甲镇"},{"code":"441781403","name":"石录矿区"},{"code":"441781404","name":"花滩林场"},{"code":"441781405","name":"东湖林场"},{"code":"441781406","name":"河尾山林场"},{"code":"441781407","name":"南山矿"},{"code":"441781408","name":"阳春监狱"},{"code":"441781410","name":"硫铁矿"}]}]},{"code":"4418","name":"清远市","children":[{"code":"441802","name":"清城区","children":[{"code":"441802006","name":"凤城街道"},{"code":"441802007","name":"东城街道"},{"code":"441802008","name":"洲心街道"},{"code":"441802009","name":"横荷街道"},{"code":"441802103","name":"源潭镇"},{"code":"441802105","name":"龙塘镇"},{"code":"441802106","name":"石角镇"},{"code":"441802107","name":"飞来峡镇"},{"code":"441802400","name":"清远市高新技术产业开发区"},{"code":"441802450","name":"清远市国营银盏林场"}]},{"code":"441803","name":"清新区","children":[{"code":"441803102","name":"太和镇"},{"code":"441803104","name":"太平镇"},{"code":"441803105","name":"山塘镇"},{"code":"441803106","name":"三坑镇"},{"code":"441803112","name":"龙颈镇"},{"code":"441803113","name":"禾云镇"},{"code":"441803117","name":"浸潭镇"},{"code":"441803118","name":"石潭镇"},{"code":"441803450","name":"笔架林场"}]},{"code":"441821","name":"佛冈县","children":[{"code":"441821100","name":"石角镇"},{"code":"441821101","name":"水头镇"},{"code":"441821102","name":"汤塘镇"},{"code":"441821103","name":"龙山镇"},{"code":"441821104","name":"高岗镇"},{"code":"441821107","name":"迳头镇"},{"code":"441821400","name":"清远市羊角山林场"},{"code":"441821401","name":"广东佛冈观音山省级自然保护区"}]},{"code":"441823","name":"阳山县","children":[{"code":"441823100","name":"青莲镇"},{"code":"441823101","name":"江英镇"},{"code":"441823104","name":"杜步镇"},{"code":"441823105","name":"七拱镇"},{"code":"441823107","name":"太平镇"},{"code":"441823108","name":"杨梅镇"},{"code":"441823110","name":"大崀镇"},{"code":"441823111","name":"小江镇"},{"code":"441823113","name":"岭背镇"},{"code":"441823115","name":"黄坌镇"},{"code":"441823116","name":"黎埠镇"},{"code":"441823119","name":"阳城镇"},{"code":"441823201","name":"秤架瑶族乡"}]},{"code":"441825","name":"连山壮族瑶族自治县","children":[{"code":"441825100","name":"永和镇"},{"code":"441825104","name":"吉田镇"},{"code":"441825105","name":"太保镇"},{"code":"441825106","name":"禾洞镇"},{"code":"441825108","name":"福堂镇"},{"code":"441825109","name":"小三江镇"},{"code":"441825111","name":"上帅镇"},{"code":"441825450","name":"连山林场"},{"code":"441825451","name":"禾洞农林场"}]},{"code":"441826","name":"连南瑶族自治县","children":[{"code":"441826100","name":"三江镇"},{"code":"441826101","name":"大麦山镇"},{"code":"441826102","name":"寨岗镇"},{"code":"441826105","name":"三排镇"},{"code":"441826106","name":"涡水镇"},{"code":"441826108","name":"大坪镇"},{"code":"441826109","name":"香坪镇"}]},{"code":"441881","name":"英德市","children":[{"code":"441881001","name":"英城街道"},{"code":"441881101","name":"沙口镇"},{"code":"441881102","name":"望埠镇"},{"code":"441881103","name":"横石水镇"},{"code":"441881105","name":"桥头镇"},{"code":"441881106","name":"青塘镇"},{"code":"441881108","name":"白沙镇"},{"code":"441881109","name":"大站镇"},{"code":"441881110","name":"西牛镇"},{"code":"441881111","name":"九龙镇"},{"code":"441881112","name":"浛洸镇"},{"code":"441881114","name":"大湾镇"},{"code":"441881115","name":"石灰铺镇"},{"code":"441881116","name":"石牯塘镇"},{"code":"441881120","name":"下石太镇"},{"code":"441881124","name":"波罗镇"},{"code":"441881125","name":"横石塘镇"},{"code":"441881126","name":"大洞镇"},{"code":"441881129","name":"连江口镇"},{"code":"441881130","name":"黎溪镇"},{"code":"441881131","name":"水边镇"},{"code":"441881136","name":"英红镇"},{"code":"441881137","name":"东华镇"},{"code":"441881138","name":"黄花镇"}]},{"code":"441882","name":"连州市","children":[{"code":"441882100","name":"连州镇"},{"code":"441882101","name":"星子镇"},{"code":"441882102","name":"大路边镇"},{"code":"441882103","name":"龙坪镇"},{"code":"441882104","name":"西岸镇"},{"code":"441882105","name":"保安镇"},{"code":"441882106","name":"丰阳镇"},{"code":"441882107","name":"东陂镇"},{"code":"441882109","name":"九陂镇"},{"code":"441882118","name":"西江镇"},{"code":"441882200","name":"瑶安瑶族乡"},{"code":"441882201","name":"三水瑶族乡"}]}]},{"code":"4419","name":"东莞市","children":[{"code":"441900","name":"东莞市","children":[{"code":"441900003","name":"东城街道"},{"code":"441900004","name":"南城街道"},{"code":"441900005","name":"万江街道"},{"code":"441900006","name":"莞城街道"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖"},{"code":"441900402","name":"东莞港"},{"code":"441900403","name":"东莞生态园"},{"code":"441900404","name":"东莞滨海湾新区"}]}]},{"code":"4420","name":"中山市","children":[{"code":"442000","name":"中山市","children":[{"code":"442000001","name":"石岐街道"},{"code":"442000002","name":"东区街道"},{"code":"442000003","name":"中山港街道"},{"code":"442000004","name":"西区街道"},{"code":"442000005","name":"南区街道"},{"code":"442000006","name":"五桂山街道"},{"code":"442000007","name":"民众街道"},{"code":"442000008","name":"南朗街道"},{"code":"442000101","name":"黄圃镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"},{"code":"442000118","name":"小榄镇"}]}]},{"code":"4451","name":"潮州市","children":[{"code":"445102","name":"湘桥区","children":[{"code":"445102007","name":"桥东街道"},{"code":"445102008","name":"城西街道"},{"code":"445102009","name":"凤新街道"},{"code":"445102010","name":"太平街道"},{"code":"445102011","name":"西新街道"},{"code":"445102100","name":"意溪镇"},{"code":"445102111","name":"磷溪镇"},{"code":"445102112","name":"铁铺镇"},{"code":"445102113","name":"官塘镇"},{"code":"445102400","name":"红山林场"},{"code":"445102401","name":"开发区"},{"code":"445102402","name":"潮州市凤泉湖高新技术产业开发区"}]},{"code":"445103","name":"潮安区","children":[{"code":"445103100","name":"古巷镇"},{"code":"445103101","name":"登塘镇"},{"code":"445103103","name":"凤塘镇"},{"code":"445103104","name":"浮洋镇"},{"code":"445103105","name":"龙湖镇"},{"code":"445103106","name":"金石镇"},{"code":"445103107","name":"沙溪镇"},{"code":"445103108","name":"彩塘镇"},{"code":"445103109","name":"东凤镇"},{"code":"445103110","name":"庵埠镇"},{"code":"445103114","name":"江东镇"},{"code":"445103115","name":"归湖镇"},{"code":"445103116","name":"文祠镇"},{"code":"445103117","name":"凤凰镇"},{"code":"445103120","name":"赤凤镇"},{"code":"445103121","name":"枫溪镇"},{"code":"445103400","name":"万峰林场"},{"code":"445103404","name":"大坑苗圃场"},{"code":"445103405","name":"东山湖农场"},{"code":"445103450","name":"庵埠经济开发试验区"}]},{"code":"445122","name":"饶平县","children":[{"code":"445122100","name":"黄冈镇"},{"code":"445122102","name":"上饶镇"},{"code":"445122103","name":"饶洋镇"},{"code":"445122104","name":"新丰镇"},{"code":"445122106","name":"建饶镇"},{"code":"445122107","name":"三饶镇"},{"code":"445122108","name":"新塘镇"},{"code":"445122109","name":"汤溪镇"},{"code":"445122110","name":"浮滨镇"},{"code":"445122112","name":"浮山镇"},{"code":"445122113","name":"东山镇"},{"code":"445122114","name":"新圩镇"},{"code":"445122116","name":"樟溪镇"},{"code":"445122117","name":"钱东镇"},{"code":"445122118","name":"高堂镇"},{"code":"445122119","name":"联饶镇"},{"code":"445122120","name":"所城镇"},{"code":"445122121","name":"大埕镇"},{"code":"445122122","name":"柘林镇"},{"code":"445122123","name":"汫洲镇"},{"code":"445122124","name":"海山镇"},{"code":"445122400","name":"韩江林场"}]}]},{"code":"4452","name":"揭阳市","children":[{"code":"445202","name":"榕城区","children":[{"code":"445202001","name":"榕华街道"},{"code":"445202002","name":"新兴街道"},{"code":"445202003","name":"中山街道"},{"code":"445202004","name":"西马街道"},{"code":"445202005","name":"东兴街道"},{"code":"445202006","name":"榕东街道"},{"code":"445202007","name":"仙桥街道"},{"code":"445202008","name":"梅云街道"},{"code":"445202009","name":"东升街道"},{"code":"445202010","name":"东阳街道"},{"code":"445202011","name":"渔湖街道"},{"code":"445202102","name":"炮台镇"},{"code":"445202103","name":"地都镇"},{"code":"445202105","name":"登岗镇"}]},{"code":"445203","name":"揭东区","children":[{"code":"445203001","name":"曲溪街道"},{"code":"445203002","name":"磐东街道"},{"code":"445203102","name":"云路镇"},{"code":"445203103","name":"玉窖镇"},{"code":"445203104","name":"锡场镇"},{"code":"445203105","name":"新亨镇"},{"code":"445203106","name":"玉湖镇"},{"code":"445203107","name":"埔田镇"},{"code":"445203108","name":"霖磐镇"},{"code":"445203109","name":"月城镇"},{"code":"445203110","name":"白塔镇"},{"code":"445203111","name":"龙尾镇"},{"code":"445203112","name":"桂岭镇"},{"code":"445203401","name":"东径茶场"},{"code":"445203402","name":"坪上农场"},{"code":"445203403","name":"揭阳高新技术产业开发区"},{"code":"445203404","name":"卅岭农场"},{"code":"445203405","name":"蓝城区工业园区管理处"},{"code":"445203406","name":"珠海(揭阳)产业转移工业园"}]},{"code":"445222","name":"揭西县","children":[{"code":"445222001","name":"河婆街道"},{"code":"445222102","name":"龙潭镇"},{"code":"445222103","name":"南山镇"},{"code":"445222104","name":"五经富镇"},{"code":"445222105","name":"京溪园镇"},{"code":"445222106","name":"灰寨镇"},{"code":"445222107","name":"塔头镇"},{"code":"445222108","name":"东园镇"},{"code":"445222109","name":"凤江镇"},{"code":"445222110","name":"棉湖镇"},{"code":"445222111","name":"金和镇"},{"code":"445222112","name":"大溪镇"},{"code":"445222113","name":"钱坑镇"},{"code":"445222114","name":"坪上镇"},{"code":"445222115","name":"五云镇"},{"code":"445222116","name":"上砂镇"},{"code":"445222201","name":"良田乡"},{"code":"445222401","name":"北山农林场"},{"code":"445222402","name":"果林场"},{"code":"445222403","name":"油桐林场"},{"code":"445222404","name":"高田农场"},{"code":"445222405","name":"河輋农场"},{"code":"445222406","name":"县苗圃场"}]},{"code":"445224","name":"惠来县","children":[{"code":"445224100","name":"惠城镇"},{"code":"445224102","name":"华湖镇"},{"code":"445224103","name":"仙庵镇"},{"code":"445224104","name":"靖海镇"},{"code":"445224105","name":"周田镇"},{"code":"445224106","name":"前詹镇"},{"code":"445224107","name":"神泉镇"},{"code":"445224108","name":"东陇镇"},{"code":"445224109","name":"岐石镇"},{"code":"445224110","name":"隆江镇"},{"code":"445224111","name":"溪西镇"},{"code":"445224112","name":"鳌江镇"},{"code":"445224113","name":"东港镇"},{"code":"445224114","name":"葵潭镇"},{"code":"445224115","name":"侨园镇"},{"code":"445224401","name":"东埔农场"},{"code":"445224403","name":"葵潭农场"},{"code":"445224404","name":"青坑林场"},{"code":"445224450","name":"揭阳(惠来)沿海经济开发试验区"}]},{"code":"445281","name":"普宁市","children":[{"code":"445281001","name":"流沙东街道"},{"code":"445281002","name":"流沙南街道"},{"code":"445281003","name":"流沙西街道"},{"code":"445281004","name":"流沙北街道"},{"code":"445281005","name":"池尾街道"},{"code":"445281006","name":"燎原街道"},{"code":"445281007","name":"大南山街道"},{"code":"445281102","name":"赤岗镇"},{"code":"445281103","name":"大坝镇"},{"code":"445281104","name":"洪阳镇"},{"code":"445281105","name":"南溪镇"},{"code":"445281106","name":"广太镇"},{"code":"445281107","name":"麒麟镇"},{"code":"445281108","name":"南径镇"},{"code":"445281109","name":"占陇镇"},{"code":"445281110","name":"军埠镇"},{"code":"445281111","name":"下架山镇"},{"code":"445281113","name":"高埔镇"},{"code":"445281114","name":"云落镇"},{"code":"445281115","name":"大坪镇"},{"code":"445281116","name":"船埔镇"},{"code":"445281117","name":"梅林镇"},{"code":"445281119","name":"里湖镇"},{"code":"445281121","name":"梅塘镇"},{"code":"445281123","name":"普侨镇"},{"code":"445281201","name":"后溪乡"},{"code":"445281401","name":"大池农场"},{"code":"445281402","name":"马鞍山农场"},{"code":"445281403","name":"大坪农场"},{"code":"445281405","name":"三坑农场"},{"code":"445281406","name":"乌石农场"},{"code":"445281407","name":"科技工业园"},{"code":"445281408","name":"英歌山工业园"}]}]},{"code":"4453","name":"云浮市","children":[{"code":"445302","name":"云城区","children":[{"code":"445302001","name":"云城街道"},{"code":"445302002","name":"高峰街道"},{"code":"445302003","name":"河口街道"},{"code":"445302004","name":"安塘街道"},{"code":"445302102","name":"腰古镇"},{"code":"445302103","name":"思劳镇"},{"code":"445302105","name":"前锋镇"},{"code":"445302106","name":"南盛镇"}]},{"code":"445303","name":"云安区","children":[{"code":"445303100","name":"六都镇"},{"code":"445303101","name":"高村镇"},{"code":"445303102","name":"白石镇"},{"code":"445303103","name":"镇安镇"},{"code":"445303104","name":"富林镇"},{"code":"445303105","name":"石城镇"},{"code":"445303106","name":"都杨镇"}]},{"code":"445321","name":"新兴县","children":[{"code":"445321100","name":"新城镇"},{"code":"445321101","name":"车岗镇"},{"code":"445321103","name":"水台镇"},{"code":"445321104","name":"稔村镇"},{"code":"445321105","name":"东成镇"},{"code":"445321107","name":"太平镇"},{"code":"445321108","name":"里洞镇"},{"code":"445321110","name":"大江镇"},{"code":"445321112","name":"天堂镇"},{"code":"445321113","name":"河头镇"},{"code":"445321114","name":"簕竹镇"},{"code":"445321115","name":"六祖镇"},{"code":"445321501","name":"广东省西江林业局良洞迳林场"},{"code":"445321502","name":"云浮市国有水台林场"},{"code":"445321503","name":"国营新兴县岩头林场"}]},{"code":"445322","name":"郁南县","children":[{"code":"445322100","name":"都城镇"},{"code":"445322101","name":"平台镇"},{"code":"445322102","name":"桂圩镇"},{"code":"445322104","name":"通门镇"},{"code":"445322105","name":"建城镇"},{"code":"445322106","name":"宝珠镇"},{"code":"445322108","name":"大方镇"},{"code":"445322110","name":"千官镇"},{"code":"445322111","name":"大湾镇"},{"code":"445322112","name":"河口镇"},{"code":"445322113","name":"宋桂镇"},{"code":"445322114","name":"东坝镇"},{"code":"445322115","name":"连滩镇"},{"code":"445322116","name":"历洞镇"},{"code":"445322117","name":"南江口镇"},{"code":"445322400","name":"西江林场"},{"code":"445322401","name":"通门林场"},{"code":"445322402","name":"大历林场"},{"code":"445322403","name":"同乐林场"}]},{"code":"445381","name":"罗定市","children":[{"code":"445381001","name":"罗城街道"},{"code":"445381002","name":"素龙街道"},{"code":"445381003","name":"附城街道"},{"code":"445381004","name":"双东街道"},{"code":"445381100","name":"罗镜镇"},{"code":"445381101","name":"太平镇"},{"code":"445381102","name":"分界镇"},{"code":"445381104","name":"罗平镇"},{"code":"445381105","name":"船步镇"},{"code":"445381106","name":"满(lang)塘镇"},{"code":"445381107","name":"苹塘镇"},{"code":"445381108","name":"金鸡镇"},{"code":"445381109","name":"围底镇"},{"code":"445381110","name":"华石镇"},{"code":"445381111","name":"榃滨镇"},{"code":"445381113","name":"黎少镇"},{"code":"445381114","name":"生江镇"},{"code":"445381115","name":"连州镇"},{"code":"445381116","name":"泗纶镇"},{"code":"445381118","name":"加益镇"},{"code":"445381119","name":"龙湾镇"},{"code":"445381400","name":"罗平农场"}]}]}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市","children":[{"code":"450102","name":"兴宁区","children":[{"code":"450102001","name":"民生街道"},{"code":"450102002","name":"朝阳街道"},{"code":"450102003","name":"兴东街道"},{"code":"450102101","name":"三塘镇"},{"code":"450102102","name":"五塘镇"},{"code":"450102104","name":"昆仑镇"}]},{"code":"450103","name":"青秀区","children":[{"code":"450103001","name":"新竹街道"},{"code":"450103002","name":"中山街道"},{"code":"450103003","name":"建政街道"},{"code":"450103004","name":"南湖街道"},{"code":"450103005","name":"津头街道"},{"code":"450103100","name":"刘圩镇"},{"code":"450103101","name":"南阳镇"},{"code":"450103102","name":"伶俐镇"},{"code":"450103103","name":"长塘镇"},{"code":"450103400","name":"仙葫经济开发区管理委员会"},{"code":"450103451","name":"青秀山管理委员会"}]},{"code":"450105","name":"江南区","children":[{"code":"450105001","name":"福建园街道"},{"code":"450105002","name":"江南街道"},{"code":"450105003","name":"沙井街道"},{"code":"450105004","name":"那洪街道"},{"code":"450105005","name":"金凯街道"},{"code":"450105102","name":"吴圩镇"},{"code":"450105103","name":"苏圩镇"},{"code":"450105104","name":"延安镇"},{"code":"450105105","name":"江西镇"},{"code":"450105450","name":"经济技术开发区"},{"code":"450105451","name":"明阳工业园区管委会"}]},{"code":"450107","name":"西乡塘区","children":[{"code":"450107001","name":"衡阳街道"},{"code":"450107002","name":"北湖街道"},{"code":"450107003","name":"西乡塘街道"},{"code":"450107004","name":"安吉街道"},{"code":"450107005","name":"华强街道"},{"code":"450107006","name":"新阳街道"},{"code":"450107007","name":"上尧街道"},{"code":"450107008","name":"安宁街道"},{"code":"450107009","name":"石埠街道"},{"code":"450107010","name":"心圩街道"},{"code":"450107100","name":"金陵镇"},{"code":"450107101","name":"双定镇"},{"code":"450107105","name":"坛洛镇"},{"code":"450107450","name":"那龙矿务局"},{"code":"450107454","name":"高新技术开发区管委会"}]},{"code":"450108","name":"良庆区","children":[{"code":"450108001","name":"大沙田街道"},{"code":"450108002","name":"玉洞街道"},{"code":"450108100","name":"良庆镇"},{"code":"450108101","name":"那马镇"},{"code":"450108102","name":"那陈镇"},{"code":"450108103","name":"大塘镇"},{"code":"450108104","name":"南晓镇"},{"code":"450108452","name":"良庆经济开发区管委会"}]},{"code":"450109","name":"邕宁区","children":[{"code":"450109100","name":"蒲庙镇"},{"code":"450109101","name":"那楼镇"},{"code":"450109102","name":"新江镇"},{"code":"450109103","name":"百济镇"},{"code":"450109104","name":"中和镇"}]},{"code":"450110","name":"武鸣区","children":[{"code":"450110100","name":"城厢镇"},{"code":"450110102","name":"太平镇"},{"code":"450110103","name":"双桥镇"},{"code":"450110104","name":"宁武镇"},{"code":"450110105","name":"锣圩镇"},{"code":"450110106","name":"仙湖镇"},{"code":"450110107","name":"府城镇"},{"code":"450110108","name":"陆斡镇"},{"code":"450110109","name":"两江镇"},{"code":"450110110","name":"罗波镇"},{"code":"450110111","name":"灵马镇"},{"code":"450110112","name":"甘圩镇"},{"code":"450110113","name":"马头镇"},{"code":"450110451","name":"南宁华侨投资区"}]},{"code":"450123","name":"隆安县","children":[{"code":"450123100","name":"城厢镇"},{"code":"450123101","name":"南圩镇"},{"code":"450123102","name":"雁江镇"},{"code":"450123103","name":"那桐镇"},{"code":"450123104","name":"乔建镇"},{"code":"450123105","name":"丁当镇"},{"code":"450123201","name":"古潭乡"},{"code":"450123203","name":"都结乡"},{"code":"450123204","name":"布泉乡"},{"code":"450123205","name":"屏山乡"},{"code":"450123450","name":"隆安华侨管理区管理委员会"}]},{"code":"450124","name":"马山县","children":[{"code":"450124100","name":"白山镇"},{"code":"450124101","name":"百龙滩镇"},{"code":"450124102","name":"林圩镇"},{"code":"450124103","name":"古零镇"},{"code":"450124104","name":"金钗镇"},{"code":"450124105","name":"周鹿镇"},{"code":"450124106","name":"永州镇"},{"code":"450124200","name":"乔利乡"},{"code":"450124201","name":"加方乡"},{"code":"450124202","name":"古寨瑶族乡"},{"code":"450124203","name":"里当瑶族乡"}]},{"code":"450125","name":"上林县","children":[{"code":"450125100","name":"大丰镇"},{"code":"450125101","name":"明亮镇"},{"code":"450125102","name":"巷贤镇"},{"code":"450125103","name":"白圩镇"},{"code":"450125104","name":"三里镇"},{"code":"450125105","name":"乔贤镇"},{"code":"450125106","name":"西燕镇"},{"code":"450125200","name":"澄泰乡"},{"code":"450125202","name":"木山乡"},{"code":"450125203","name":"塘红乡"},{"code":"450125205","name":"镇圩瑶族乡"}]},{"code":"450126","name":"宾阳县","children":[{"code":"450126100","name":"宾州镇"},{"code":"450126101","name":"黎塘镇"},{"code":"450126102","name":"甘棠镇"},{"code":"450126103","name":"思陇镇"},{"code":"450126104","name":"新桥镇"},{"code":"450126105","name":"新圩镇"},{"code":"450126106","name":"邹圩镇"},{"code":"450126107","name":"大桥镇"},{"code":"450126108","name":"武陵镇"},{"code":"450126109","name":"中华镇"},{"code":"450126110","name":"古辣镇"},{"code":"450126111","name":"露圩镇"},{"code":"450126112","name":"王灵镇"},{"code":"450126113","name":"和吉镇"},{"code":"450126114","name":"洋桥镇"},{"code":"450126115","name":"陈平镇"},{"code":"450126451","name":"廖平农场"}]},{"code":"450181","name":"横州市","children":[{"code":"450181100","name":"横州镇"},{"code":"450181101","name":"百合镇"},{"code":"450181102","name":"那阳镇"},{"code":"450181103","name":"南乡镇"},{"code":"450181104","name":"新福镇"},{"code":"450181105","name":"莲塘镇"},{"code":"450181106","name":"平马镇"},{"code":"450181107","name":"峦城镇"},{"code":"450181108","name":"六景镇"},{"code":"450181110","name":"石塘镇"},{"code":"450181112","name":"陶圩镇"},{"code":"450181113","name":"校椅镇"},{"code":"450181114","name":"云表镇"},{"code":"450181115","name":"马岭镇"},{"code":"450181118","name":"马山镇"},{"code":"450181119","name":"平朗镇"},{"code":"450181204","name":"镇龙乡"},{"code":"450181400","name":"南宁六景工业园区管委会"}]}]},{"code":"4502","name":"柳州市","children":[{"code":"450202","name":"城中区","children":[{"code":"450202001","name":"城中街道"},{"code":"450202002","name":"公园街道"},{"code":"450202003","name":"中南街道"},{"code":"450202004","name":"沿江街道"},{"code":"450202005","name":"潭中街道"},{"code":"450202006","name":"河东街道"},{"code":"450202007","name":"静兰街道"}]},{"code":"450203","name":"鱼峰区","children":[{"code":"450203001","name":"天马街道"},{"code":"450203002","name":"驾鹤街道"},{"code":"450203003","name":"箭盘山街道"},{"code":"450203004","name":"五里亭街道"},{"code":"450203005","name":"荣军街道"},{"code":"450203006","name":"白莲街道"},{"code":"450203007","name":"麒麟街道"},{"code":"450203008","name":"阳和街道"},{"code":"450203100","name":"雒容镇"},{"code":"450203101","name":"洛埠镇"},{"code":"450203102","name":"白沙镇"},{"code":"450203103","name":"里雍镇"}]},{"code":"450204","name":"柳南区","children":[{"code":"450204001","name":"河西街道"},{"code":"450204002","name":"南站街道"},{"code":"450204003","name":"鹅山街道"},{"code":"450204004","name":"柳南街道"},{"code":"450204005","name":"柳石街道"},{"code":"450204006","name":"银山街道"},{"code":"450204007","name":"潭西街道"},{"code":"450204008","name":"南环街道"},{"code":"450204100","name":"太阳村镇"},{"code":"450204101","name":"洛满镇"},{"code":"450204102","name":"流山镇"}]},{"code":"450205","name":"柳北区","children":[{"code":"450205001","name":"解放街道"},{"code":"450205002","name":"雅儒街道"},{"code":"450205003","name":"胜利街道"},{"code":"450205004","name":"雀儿山街道"},{"code":"450205005","name":"钢城街道"},{"code":"450205006","name":"锦绣街道"},{"code":"450205007","name":"白露街道"},{"code":"450205008","name":"跃进街道"},{"code":"450205009","name":"柳长街道"},{"code":"450205100","name":"石碑坪镇"},{"code":"450205101","name":"沙塘镇"},{"code":"450205102","name":"长塘镇"}]},{"code":"450206","name":"柳江区","children":[{"code":"450206100","name":"拉堡镇"},{"code":"450206102","name":"百朋镇"},{"code":"450206103","name":"成团镇"},{"code":"450206106","name":"三都镇"},{"code":"450206107","name":"里高镇"},{"code":"450206108","name":"进德镇"},{"code":"450206109","name":"穿山镇"},{"code":"450206110","name":"土博镇"}]},{"code":"450222","name":"柳城县","children":[{"code":"450222100","name":"大埔镇"},{"code":"450222101","name":"龙头镇"},{"code":"450222102","name":"太平镇"},{"code":"450222103","name":"沙埔镇"},{"code":"450222104","name":"东泉镇"},{"code":"450222105","name":"凤山镇"},{"code":"450222106","name":"六塘镇"},{"code":"450222107","name":"冲脉镇"},{"code":"450222108","name":"寨隆镇"},{"code":"450222109","name":"马山镇"},{"code":"450222200","name":"古砦仫佬族乡"},{"code":"450222202","name":"社冲乡"}]},{"code":"450223","name":"鹿寨县","children":[{"code":"450223100","name":"鹿寨镇"},{"code":"450223102","name":"中渡镇"},{"code":"450223103","name":"寨沙镇"},{"code":"450223104","name":"平山镇"},{"code":"450223105","name":"黄冕镇"},{"code":"450223106","name":"四排镇"},{"code":"450223201","name":"江口乡"},{"code":"450223202","name":"导江乡"},{"code":"450223203","name":"拉沟乡"}]},{"code":"450224","name":"融安县","children":[{"code":"450224100","name":"长安镇"},{"code":"450224101","name":"浮石镇"},{"code":"450224102","name":"泗顶镇"},{"code":"450224103","name":"板榄镇"},{"code":"450224104","name":"大将镇"},{"code":"450224105","name":"大良镇"},{"code":"450224200","name":"雅瑶乡"},{"code":"450224201","name":"大坡乡"},{"code":"450224202","name":"东起乡"},{"code":"450224203","name":"沙子乡"},{"code":"450224204","name":"桥板乡"},{"code":"450224205","name":"潭头乡"}]},{"code":"450225","name":"融水苗族自治县","children":[{"code":"450225100","name":"融水镇"},{"code":"450225101","name":"和睦镇"},{"code":"450225102","name":"三防镇"},{"code":"450225103","name":"怀宝镇"},{"code":"450225104","name":"洞头镇"},{"code":"450225105","name":"大浪镇"},{"code":"450225106","name":"永乐镇"},{"code":"450225201","name":"四荣乡"},{"code":"450225202","name":"香粉乡"},{"code":"450225203","name":"安太乡"},{"code":"450225205","name":"汪洞乡"},{"code":"450225206","name":"同练瑶族乡"},{"code":"450225207","name":"滚贝侗族乡"},{"code":"450225208","name":"杆洞乡"},{"code":"450225209","name":"安陲乡"},{"code":"450225211","name":"白云乡"},{"code":"450225212","name":"红水乡"},{"code":"450225213","name":"拱洞乡"},{"code":"450225214","name":"良寨乡"},{"code":"450225215","name":"大年乡"}]},{"code":"450226","name":"三江侗族自治县","children":[{"code":"450226100","name":"古宜镇"},{"code":"450226101","name":"斗江镇"},{"code":"450226102","name":"丹洲镇"},{"code":"450226103","name":"八江镇"},{"code":"450226104","name":"林溪镇"},{"code":"450226105","name":"独峒镇"},{"code":"450226203","name":"同乐苗族乡"},{"code":"450226204","name":"梅林乡"},{"code":"450226205","name":"富禄苗族乡"},{"code":"450226206","name":"洋溪乡"},{"code":"450226207","name":"良口乡"},{"code":"450226208","name":"老堡乡"},{"code":"450226209","name":"高基瑶族乡"},{"code":"450226210","name":"和平乡"},{"code":"450226211","name":"程村乡"}]}]},{"code":"4503","name":"桂林市","children":[{"code":"450302","name":"秀峰区","children":[{"code":"450302001","name":"秀峰街道"},{"code":"450302002","name":"丽君街道"},{"code":"450302003","name":"甲山街道"}]},{"code":"450303","name":"叠彩区","children":[{"code":"450303001","name":"叠彩街道"},{"code":"450303002","name":"北门街道"},{"code":"450303200","name":"大河乡"}]},{"code":"450304","name":"象山区","children":[{"code":"450304001","name":"南门街道"},{"code":"450304002","name":"象山街道"},{"code":"450304003","name":"平山街道"},{"code":"450304200","name":"二塘乡"}]},{"code":"450305","name":"七星区","children":[{"code":"450305001","name":"七星区街道"},{"code":"450305002","name":"东江街道"},{"code":"450305003","name":"穿山街道"},{"code":"450305004","name":"漓东街道"},{"code":"450305200","name":"朝阳乡"},{"code":"450305400","name":"桂林华侨旅游经济区管理委员会"}]},{"code":"450311","name":"雁山区","children":[{"code":"450311001","name":"良丰街道"},{"code":"450311100","name":"雁山镇"},{"code":"450311101","name":"柘木镇"},{"code":"450311200","name":"大埠乡"},{"code":"450311201","name":"草坪回族乡"}]},{"code":"450312","name":"临桂区","children":[{"code":"450312100","name":"临桂镇"},{"code":"450312101","name":"六塘镇"},{"code":"450312102","name":"会仙镇"},{"code":"450312103","name":"两江镇"},{"code":"450312104","name":"五通镇"},{"code":"450312105","name":"四塘镇"},{"code":"450312106","name":"南边山镇"},{"code":"450312107","name":"中庸镇"},{"code":"450312108","name":"茶洞镇"},{"code":"450312204","name":"宛田瑶族乡"},{"code":"450312205","name":"黄沙瑶族乡"}]},{"code":"450321","name":"阳朔县","children":[{"code":"450321100","name":"阳朔镇"},{"code":"450321101","name":"白沙镇"},{"code":"450321102","name":"福利镇"},{"code":"450321103","name":"兴坪镇"},{"code":"450321104","name":"葡萄镇"},{"code":"450321105","name":"高田镇"},{"code":"450321200","name":"金宝乡"},{"code":"450321201","name":"普益乡"},{"code":"450321202","name":"杨堤乡"}]},{"code":"450323","name":"灵川县","children":[{"code":"450323100","name":"灵川镇"},{"code":"450323101","name":"大圩镇"},{"code":"450323102","name":"定江镇"},{"code":"450323103","name":"三街镇"},{"code":"450323104","name":"潭下镇"},{"code":"450323106","name":"九屋镇"},{"code":"450323107","name":"灵田镇"},{"code":"450323200","name":"潮田乡"},{"code":"450323201","name":"大境瑶族乡"},{"code":"450323202","name":"海洋乡"},{"code":"450323206","name":"兰田瑶族乡"},{"code":"450323207","name":"公平乡"}]},{"code":"450324","name":"全州县","children":[{"code":"450324100","name":"全州镇"},{"code":"450324101","name":"黄沙河镇"},{"code":"450324102","name":"庙头镇"},{"code":"450324103","name":"文桥镇"},{"code":"450324104","name":"大西江镇"},{"code":"450324105","name":"龙水镇"},{"code":"450324106","name":"才湾镇"},{"code":"450324107","name":"绍水镇"},{"code":"450324108","name":"石塘镇"},{"code":"450324109","name":"咸水镇"},{"code":"450324110","name":"凤凰镇"},{"code":"450324111","name":"安和镇"},{"code":"450324112","name":"两河镇"},{"code":"450324113","name":"枧塘镇"},{"code":"450324114","name":"永岁镇"},{"code":"450324204","name":"蕉江瑶族乡"},{"code":"450324207","name":"白宝乡"},{"code":"450324208","name":"东山瑶族乡"}]},{"code":"450325","name":"兴安县","children":[{"code":"450325100","name":"兴安镇"},{"code":"450325101","name":"湘漓镇"},{"code":"450325102","name":"界首镇"},{"code":"450325103","name":"高尚镇"},{"code":"450325104","name":"严关镇"},{"code":"450325105","name":"溶江镇"},{"code":"450325200","name":"漠川乡"},{"code":"450325201","name":"白石乡"},{"code":"450325202","name":"崔家乡"},{"code":"450325203","name":"华江瑶族乡"}]},{"code":"450326","name":"永福县","children":[{"code":"450326100","name":"永福镇"},{"code":"450326101","name":"罗锦镇"},{"code":"450326102","name":"百寿镇"},{"code":"450326103","name":"苏桥镇"},{"code":"450326104","name":"三皇镇"},{"code":"450326105","name":"堡里镇"},{"code":"450326202","name":"广福乡"},{"code":"450326204","name":"永安乡"},{"code":"450326205","name":"龙江乡"}]},{"code":"450327","name":"灌阳县","children":[{"code":"450327100","name":"灌阳镇"},{"code":"450327101","name":"黄关镇"},{"code":"450327102","name":"文市镇"},{"code":"450327103","name":"新街镇"},{"code":"450327104","name":"新圩镇"},{"code":"450327105","name":"水车镇"},{"code":"450327200","name":"洞井瑶族乡"},{"code":"450327201","name":"观音阁乡"},{"code":"450327202","name":"西山瑶族乡"}]},{"code":"450328","name":"龙胜各族自治县","children":[{"code":"450328100","name":"龙胜镇"},{"code":"450328101","name":"瓢里镇"},{"code":"450328102","name":"三门镇"},{"code":"450328103","name":"龙脊镇"},{"code":"450328104","name":"平等镇"},{"code":"450328105","name":"乐江镇"},{"code":"450328201","name":"泗水乡"},{"code":"450328202","name":"江底乡"},{"code":"450328203","name":"马堤乡"},{"code":"450328204","name":"伟江乡"}]},{"code":"450329","name":"资源县","children":[{"code":"450329100","name":"资源镇"},{"code":"450329101","name":"中峰镇"},{"code":"450329102","name":"梅溪镇"},{"code":"450329202","name":"瓜里乡"},{"code":"450329203","name":"车田苗族乡"},{"code":"450329204","name":"两水苗族乡"},{"code":"450329205","name":"河口瑶族乡"}]},{"code":"450330","name":"平乐县","children":[{"code":"450330100","name":"平乐镇"},{"code":"450330101","name":"二塘镇"},{"code":"450330102","name":"沙子镇"},{"code":"450330103","name":"同安镇"},{"code":"450330104","name":"张家镇"},{"code":"450330105","name":"源头镇"},{"code":"450330200","name":"阳安乡"},{"code":"450330201","name":"青龙乡"},{"code":"450330202","name":"桥亭乡"},{"code":"450330203","name":"大发瑶族乡"}]},{"code":"450332","name":"恭城瑶族自治县","children":[{"code":"450332100","name":"恭城镇"},{"code":"450332101","name":"栗木镇"},{"code":"450332102","name":"莲花镇"},{"code":"450332103","name":"嘉会镇"},{"code":"450332104","name":"西岭镇"},{"code":"450332105","name":"平安镇"},{"code":"450332201","name":"三江乡"},{"code":"450332204","name":"观音乡"},{"code":"450332205","name":"龙虎乡"}]},{"code":"450381","name":"荔浦市","children":[{"code":"450381100","name":"荔城镇"},{"code":"450381101","name":"东昌镇"},{"code":"450381102","name":"新坪镇"},{"code":"450381103","name":"杜莫镇"},{"code":"450381104","name":"青山镇"},{"code":"450381105","name":"修仁镇"},{"code":"450381106","name":"大塘镇"},{"code":"450381107","name":"花箦镇"},{"code":"450381108","name":"双江镇"},{"code":"450381109","name":"马岭镇"},{"code":"450381200","name":"龙怀乡"},{"code":"450381201","name":"茶城乡"},{"code":"450381202","name":"蒲芦瑶族乡"}]}]},{"code":"4504","name":"梧州市","children":[{"code":"450403","name":"万秀区","children":[{"code":"450403005","name":"角嘴街道"},{"code":"450403006","name":"东兴街道"},{"code":"450403007","name":"富民街道"},{"code":"450403008","name":"城南街道"},{"code":"450403009","name":"城北街道"},{"code":"450403101","name":"城东镇"},{"code":"450403103","name":"龙湖镇"},{"code":"450403104","name":"夏郢镇"}]},{"code":"450405","name":"长洲区","children":[{"code":"450405001","name":"大塘街道"},{"code":"450405002","name":"兴龙街道"},{"code":"450405003","name":"红岭街道"},{"code":"450405101","name":"长洲镇"},{"code":"450405102","name":"倒水镇"}]},{"code":"450406","name":"龙圩区","children":[{"code":"450406100","name":"龙圩镇"},{"code":"450406101","name":"大坡镇"},{"code":"450406102","name":"广平镇"},{"code":"450406103","name":"新地镇"}]},{"code":"450421","name":"苍梧县","children":[{"code":"450421100","name":"石桥镇"},{"code":"450421101","name":"沙头镇"},{"code":"450421102","name":"梨埠镇"},{"code":"450421105","name":"岭脚镇"},{"code":"450421108","name":"京南镇"},{"code":"450421109","name":"狮寨镇"},{"code":"450421110","name":"旺甫镇"},{"code":"450421112","name":"六堡镇"},{"code":"450421114","name":"木双镇"}]},{"code":"450422","name":"藤县","children":[{"code":"450422100","name":"藤州镇"},{"code":"450422103","name":"塘步镇"},{"code":"450422104","name":"埌南镇"},{"code":"450422105","name":"同心镇"},{"code":"450422106","name":"金鸡镇"},{"code":"450422107","name":"新庆镇"},{"code":"450422108","name":"象棋镇"},{"code":"450422109","name":"岭景镇"},{"code":"450422110","name":"天平镇"},{"code":"450422111","name":"蒙江镇"},{"code":"450422112","name":"和平镇"},{"code":"450422113","name":"太平镇"},{"code":"450422114","name":"古龙镇"},{"code":"450422115","name":"东荣镇"},{"code":"450422116","name":"大黎镇"},{"code":"450422200","name":"平福乡"},{"code":"450422201","name":"宁康乡"}]},{"code":"450423","name":"蒙山县","children":[{"code":"450423100","name":"蒙山镇"},{"code":"450423101","name":"西河镇"},{"code":"450423102","name":"新圩镇"},{"code":"450423103","name":"文圩镇"},{"code":"450423104","name":"黄村镇"},{"code":"450423105","name":"陈塘镇"},{"code":"450423200","name":"汉豪乡"},{"code":"450423201","name":"长坪瑶族乡"},{"code":"450423202","name":"夏宜瑶族乡"}]},{"code":"450481","name":"岑溪市","children":[{"code":"450481100","name":"岑城镇"},{"code":"450481102","name":"马路镇"},{"code":"450481103","name":"南渡镇"},{"code":"450481105","name":"水汶镇"},{"code":"450481106","name":"大隆镇"},{"code":"450481107","name":"梨木镇"},{"code":"450481108","name":"大业镇"},{"code":"450481109","name":"筋竹镇"},{"code":"450481110","name":"诚谏镇"},{"code":"450481111","name":"归义镇"},{"code":"450481112","name":"糯垌镇"},{"code":"450481113","name":"安平镇"},{"code":"450481114","name":"三堡镇"},{"code":"450481115","name":"波塘镇"}]}]},{"code":"4505","name":"北海市","children":[{"code":"450502","name":"海城区","children":[{"code":"450502001","name":"中街街道"},{"code":"450502002","name":"东街街道"},{"code":"450502003","name":"西街街道"},{"code":"450502004","name":"海角街道"},{"code":"450502005","name":"地角街道"},{"code":"450502006","name":"高德街道"},{"code":"450502007","name":"驿马街道"},{"code":"450502100","name":"涠洲镇"}]},{"code":"450503","name":"银海区","children":[{"code":"450503100","name":"福成镇"},{"code":"450503101","name":"银滩镇"},{"code":"450503102","name":"平阳镇"},{"code":"450503103","name":"侨港镇"}]},{"code":"450512","name":"铁山港区","children":[{"code":"450512100","name":"南康镇"},{"code":"450512101","name":"营盘镇"},{"code":"450512102","name":"兴港镇"}]},{"code":"450521","name":"合浦县","children":[{"code":"450521100","name":"廉州镇"},{"code":"450521101","name":"党江镇"},{"code":"450521102","name":"西场镇"},{"code":"450521103","name":"沙岗镇"},{"code":"450521104","name":"乌家镇"},{"code":"450521105","name":"闸口镇"},{"code":"450521106","name":"公馆镇"},{"code":"450521107","name":"白沙镇"},{"code":"450521108","name":"山口镇"},{"code":"450521109","name":"沙田镇"},{"code":"450521110","name":"石湾镇"},{"code":"450521111","name":"石康镇"},{"code":"450521112","name":"常乐镇"},{"code":"450521113","name":"星岛湖镇"},{"code":"450521200","name":"曲樟乡"}]}]},{"code":"4506","name":"防城港市","children":[{"code":"450602","name":"港口区","children":[{"code":"450602001","name":"渔州坪街道"},{"code":"450602002","name":"白沙万街道"},{"code":"450602003","name":"沙潭江街道"},{"code":"450602004","name":"王府街道"},{"code":"450602100","name":"企沙镇"},{"code":"450602101","name":"光坡镇"}]},{"code":"450603","name":"防城区","children":[{"code":"450603001","name":"水营街道"},{"code":"450603002","name":"珠河街道"},{"code":"450603003","name":"文昌街道"},{"code":"450603101","name":"大菉镇"},{"code":"450603102","name":"华石镇"},{"code":"450603103","name":"那梭镇"},{"code":"450603104","name":"那良镇"},{"code":"450603105","name":"峒中镇"},{"code":"450603106","name":"江山镇"},{"code":"450603107","name":"茅岭镇"},{"code":"450603108","name":"扶隆镇"},{"code":"450603203","name":"滩营乡"},{"code":"450603209","name":"十万山瑶族乡"},{"code":"450603450","name":"小峰经济作物场"}]},{"code":"450621","name":"上思县","children":[{"code":"450621100","name":"思阳镇"},{"code":"450621101","name":"在妙镇"},{"code":"450621102","name":"华兰镇"},{"code":"450621103","name":"叫安镇"},{"code":"450621203","name":"南屏瑶族乡"},{"code":"450621204","name":"平福乡"},{"code":"450621205","name":"那琴乡"},{"code":"450621206","name":"公正乡"}]},{"code":"450681","name":"东兴市","children":[{"code":"450681100","name":"东兴镇"},{"code":"450681101","name":"江平镇"},{"code":"450681102","name":"马路镇"}]}]},{"code":"4507","name":"钦州市","children":[{"code":"450702","name":"钦南区","children":[{"code":"450702001","name":"向阳街道"},{"code":"450702002","name":"水东街道"},{"code":"450702003","name":"文峰街道"},{"code":"450702004","name":"南珠街道"},{"code":"450702005","name":"尖山街道"},{"code":"450702100","name":"沙埠镇"},{"code":"450702101","name":"康熙岭镇"},{"code":"450702102","name":"黄屋屯镇"},{"code":"450702104","name":"大番坡镇"},{"code":"450702105","name":"龙门港镇"},{"code":"450702107","name":"久隆镇"},{"code":"450702108","name":"东场镇"},{"code":"450702109","name":"那丽镇"},{"code":"450702110","name":"那彭镇"},{"code":"450702111","name":"那思镇"},{"code":"450702112","name":"犀牛脚镇"},{"code":"450702400","name":"丽光华侨农场"},{"code":"450702401","name":"钦州港经济技术开发区"},{"code":"450702402","name":"三娘湾旅游管理区"},{"code":"450702403","name":"广西钦州保税港区"},{"code":"450702404","name":"中马钦州产业园区"}]},{"code":"450703","name":"钦北区","children":[{"code":"450703001","name":"长田街道"},{"code":"450703002","name":"鸿亭街道"},{"code":"450703003","name":"子材街道"},{"code":"450703100","name":"大垌镇"},{"code":"450703101","name":"平吉镇"},{"code":"450703102","name":"青塘镇"},{"code":"450703103","name":"小董镇"},{"code":"450703104","name":"板城镇"},{"code":"450703105","name":"那蒙镇"},{"code":"450703106","name":"长滩镇"},{"code":"450703107","name":"新棠镇"},{"code":"450703108","name":"大直镇"},{"code":"450703109","name":"大寺镇"},{"code":"450703110","name":"贵台镇"}]},{"code":"450721","name":"灵山县","children":[{"code":"450721001","name":"灵城街道"},{"code":"450721002","name":"三海街道"},{"code":"450721101","name":"新圩镇"},{"code":"450721102","name":"丰塘镇"},{"code":"450721103","name":"平山镇"},{"code":"450721104","name":"石塘镇"},{"code":"450721105","name":"佛子镇"},{"code":"450721106","name":"平南镇"},{"code":"450721107","name":"烟墩镇"},{"code":"450721108","name":"檀圩镇"},{"code":"450721109","name":"那隆镇"},{"code":"450721110","name":"三隆镇"},{"code":"450721111","name":"陆屋镇"},{"code":"450721112","name":"旧州镇"},{"code":"450721113","name":"太平镇"},{"code":"450721114","name":"沙坪镇"},{"code":"450721115","name":"武利镇"},{"code":"450721116","name":"文利镇"},{"code":"450721117","name":"伯劳镇"}]},{"code":"450722","name":"浦北县","children":[{"code":"450722001","name":"小江街道"},{"code":"450722002","name":"江城街道"},{"code":"450722101","name":"泉水镇"},{"code":"450722102","name":"石埇镇"},{"code":"450722103","name":"安石镇"},{"code":"450722104","name":"张黄镇"},{"code":"450722105","name":"大成镇"},{"code":"450722106","name":"白石水镇"},{"code":"450722107","name":"北通镇"},{"code":"450722108","name":"三合镇"},{"code":"450722109","name":"龙门镇"},{"code":"450722110","name":"福旺镇"},{"code":"450722111","name":"寨圩镇"},{"code":"450722112","name":"乐民镇"},{"code":"450722113","name":"六硍镇"},{"code":"450722114","name":"平睦镇"},{"code":"450722115","name":"官垌镇"}]}]},{"code":"4508","name":"贵港市","children":[{"code":"450802","name":"港北区","children":[{"code":"450802001","name":"贵城街道"},{"code":"450802002","name":"港城街道"},{"code":"450802101","name":"大圩镇"},{"code":"450802102","name":"庆丰镇"},{"code":"450802103","name":"根竹镇"},{"code":"450802104","name":"武乐镇"},{"code":"450802200","name":"奇石乡"},{"code":"450802201","name":"中里乡"}]},{"code":"450803","name":"港南区","children":[{"code":"450803001","name":"江南街道"},{"code":"450803002","name":"八塘街道"},{"code":"450803100","name":"桥圩镇"},{"code":"450803101","name":"木格镇"},{"code":"450803102","name":"木梓镇"},{"code":"450803103","name":"湛江镇"},{"code":"450803104","name":"东津镇"},{"code":"450803106","name":"新塘镇"},{"code":"450803107","name":"瓦塘镇"}]},{"code":"450804","name":"覃塘区","children":[{"code":"450804001","name":"覃塘街道"},{"code":"450804101","name":"东龙镇"},{"code":"450804102","name":"三里镇"},{"code":"450804103","name":"黄练镇"},{"code":"450804104","name":"石卡镇"},{"code":"450804105","name":"五里镇"},{"code":"450804106","name":"樟木镇"},{"code":"450804107","name":"蒙公镇"},{"code":"450804200","name":"山北乡"},{"code":"450804204","name":"大岭乡"}]},{"code":"450821","name":"平南县","children":[{"code":"450821001","name":"平南街道"},{"code":"450821002","name":"上渡街道"},{"code":"450821101","name":"平山镇"},{"code":"450821102","name":"寺面镇"},{"code":"450821103","name":"六陈镇"},{"code":"450821104","name":"大新镇"},{"code":"450821105","name":"大安镇"},{"code":"450821106","name":"武林镇"},{"code":"450821107","name":"大坡镇"},{"code":"450821108","name":"大洲镇"},{"code":"450821109","name":"镇隆镇"},{"code":"450821112","name":"安怀镇"},{"code":"450821113","name":"丹竹镇"},{"code":"450821114","name":"官成镇"},{"code":"450821115","name":"思旺镇"},{"code":"450821116","name":"大鹏镇"},{"code":"450821117","name":"同和镇"},{"code":"450821118","name":"东华镇"},{"code":"450821204","name":"思界乡"},{"code":"450821205","name":"国安瑶族乡"},{"code":"450821206","name":"马练瑶族乡"}]},{"code":"450881","name":"桂平市","children":[{"code":"450881101","name":"木乐镇"},{"code":"450881102","name":"木圭镇"},{"code":"450881103","name":"石咀镇"},{"code":"450881104","name":"油麻镇"},{"code":"450881105","name":"社坡镇"},{"code":"450881106","name":"罗秀镇"},{"code":"450881107","name":"麻垌镇"},{"code":"450881108","name":"社步镇"},{"code":"450881109","name":"下湾镇"},{"code":"450881110","name":"木根镇"},{"code":"450881111","name":"中沙镇"},{"code":"450881113","name":"大洋镇"},{"code":"450881114","name":"大湾镇"},{"code":"450881115","name":"白沙镇"},{"code":"450881116","name":"石龙镇"},{"code":"450881117","name":"蒙圩镇"},{"code":"450881118","name":"西山镇"},{"code":"450881119","name":"南木镇"},{"code":"450881120","name":"江口镇"},{"code":"450881121","name":"金田镇"},{"code":"450881122","name":"紫荆镇"},{"code":"450881200","name":"马皮乡"},{"code":"450881202","name":"寻旺乡"},{"code":"450881203","name":"罗播乡"},{"code":"450881204","name":"厚禄乡"},{"code":"450881206","name":"垌心乡"}]}]},{"code":"4509","name":"玉林市","children":[{"code":"450902","name":"玉州区","children":[{"code":"450902001","name":"玉城街道"},{"code":"450902002","name":"南江街道"},{"code":"450902003","name":"城西街道"},{"code":"450902004","name":"城北街道"},{"code":"450902005","name":"名山街道"},{"code":"450902100","name":"大塘镇"},{"code":"450902105","name":"茂林镇"},{"code":"450902106","name":"仁东镇"},{"code":"450902113","name":"仁厚镇"}]},{"code":"450903","name":"福绵区","children":[{"code":"450903107","name":"福绵镇"},{"code":"450903108","name":"成均镇"},{"code":"450903109","name":"樟木镇"},{"code":"450903110","name":"新桥镇"},{"code":"450903111","name":"沙田镇"},{"code":"450903112","name":"石和镇"}]},{"code":"450921","name":"容县","children":[{"code":"450921100","name":"容州镇"},{"code":"450921102","name":"杨梅镇"},{"code":"450921103","name":"灵山镇"},{"code":"450921104","name":"六王镇"},{"code":"450921105","name":"黎村镇"},{"code":"450921106","name":"杨村镇"},{"code":"450921107","name":"县底镇"},{"code":"450921108","name":"自良镇"},{"code":"450921109","name":"松山镇"},{"code":"450921110","name":"罗江镇"},{"code":"450921111","name":"石头镇"},{"code":"450921112","name":"石寨镇"},{"code":"450921113","name":"十里镇"},{"code":"450921114","name":"容西镇"},{"code":"450921115","name":"浪水镇"}]},{"code":"450922","name":"陆川县","children":[{"code":"450922101","name":"温泉镇"},{"code":"450922102","name":"米场镇"},{"code":"450922103","name":"马坡镇"},{"code":"450922104","name":"珊罗镇"},{"code":"450922105","name":"平乐镇"},{"code":"450922106","name":"沙坡镇"},{"code":"450922107","name":"大桥镇"},{"code":"450922108","name":"乌石镇"},{"code":"450922109","name":"良田镇"},{"code":"450922110","name":"清湖镇"},{"code":"450922111","name":"古城镇"},{"code":"450922112","name":"沙湖镇"},{"code":"450922113","name":"横山镇"},{"code":"450922114","name":"滩面镇"}]},{"code":"450923","name":"博白县","children":[{"code":"450923100","name":"博白镇"},{"code":"450923102","name":"双凤镇"},{"code":"450923105","name":"顿谷镇"},{"code":"450923106","name":"水鸣镇"},{"code":"450923107","name":"那林镇"},{"code":"450923108","name":"江宁镇"},{"code":"450923109","name":"三滩镇"},{"code":"450923110","name":"黄凌镇"},{"code":"450923111","name":"亚山镇"},{"code":"450923112","name":"旺茂镇"},{"code":"450923114","name":"东平镇"},{"code":"450923115","name":"沙河镇"},{"code":"450923116","name":"菱角镇"},{"code":"450923117","name":"新田镇"},{"code":"450923118","name":"凤山镇"},{"code":"450923119","name":"宁潭镇"},{"code":"450923120","name":"文地镇"},{"code":"450923121","name":"英桥镇"},{"code":"450923122","name":"那卜镇"},{"code":"450923123","name":"大垌镇"},{"code":"450923124","name":"沙陂镇"},{"code":"450923125","name":"双旺镇"},{"code":"450923126","name":"松旺镇"},{"code":"450923127","name":"龙潭镇"},{"code":"450923128","name":"大坝镇"},{"code":"450923129","name":"永安镇"},{"code":"450923130","name":"径口镇"},{"code":"450923131","name":"浪平镇"}]},{"code":"450924","name":"兴业县","children":[{"code":"450924100","name":"石南镇"},{"code":"450924101","name":"大平山镇"},{"code":"450924102","name":"葵阳镇"},{"code":"450924103","name":"城隍镇"},{"code":"450924104","name":"山心镇"},{"code":"450924105","name":"沙塘镇"},{"code":"450924106","name":"蒲塘镇"},{"code":"450924107","name":"北市镇"},{"code":"450924108","name":"龙安镇"},{"code":"450924109","name":"高峰镇"},{"code":"450924110","name":"小平山镇"},{"code":"450924111","name":"卖酒镇"},{"code":"450924112","name":"洛阳镇"}]},{"code":"450981","name":"北流市","children":[{"code":"450981001","name":"陵城街道"},{"code":"450981002","name":"城南街道"},{"code":"450981003","name":"城北街道"},{"code":"450981100","name":"北流镇"},{"code":"450981101","name":"新荣镇"},{"code":"450981102","name":"民安镇"},{"code":"450981103","name":"山围镇"},{"code":"450981104","name":"民乐镇"},{"code":"450981105","name":"西埌镇"},{"code":"450981106","name":"新圩镇"},{"code":"450981107","name":"大里镇"},{"code":"450981108","name":"塘岸镇"},{"code":"450981109","name":"清水口镇"},{"code":"450981110","name":"隆盛镇"},{"code":"450981111","name":"大坡外镇"},{"code":"450981112","name":"六麻镇"},{"code":"450981113","name":"新丰镇"},{"code":"450981114","name":"沙垌镇"},{"code":"450981115","name":"平政镇"},{"code":"450981116","name":"白马镇"},{"code":"450981117","name":"大伦镇"},{"code":"450981118","name":"扶新镇"},{"code":"450981119","name":"六靖镇"},{"code":"450981120","name":"石窝镇"},{"code":"450981121","name":"清湾镇"}]}]},{"code":"4510","name":"百色市","children":[{"code":"451002","name":"右江区","children":[{"code":"451002001","name":"百城街道"},{"code":"451002002","name":"龙景街道"},{"code":"451002101","name":"阳圩镇"},{"code":"451002102","name":"四塘镇"},{"code":"451002103","name":"龙川镇"},{"code":"451002104","name":"永乐镇"},{"code":"451002202","name":"汪甸瑶族乡"},{"code":"451002203","name":"大楞乡"},{"code":"451002204","name":"泮水乡"}]},{"code":"451003","name":"田阳区","children":[{"code":"451003100","name":"田州镇"},{"code":"451003101","name":"那坡镇"},{"code":"451003102","name":"坡洪镇"},{"code":"451003103","name":"那满镇"},{"code":"451003104","name":"百育镇"},{"code":"451003105","name":"玉凤镇"},{"code":"451003106","name":"头塘镇"},{"code":"451003107","name":"五村镇"},{"code":"451003108","name":"洞靖镇"},{"code":"451003204","name":"巴别乡"}]},{"code":"451022","name":"田东县","children":[{"code":"451022100","name":"平马镇"},{"code":"451022101","name":"祥周镇"},{"code":"451022103","name":"林逢镇"},{"code":"451022105","name":"思林镇"},{"code":"451022106","name":"印茶镇"},{"code":"451022107","name":"江城镇"},{"code":"451022108","name":"朔良镇"},{"code":"451022109","name":"义圩镇"},{"code":"451022110","name":"那拔镇"},{"code":"451022201","name":"作登瑶族乡"}]},{"code":"451024","name":"德保县","children":[{"code":"451024100","name":"城关镇"},{"code":"451024101","name":"足荣镇"},{"code":"451024102","name":"隆桑镇"},{"code":"451024103","name":"敬德镇"},{"code":"451024104","name":"马隘镇"},{"code":"451024105","name":"东凌镇"},{"code":"451024106","name":"那甲镇"},{"code":"451024200","name":"都安乡"},{"code":"451024203","name":"荣华乡"},{"code":"451024204","name":"燕峒乡"},{"code":"451024205","name":"龙光乡"},{"code":"451024206","name":"巴头乡"},{"code":"451024450","name":"德保铝业"}]},{"code":"451026","name":"那坡县","children":[{"code":"451026100","name":"城厢镇"},{"code":"451026101","name":"平孟镇"},{"code":"451026102","name":"龙合镇"},{"code":"451026200","name":"坡荷乡"},{"code":"451026203","name":"德隆乡"},{"code":"451026204","name":"百合乡"},{"code":"451026205","name":"百南乡"},{"code":"451026207","name":"百省乡"},{"code":"451026208","name":"百都乡"}]},{"code":"451027","name":"凌云县","children":[{"code":"451027100","name":"泗城镇"},{"code":"451027101","name":"逻楼镇"},{"code":"451027102","name":"加尤镇"},{"code":"451027103","name":"下甲镇"},{"code":"451027201","name":"伶站瑶族乡"},{"code":"451027202","name":"朝里瑶族乡"},{"code":"451027203","name":"沙里瑶族乡"},{"code":"451027205","name":"玉洪瑶族乡"}]},{"code":"451028","name":"乐业县","children":[{"code":"451028100","name":"同乐镇"},{"code":"451028101","name":"甘田镇"},{"code":"451028102","name":"新化镇"},{"code":"451028103","name":"花坪镇"},{"code":"451028201","name":"逻沙乡"},{"code":"451028203","name":"逻西乡"},{"code":"451028204","name":"幼平乡"},{"code":"451028205","name":"雅长乡"}]},{"code":"451029","name":"田林县","children":[{"code":"451029100","name":"乐里镇"},{"code":"451029101","name":"旧州镇"},{"code":"451029102","name":"定安镇"},{"code":"451029103","name":"六隆镇"},{"code":"451029104","name":"浪平镇"},{"code":"451029200","name":"潞城瑶族乡"},{"code":"451029201","name":"利周瑶族乡"},{"code":"451029202","name":"平塘乡"},{"code":"451029204","name":"八桂瑶族乡"},{"code":"451029205","name":"八渡瑶族乡"},{"code":"451029206","name":"那比乡"},{"code":"451029207","name":"高龙乡"},{"code":"451029208","name":"百乐乡"},{"code":"451029209","name":"者苗乡"}]},{"code":"451030","name":"西林县","children":[{"code":"451030100","name":"八达镇"},{"code":"451030101","name":"古障镇"},{"code":"451030102","name":"那劳镇"},{"code":"451030103","name":"马蚌镇"},{"code":"451030203","name":"普合苗族乡"},{"code":"451030204","name":"西平乡"},{"code":"451030206","name":"那佐苗族乡"},{"code":"451030208","name":"足别瑶族苗族乡"}]},{"code":"451031","name":"隆林各族自治县","children":[{"code":"451031100","name":"新州镇"},{"code":"451031101","name":"桠杈镇"},{"code":"451031102","name":"天生桥镇"},{"code":"451031103","name":"平班镇"},{"code":"451031104","name":"德峨镇"},{"code":"451031105","name":"隆或镇"},{"code":"451031200","name":"沙梨乡"},{"code":"451031203","name":"者保乡"},{"code":"451031204","name":"者浪乡"},{"code":"451031205","name":"革步乡"},{"code":"451031206","name":"金钟山乡"},{"code":"451031208","name":"猪场乡"},{"code":"451031210","name":"蛇场乡"},{"code":"451031211","name":"克长乡"},{"code":"451031213","name":"岩茶乡"},{"code":"451031215","name":"介廷乡"}]},{"code":"451081","name":"靖西市","children":[{"code":"451081100","name":"新靖镇"},{"code":"451081101","name":"化峒镇"},{"code":"451081102","name":"湖润镇"},{"code":"451081103","name":"安德镇"},{"code":"451081104","name":"龙临镇"},{"code":"451081105","name":"渠洋镇"},{"code":"451081106","name":"岳圩镇"},{"code":"451081107","name":"龙邦镇"},{"code":"451081108","name":"禄峒镇"},{"code":"451081109","name":"武平镇"},{"code":"451081110","name":"地州镇"},{"code":"451081200","name":"同德乡"},{"code":"451081201","name":"壬庄乡"},{"code":"451081202","name":"安宁乡"},{"code":"451081206","name":"南坡乡"},{"code":"451081207","name":"吞盘乡"},{"code":"451081209","name":"果乐乡"},{"code":"451081211","name":"新甲乡"},{"code":"451081215","name":"魁圩乡"}]},{"code":"451082","name":"平果市","children":[{"code":"451082100","name":"马头镇"},{"code":"451082101","name":"新安镇"},{"code":"451082102","name":"果化镇"},{"code":"451082103","name":"太平镇"},{"code":"451082104","name":"坡造镇"},{"code":"451082105","name":"四塘镇"},{"code":"451082106","name":"旧城镇"},{"code":"451082107","name":"榜圩镇"},{"code":"451082108","name":"凤梧镇"},{"code":"451082202","name":"海城乡"},{"code":"451082205","name":"黎明乡"},{"code":"451082206","name":"同老乡"},{"code":"451082450","name":"平果铝"}]}]},{"code":"4511","name":"贺州市","children":[{"code":"451102","name":"八步区","children":[{"code":"451102001","name":"八步街道"},{"code":"451102002","name":"城东街道"},{"code":"451102003","name":"江南街道"},{"code":"451102101","name":"贺街镇"},{"code":"451102102","name":"步头镇"},{"code":"451102103","name":"莲塘镇"},{"code":"451102104","name":"大宁镇"},{"code":"451102105","name":"南乡镇"},{"code":"451102106","name":"桂岭镇"},{"code":"451102107","name":"开山镇"},{"code":"451102109","name":"里松镇"},{"code":"451102114","name":"信都镇"},{"code":"451102115","name":"灵峰镇"},{"code":"451102116","name":"仁义镇"},{"code":"451102117","name":"铺门镇"},{"code":"451102200","name":"黄洞瑶族乡"}]},{"code":"451103","name":"平桂区","children":[{"code":"451103001","name":"西湾街道"},{"code":"451103101","name":"黄田镇"},{"code":"451103102","name":"鹅塘镇"},{"code":"451103103","name":"沙田镇"},{"code":"451103104","name":"公会镇"},{"code":"451103105","name":"水口镇"},{"code":"451103106","name":"望高镇"},{"code":"451103107","name":"羊头镇"},{"code":"451103201","name":"大平瑶族乡"}]},{"code":"451121","name":"昭平县","children":[{"code":"451121100","name":"昭平镇"},{"code":"451121101","name":"文竹镇"},{"code":"451121102","name":"黄姚镇"},{"code":"451121103","name":"富罗镇"},{"code":"451121104","name":"北陀镇"},{"code":"451121105","name":"马江镇"},{"code":"451121107","name":"五将镇"},{"code":"451121108","name":"走马镇"},{"code":"451121109","name":"樟木林镇"},{"code":"451121201","name":"仙回瑶族乡"},{"code":"451121206","name":"凤凰乡"},{"code":"451121208","name":"木格乡"}]},{"code":"451122","name":"钟山县","children":[{"code":"451122100","name":"钟山镇"},{"code":"451122104","name":"回龙镇"},{"code":"451122105","name":"石龙镇"},{"code":"451122106","name":"凤翔镇"},{"code":"451122107","name":"珊瑚镇"},{"code":"451122108","name":"同古镇"},{"code":"451122109","name":"公安镇"},{"code":"451122111","name":"清塘镇"},{"code":"451122112","name":"燕塘镇"},{"code":"451122113","name":"红花镇"},{"code":"451122200","name":"花山瑶族乡"},{"code":"451122201","name":"两安瑶族乡"}]},{"code":"451123","name":"富川瑶族自治县","children":[{"code":"451123100","name":"富阳镇"},{"code":"451123101","name":"白沙镇"},{"code":"451123102","name":"莲山镇"},{"code":"451123103","name":"古城镇"},{"code":"451123104","name":"福利镇"},{"code":"451123105","name":"麦岭镇"},{"code":"451123106","name":"葛坡镇"},{"code":"451123107","name":"城北镇"},{"code":"451123108","name":"朝东镇"},{"code":"451123200","name":"新华乡"},{"code":"451123201","name":"石家乡"},{"code":"451123203","name":"柳家乡"}]}]},{"code":"4512","name":"河池市","children":[{"code":"451202","name":"金城江区","children":[{"code":"451202001","name":"金城江街道"},{"code":"451202101","name":"东江镇"},{"code":"451202102","name":"六圩镇"},{"code":"451202103","name":"六甲镇"},{"code":"451202104","name":"河池镇"},{"code":"451202105","name":"拔贡镇"},{"code":"451202106","name":"九圩镇"},{"code":"451202107","name":"五圩镇"},{"code":"451202200","name":"白土乡"},{"code":"451202203","name":"侧岭乡"},{"code":"451202204","name":"保平乡"},{"code":"451202205","name":"长老乡"}]},{"code":"451203","name":"宜州区","children":[{"code":"451203100","name":"庆远镇"},{"code":"451203101","name":"三岔镇"},{"code":"451203102","name":"洛西镇"},{"code":"451203103","name":"怀远镇"},{"code":"451203104","name":"德胜镇"},{"code":"451203105","name":"石别镇"},{"code":"451203106","name":"北山镇"},{"code":"451203107","name":"刘三姐镇"},{"code":"451203108","name":"洛东镇"},{"code":"451203200","name":"祥贝乡"},{"code":"451203203","name":"屏南乡"},{"code":"451203207","name":"福龙瑶族乡"},{"code":"451203208","name":"北牙瑶族乡"},{"code":"451203210","name":"同德乡"},{"code":"451203211","name":"安马乡"},{"code":"451203213","name":"龙头乡"}]},{"code":"451221","name":"南丹县","children":[{"code":"451221100","name":"城关镇"},{"code":"451221101","name":"大厂镇"},{"code":"451221102","name":"车河镇"},{"code":"451221103","name":"芒场镇"},{"code":"451221104","name":"六寨镇"},{"code":"451221105","name":"月里镇"},{"code":"451221106","name":"吾隘镇"},{"code":"451221107","name":"罗富镇"},{"code":"451221202","name":"中堡苗族乡"},{"code":"451221203","name":"八圩瑶族乡"},{"code":"451221204","name":"里湖瑶族乡"}]},{"code":"451222","name":"天峨县","children":[{"code":"451222100","name":"六排镇"},{"code":"451222101","name":"向阳镇"},{"code":"451222200","name":"岜暮乡"},{"code":"451222201","name":"八腊瑶族乡"},{"code":"451222203","name":"纳直乡"},{"code":"451222204","name":"更新乡"},{"code":"451222206","name":"下老乡"},{"code":"451222207","name":"坡结乡"},{"code":"451222208","name":"三堡乡"}]},{"code":"451223","name":"凤山县","children":[{"code":"451223100","name":"凤城镇"},{"code":"451223101","name":"长洲镇"},{"code":"451223102","name":"三门海镇"},{"code":"451223201","name":"砦牙乡"},{"code":"451223203","name":"乔音乡"},{"code":"451223205","name":"金牙瑶族乡"},{"code":"451223207","name":"中亭乡"},{"code":"451223208","name":"平乐瑶族乡"},{"code":"451223209","name":"江洲瑶族乡"}]},{"code":"451224","name":"东兰县","children":[{"code":"451224100","name":"东兰镇"},{"code":"451224101","name":"隘洞镇"},{"code":"451224102","name":"长乐镇"},{"code":"451224103","name":"三石镇"},{"code":"451224104","name":"武篆镇"},{"code":"451224105","name":"长江镇"},{"code":"451224200","name":"泗孟乡"},{"code":"451224201","name":"兰木乡"},{"code":"451224203","name":"巴畴乡"},{"code":"451224204","name":"金谷乡"},{"code":"451224205","name":"三弄瑶族乡"},{"code":"451224206","name":"大同乡"},{"code":"451224207","name":"花香乡"},{"code":"451224208","name":"切学乡"}]},{"code":"451225","name":"罗城仫佬族自治县","children":[{"code":"451225100","name":"东门镇"},{"code":"451225101","name":"龙岸镇"},{"code":"451225102","name":"黄金镇"},{"code":"451225103","name":"小长安镇"},{"code":"451225105","name":"四把镇"},{"code":"451225106","name":"天河镇"},{"code":"451225107","name":"怀群镇"},{"code":"451225200","name":"宝坛乡"},{"code":"451225202","name":"乔善乡"},{"code":"451225203","name":"纳翁乡"},{"code":"451225204","name":"兼爱乡"}]},{"code":"451226","name":"环江毛南族自治县","children":[{"code":"451226100","name":"思恩镇"},{"code":"451226101","name":"水源镇"},{"code":"451226102","name":"洛阳镇"},{"code":"451226103","name":"川山镇"},{"code":"451226104","name":"明伦镇"},{"code":"451226105","name":"东兴镇"},{"code":"451226200","name":"大才乡"},{"code":"451226202","name":"下南乡"},{"code":"451226204","name":"大安乡"},{"code":"451226205","name":"长美乡"},{"code":"451226206","name":"龙岩乡"},{"code":"451226207","name":"驯乐苗族乡"}]},{"code":"451227","name":"巴马瑶族自治县","children":[{"code":"451227100","name":"巴马镇"},{"code":"451227101","name":"甲篆镇"},{"code":"451227102","name":"燕洞镇"},{"code":"451227202","name":"那社乡"},{"code":"451227203","name":"所略乡"},{"code":"451227205","name":"西山乡"},{"code":"451227207","name":"东山乡"},{"code":"451227208","name":"凤凰乡"},{"code":"451227209","name":"百林乡"},{"code":"451227210","name":"那桃乡"}]},{"code":"451228","name":"都安瑶族自治县","children":[{"code":"451228100","name":"安阳镇"},{"code":"451228101","name":"高岭镇"},{"code":"451228102","name":"地苏镇"},{"code":"451228103","name":"下坳镇"},{"code":"451228104","name":"拉烈镇"},{"code":"451228105","name":"百旺镇"},{"code":"451228106","name":"澄江镇"},{"code":"451228107","name":"大兴镇"},{"code":"451228108","name":"拉仁镇"},{"code":"451228109","name":"永安镇"},{"code":"451228204","name":"东庙乡"},{"code":"451228208","name":"隆福乡"},{"code":"451228209","name":"保安乡"},{"code":"451228210","name":"板岭乡"},{"code":"451228212","name":"三只羊乡"},{"code":"451228213","name":"龙湾乡"},{"code":"451228214","name":"菁盛乡"},{"code":"451228217","name":"加贵乡"},{"code":"451228219","name":"九渡乡"}]},{"code":"451229","name":"大化瑶族自治县","children":[{"code":"451229100","name":"大化镇"},{"code":"451229101","name":"都阳镇"},{"code":"451229102","name":"岩滩镇"},{"code":"451229103","name":"北景镇"},{"code":"451229200","name":"共和乡"},{"code":"451229201","name":"贡川乡"},{"code":"451229202","name":"百马乡"},{"code":"451229203","name":"古河乡"},{"code":"451229204","name":"古文乡"},{"code":"451229205","name":"江南乡"},{"code":"451229206","name":"羌圩乡"},{"code":"451229207","name":"乙圩乡"},{"code":"451229210","name":"板升乡"},{"code":"451229211","name":"七百弄乡"},{"code":"451229213","name":"雅龙乡"},{"code":"451229214","name":"六也乡"}]}]},{"code":"4513","name":"来宾市","children":[{"code":"451302","name":"兴宾区","children":[{"code":"451302001","name":"城东街道"},{"code":"451302002","name":"城北街道"},{"code":"451302003","name":"河西街道"},{"code":"451302005","name":"来华街道"},{"code":"451302101","name":"凤凰镇"},{"code":"451302102","name":"良江镇"},{"code":"451302103","name":"小平阳镇"},{"code":"451302104","name":"迁江镇"},{"code":"451302105","name":"石陵镇"},{"code":"451302106","name":"平阳镇"},{"code":"451302107","name":"蒙村镇"},{"code":"451302108","name":"大湾镇"},{"code":"451302109","name":"桥巩镇"},{"code":"451302110","name":"寺山镇"},{"code":"451302111","name":"城厢镇"},{"code":"451302112","name":"三五镇"},{"code":"451302113","name":"陶邓镇"},{"code":"451302114","name":"石牙镇"},{"code":"451302115","name":"五山镇"},{"code":"451302116","name":"良塘镇"},{"code":"451302206","name":"七洞乡"},{"code":"451302213","name":"南泗乡"},{"code":"451302214","name":"高安乡"},{"code":"451302216","name":"正龙乡"},{"code":"451302402","name":"来华投资区"}]},{"code":"451321","name":"忻城县","children":[{"code":"451321100","name":"城关镇"},{"code":"451321101","name":"大塘镇"},{"code":"451321102","name":"思练镇"},{"code":"451321103","name":"红渡镇"},{"code":"451321104","name":"古蓬镇"},{"code":"451321105","name":"果遂镇"},{"code":"451321201","name":"马泗乡"},{"code":"451321202","name":"欧洞乡"},{"code":"451321203","name":"安东乡"},{"code":"451321205","name":"新圩乡"},{"code":"451321206","name":"遂意乡"},{"code":"451321207","name":"北更乡"}]},{"code":"451322","name":"象州县","children":[{"code":"451322100","name":"象州镇"},{"code":"451322101","name":"石龙镇"},{"code":"451322102","name":"运江镇"},{"code":"451322103","name":"寺村镇"},{"code":"451322104","name":"中平镇"},{"code":"451322105","name":"罗秀镇"},{"code":"451322106","name":"大乐镇"},{"code":"451322107","name":"马坪镇"},{"code":"451322201","name":"妙皇乡"},{"code":"451322202","name":"百丈乡"},{"code":"451322203","name":"水晶乡"}]},{"code":"451323","name":"武宣县","children":[{"code":"451323100","name":"武宣镇"},{"code":"451323101","name":"桐岭镇"},{"code":"451323102","name":"通挽镇"},{"code":"451323103","name":"东乡镇"},{"code":"451323104","name":"三里镇"},{"code":"451323105","name":"二塘镇"},{"code":"451323106","name":"黄茆镇"},{"code":"451323107","name":"禄新镇"},{"code":"451323108","name":"思灵镇"},{"code":"451323204","name":"金鸡乡"}]},{"code":"451324","name":"金秀瑶族自治县","children":[{"code":"451324100","name":"金秀镇"},{"code":"451324101","name":"桐木镇"},{"code":"451324102","name":"头排镇"},{"code":"451324200","name":"三角乡"},{"code":"451324201","name":"忠良乡"},{"code":"451324202","name":"罗香乡"},{"code":"451324203","name":"长垌乡"},{"code":"451324204","name":"大樟乡"},{"code":"451324205","name":"六巷乡"},{"code":"451324207","name":"三江乡"}]},{"code":"451381","name":"合山市","children":[{"code":"451381100","name":"岭南镇"},{"code":"451381101","name":"北泗镇"},{"code":"451381102","name":"河里镇"}]}]},{"code":"4514","name":"崇左市","children":[{"code":"451402","name":"江州区","children":[{"code":"451402001","name":"太平街道"},{"code":"451402002","name":"江南街道"},{"code":"451402003","name":"石景林街道"},{"code":"451402101","name":"新和镇"},{"code":"451402102","name":"濑湍镇"},{"code":"451402103","name":"江州镇"},{"code":"451402104","name":"左州镇"},{"code":"451402105","name":"那隆镇"},{"code":"451402106","name":"驮卢镇"},{"code":"451402201","name":"罗白乡"},{"code":"451402202","name":"板利乡"},{"code":"451402400","name":"新和华侨农场"},{"code":"451402401","name":"左江华侨农场"},{"code":"451402402","name":"中泰产业园"}]},{"code":"451421","name":"扶绥县","children":[{"code":"451421100","name":"新宁镇"},{"code":"451421101","name":"渠黎镇"},{"code":"451421102","name":"渠旧镇"},{"code":"451421103","name":"柳桥镇"},{"code":"451421104","name":"东门镇"},{"code":"451421105","name":"山圩镇"},{"code":"451421106","name":"中东镇"},{"code":"451421107","name":"东罗镇"},{"code":"451421201","name":"龙头乡"},{"code":"451421202","name":"岜盆乡"},{"code":"451421203","name":"昌平乡"},{"code":"451421401","name":"中国东盟南宁空港扶绥经济区"},{"code":"451421402","name":"扶绥县木业家居产业集聚区"}]},{"code":"451422","name":"宁明县","children":[{"code":"451422100","name":"城中镇"},{"code":"451422101","name":"爱店镇"},{"code":"451422102","name":"明江镇"},{"code":"451422103","name":"海渊镇"},{"code":"451422104","name":"桐棉镇"},{"code":"451422105","name":"那堪镇"},{"code":"451422106","name":"亭亮镇"},{"code":"451422202","name":"寨安乡"},{"code":"451422203","name":"峙浪乡"},{"code":"451422204","name":"东安乡"},{"code":"451422205","name":"板棍乡"},{"code":"451422206","name":"北江乡"},{"code":"451422209","name":"那楠乡"},{"code":"451422401","name":"国营宁明华侨农场"},{"code":"451422402","name":"国营天西华侨农场"},{"code":"451422403","name":"国营海渊华侨农场"}]},{"code":"451423","name":"龙州县","children":[{"code":"451423100","name":"龙州镇"},{"code":"451423101","name":"下冻镇"},{"code":"451423102","name":"水口镇"},{"code":"451423103","name":"金龙镇"},{"code":"451423104","name":"响水镇"},{"code":"451423201","name":"八角乡"},{"code":"451423202","name":"上降乡"},{"code":"451423203","name":"彬桥乡"},{"code":"451423204","name":"上龙乡"},{"code":"451423205","name":"武德乡"},{"code":"451423206","name":"逐卜乡"},{"code":"451423207","name":"上金乡"}]},{"code":"451424","name":"大新县","children":[{"code":"451424100","name":"桃城镇"},{"code":"451424101","name":"全茗镇"},{"code":"451424102","name":"雷平镇"},{"code":"451424103","name":"硕龙镇"},{"code":"451424104","name":"下雷镇"},{"code":"451424200","name":"五山乡"},{"code":"451424201","name":"龙门乡"},{"code":"451424202","name":"昌明乡"},{"code":"451424203","name":"福隆乡"},{"code":"451424204","name":"那岭乡"},{"code":"451424205","name":"恩城乡"},{"code":"451424206","name":"榄圩乡"},{"code":"451424207","name":"宝圩乡"},{"code":"451424208","name":"堪圩乡"},{"code":"451424400","name":"国营桃城华侨农场"}]},{"code":"451425","name":"天等县","children":[{"code":"451425100","name":"天等镇"},{"code":"451425101","name":"龙茗镇"},{"code":"451425102","name":"进结镇"},{"code":"451425103","name":"向都镇"},{"code":"451425104","name":"东平镇"},{"code":"451425105","name":"福新镇"},{"code":"451425200","name":"都康乡"},{"code":"451425201","name":"宁干乡"},{"code":"451425202","name":"驮堪乡"},{"code":"451425205","name":"进远乡"},{"code":"451425206","name":"上映乡"},{"code":"451425207","name":"把荷乡"},{"code":"451425208","name":"小山乡"}]},{"code":"451481","name":"凭祥市","children":[{"code":"451481100","name":"凭祥镇"},{"code":"451481101","name":"友谊镇"},{"code":"451481102","name":"上石镇"},{"code":"451481103","name":"夏石镇"},{"code":"451481400","name":"广西凭祥综合保税区"}]}]}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市","children":[{"code":"460105","name":"秀英区","children":[{"code":"460105001","name":"秀英街道"},{"code":"460105002","name":"海秀街道"},{"code":"460105100","name":"长流镇"},{"code":"460105101","name":"西秀镇"},{"code":"460105102","name":"海秀镇"},{"code":"460105103","name":"石山镇"},{"code":"460105104","name":"永兴镇"},{"code":"460105105","name":"东山镇"}]},{"code":"460106","name":"龙华区","children":[{"code":"460106001","name":"中山街道"},{"code":"460106002","name":"滨海街道"},{"code":"460106003","name":"金贸街道"},{"code":"460106004","name":"大同街道"},{"code":"460106005","name":"海垦街道"},{"code":"460106006","name":"金宇街道"},{"code":"460106100","name":"城西镇"},{"code":"460106101","name":"龙桥镇"},{"code":"460106102","name":"新坡镇"},{"code":"460106103","name":"遵谭镇"},{"code":"460106104","name":"龙泉镇"}]},{"code":"460107","name":"琼山区","children":[{"code":"460107001","name":"国兴街道"},{"code":"460107002","name":"府城街道"},{"code":"460107003","name":"滨江街道"},{"code":"460107004","name":"凤翔街道"},{"code":"460107101","name":"龙塘镇"},{"code":"460107102","name":"云龙镇"},{"code":"460107103","name":"红旗镇"},{"code":"460107104","name":"三门坡镇"},{"code":"460107105","name":"大坡镇"},{"code":"460107106","name":"甲子镇"},{"code":"460107107","name":"旧州镇"},{"code":"460107500","name":"省岭脚热带作物场"},{"code":"460107501","name":"省长昌煤矿"}]},{"code":"460108","name":"美兰区","children":[{"code":"460108001","name":"海府街道"},{"code":"460108002","name":"蓝天街道"},{"code":"460108003","name":"博爱街道"},{"code":"460108004","name":"海甸街道"},{"code":"460108005","name":"人民路街道"},{"code":"460108006","name":"白龙街道"},{"code":"460108007","name":"和平南街道"},{"code":"460108008","name":"白沙街道"},{"code":"460108009","name":"新埠街道"},{"code":"460108101","name":"灵山镇"},{"code":"460108102","name":"演丰镇"},{"code":"460108103","name":"三江镇"},{"code":"460108104","name":"大致坡镇"},{"code":"460108400","name":"海口桂林洋经济开发区(农场)"},{"code":"460108500","name":"罗牛山农场"}]}]},{"code":"4602","name":"三亚市","children":[{"code":"460202","name":"海棠区","children":[{"code":"460202198","name":"海棠区直辖村级区划"}]},{"code":"460203","name":"吉阳区","children":[{"code":"460203198","name":"吉阳区直辖村级区划"}]},{"code":"460204","name":"天涯区","children":[{"code":"460204198","name":"天涯区直辖村级区划"}]},{"code":"460205","name":"崖州区","children":[{"code":"460205198","name":"崖州区直辖村级区划"}]}]},{"code":"4603","name":"三沙市","children":[{"code":"460321","name":"西沙群岛","children":[{"code":"460321451","name":"永兴"},{"code":"460321452","name":"永乐"},{"code":"460321453","name":"七连屿"}]},{"code":"460322","name":"南沙群岛","children":[{"code":"460322451","name":"永暑岛"}]},{"code":"460323","name":"中沙群岛的岛礁及其海域","children":[{"code":"460323451","name":"中沙岛礁"}]}]},{"code":"4604","name":"儋州市","children":[{"code":"460400","name":"儋州市","children":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]}]},{"code":"4690","name":"省直辖县级行政区划","children":[{"code":"469001","name":"五指山市","children":[{"code":"469001100","name":"通什镇"},{"code":"469001101","name":"南圣镇"},{"code":"469001102","name":"毛阳镇"},{"code":"469001103","name":"番阳镇"},{"code":"469001198","name":"县直辖村级区划"},{"code":"469001200","name":"畅好乡"},{"code":"469001201","name":"毛道乡"},{"code":"469001202","name":"水满乡"}]},{"code":"469002","name":"琼海市","children":[{"code":"469002100","name":"嘉积镇"},{"code":"469002101","name":"万泉镇"},{"code":"469002102","name":"石壁镇"},{"code":"469002103","name":"中原镇"},{"code":"469002104","name":"博鳌镇"},{"code":"469002105","name":"阳江镇"},{"code":"469002106","name":"龙江镇"},{"code":"469002107","name":"潭门镇"},{"code":"469002108","name":"塔洋镇"},{"code":"469002109","name":"长坡镇"},{"code":"469002110","name":"大路镇"},{"code":"469002111","name":"会山镇"},{"code":"469002500","name":"彬村山华侨农场"}]},{"code":"469005","name":"文昌市","children":[{"code":"469005100","name":"文城镇"},{"code":"469005101","name":"重兴镇"},{"code":"469005102","name":"蓬莱镇"},{"code":"469005103","name":"会文镇"},{"code":"469005104","name":"东路镇"},{"code":"469005105","name":"潭牛镇"},{"code":"469005106","name":"东阁镇"},{"code":"469005107","name":"文教镇"},{"code":"469005108","name":"东郊镇"},{"code":"469005109","name":"龙楼镇"},{"code":"469005110","name":"昌洒镇"},{"code":"469005111","name":"翁田镇"},{"code":"469005112","name":"抱罗镇"},{"code":"469005113","name":"冯坡镇"},{"code":"469005114","name":"锦山镇"},{"code":"469005115","name":"铺前镇"},{"code":"469005116","name":"公坡镇"}]},{"code":"469006","name":"万宁市","children":[{"code":"469006100","name":"万城镇"},{"code":"469006101","name":"龙滚镇"},{"code":"469006102","name":"和乐镇"},{"code":"469006103","name":"后安镇"},{"code":"469006104","name":"大茂镇"},{"code":"469006105","name":"东澳镇"},{"code":"469006106","name":"礼纪镇"},{"code":"469006107","name":"长丰镇"},{"code":"469006108","name":"山根镇"},{"code":"469006109","name":"北大镇"},{"code":"469006110","name":"南桥镇"},{"code":"469006111","name":"三更罗镇"},{"code":"469006500","name":"兴隆华侨农场"},{"code":"469006501","name":"地方国营六连林场"}]},{"code":"469007","name":"东方市","children":[{"code":"469007100","name":"八所镇"},{"code":"469007101","name":"东河镇"},{"code":"469007102","name":"大田镇"},{"code":"469007103","name":"感城镇"},{"code":"469007104","name":"板桥镇"},{"code":"469007105","name":"三家镇"},{"code":"469007106","name":"四更镇"},{"code":"469007107","name":"新龙镇"},{"code":"469007200","name":"天安乡"},{"code":"469007201","name":"江边乡"},{"code":"469007500","name":"东方华侨农场"}]},{"code":"469021","name":"定安县","children":[{"code":"469021100","name":"定城镇"},{"code":"469021101","name":"新竹镇"},{"code":"469021102","name":"龙湖镇"},{"code":"469021103","name":"黄竹镇"},{"code":"469021104","name":"雷鸣镇"},{"code":"469021105","name":"龙门镇"},{"code":"469021106","name":"龙河镇"},{"code":"469021107","name":"岭口镇"},{"code":"469021108","name":"翰林镇"},{"code":"469021109","name":"富文镇"}]},{"code":"469022","name":"屯昌县","children":[{"code":"469022100","name":"屯城镇"},{"code":"469022101","name":"新兴镇"},{"code":"469022102","name":"枫木镇"},{"code":"469022103","name":"乌坡镇"},{"code":"469022104","name":"南吕镇"},{"code":"469022105","name":"南坤镇"},{"code":"469022106","name":"坡心镇"},{"code":"469022107","name":"西昌镇"}]},{"code":"469023","name":"澄迈县","children":[{"code":"469023100","name":"金江镇"},{"code":"469023101","name":"老城镇"},{"code":"469023102","name":"瑞溪镇"},{"code":"469023103","name":"永发镇"},{"code":"469023104","name":"加乐镇"},{"code":"469023105","name":"文儒镇"},{"code":"469023106","name":"中兴镇"},{"code":"469023107","name":"仁兴镇"},{"code":"469023108","name":"福山镇"},{"code":"469023109","name":"桥头镇"},{"code":"469023110","name":"大丰镇"},{"code":"469023405","name":"国营金安农场"}]},{"code":"469024","name":"临高县","children":[{"code":"469024100","name":"临城镇"},{"code":"469024101","name":"波莲镇"},{"code":"469024102","name":"东英镇"},{"code":"469024103","name":"博厚镇"},{"code":"469024104","name":"皇桐镇"},{"code":"469024105","name":"多文镇"},{"code":"469024106","name":"和舍镇"},{"code":"469024107","name":"南宝镇"},{"code":"469024108","name":"新盈镇"},{"code":"469024109","name":"调楼镇"},{"code":"469024401","name":"国营加来农场"}]},{"code":"469025","name":"白沙黎族自治县","children":[{"code":"469025100","name":"牙叉镇"},{"code":"469025101","name":"七坊镇"},{"code":"469025102","name":"邦溪镇"},{"code":"469025103","name":"打安镇"},{"code":"469025200","name":"细水乡"},{"code":"469025201","name":"元门乡"},{"code":"469025202","name":"南开乡"},{"code":"469025203","name":"阜龙乡"},{"code":"469025204","name":"青松乡"},{"code":"469025205","name":"金波乡"},{"code":"469025206","name":"荣邦乡"}]},{"code":"469026","name":"昌江黎族自治县","children":[{"code":"469026100","name":"石碌镇"},{"code":"469026101","name":"叉河镇"},{"code":"469026102","name":"十月田镇"},{"code":"469026103","name":"乌烈镇"},{"code":"469026104","name":"昌化镇"},{"code":"469026105","name":"海尾镇"},{"code":"469026106","name":"七叉镇"},{"code":"469026200","name":"王下乡"},{"code":"469026500","name":"国营霸王岭林场"}]},{"code":"469027","name":"乐东黎族自治县","children":[{"code":"469027100","name":"抱由镇"},{"code":"469027101","name":"万冲镇"},{"code":"469027102","name":"大安镇"},{"code":"469027103","name":"志仲镇"},{"code":"469027104","name":"千家镇"},{"code":"469027105","name":"九所镇"},{"code":"469027106","name":"利国镇"},{"code":"469027107","name":"黄流镇"},{"code":"469027108","name":"佛罗镇"},{"code":"469027109","name":"尖峰镇"},{"code":"469027110","name":"莺歌海镇"},{"code":"469027500","name":"国营尖峰岭林业公司"},{"code":"469027501","name":"国营莺歌海盐场"}]},{"code":"469028","name":"陵水黎族自治县","children":[{"code":"469028100","name":"椰林镇"},{"code":"469028101","name":"光坡镇"},{"code":"469028102","name":"三才镇"},{"code":"469028103","name":"英州镇"},{"code":"469028104","name":"隆广镇"},{"code":"469028105","name":"文罗镇"},{"code":"469028106","name":"本号镇"},{"code":"469028107","name":"新村镇"},{"code":"469028108","name":"黎安镇"},{"code":"469028200","name":"提蒙乡"},{"code":"469028201","name":"群英乡"},{"code":"469028500","name":"国营吊罗山林业公司"}]},{"code":"469029","name":"保亭黎族苗族自治县","children":[{"code":"469029100","name":"保城镇"},{"code":"469029101","name":"什玲镇"},{"code":"469029102","name":"加茂镇"},{"code":"469029103","name":"响水镇"},{"code":"469029104","name":"新政镇"},{"code":"469029105","name":"三道镇"},{"code":"469029198","name":"县直辖村级区划"},{"code":"469029200","name":"六弓乡"},{"code":"469029201","name":"南林乡"},{"code":"469029202","name":"毛感乡"}]},{"code":"469030","name":"琼中黎族苗族自治县","children":[{"code":"469030100","name":"营根镇"},{"code":"469030101","name":"湾岭镇"},{"code":"469030102","name":"黎母山镇"},{"code":"469030103","name":"和平镇"},{"code":"469030104","name":"长征镇"},{"code":"469030105","name":"红毛镇"},{"code":"469030106","name":"中平镇"},{"code":"469030200","name":"吊罗山乡"},{"code":"469030201","name":"上安乡"},{"code":"469030202","name":"什运乡"},{"code":"469030500","name":"海南热带雨林国家公园管理局黎母山分局"}]}]}]},{"code":"50","name":"重庆市","children":[{"code":"5001","name":"市辖区","children":[{"code":"500101","name":"万州区","children":[{"code":"500101001","name":"高笋塘街道"},{"code":"500101017","name":"太白街道"},{"code":"500101018","name":"牌楼街道"},{"code":"500101019","name":"双河口街道"},{"code":"500101020","name":"龙都街道"},{"code":"500101021","name":"周家坝街道"},{"code":"500101022","name":"沙河街道"},{"code":"500101023","name":"钟鼓楼街道"},{"code":"500101024","name":"百安坝街道"},{"code":"500101025","name":"五桥街道"},{"code":"500101026","name":"陈家坝街道"},{"code":"500101027","name":"高峰街道"},{"code":"500101028","name":"天城街道"},{"code":"500101029","name":"九池街道"},{"code":"500101109","name":"小周镇"},{"code":"500101110","name":"大周镇"},{"code":"500101123","name":"新乡镇"},{"code":"500101132","name":"孙家镇"},{"code":"500101135","name":"龙沙镇"},{"code":"500101136","name":"响水镇"},{"code":"500101137","name":"武陵镇"},{"code":"500101138","name":"瀼渡镇"},{"code":"500101139","name":"甘宁镇"},{"code":"500101141","name":"熊家镇"},{"code":"500101142","name":"高梁镇"},{"code":"500101143","name":"李河镇"},{"code":"500101144","name":"分水镇"},{"code":"500101145","name":"余家镇"},{"code":"500101146","name":"后山镇"},{"code":"500101147","name":"弹子镇"},{"code":"500101148","name":"长岭镇"},{"code":"500101149","name":"新田镇"},{"code":"500101150","name":"白羊镇"},{"code":"500101151","name":"龙驹镇"},{"code":"500101152","name":"走马镇"},{"code":"500101153","name":"罗田镇"},{"code":"500101154","name":"太龙镇"},{"code":"500101155","name":"长滩镇"},{"code":"500101156","name":"太安镇"},{"code":"500101157","name":"白土镇"},{"code":"500101158","name":"郭村镇"},{"code":"500101201","name":"柱山乡"},{"code":"500101212","name":"铁峰乡"},{"code":"500101225","name":"溪口乡"},{"code":"500101226","name":"长坪乡"},{"code":"500101227","name":"燕山乡"},{"code":"500101234","name":"梨树乡"},{"code":"500101237","name":"普子乡"},{"code":"500101238","name":"地宝土家族乡"},{"code":"500101239","name":"恒合土家族乡"},{"code":"500101244","name":"黄柏乡"},{"code":"500101247","name":"茨竹乡"}]},{"code":"500102","name":"涪陵区","children":[{"code":"500102006","name":"敦仁街道"},{"code":"500102007","name":"崇义街道"},{"code":"500102008","name":"荔枝街道"},{"code":"500102009","name":"江北街道"},{"code":"500102010","name":"江东街道"},{"code":"500102011","name":"李渡街道"},{"code":"500102012","name":"龙桥街道"},{"code":"500102013","name":"白涛街道"},{"code":"500102014","name":"马鞍街道"},{"code":"500102015","name":"蔺市街道"},{"code":"500102016","name":"义和街道"},{"code":"500102103","name":"南沱镇"},{"code":"500102107","name":"青羊镇"},{"code":"500102118","name":"百胜镇"},{"code":"500102119","name":"珍溪镇"},{"code":"500102120","name":"清溪镇"},{"code":"500102121","name":"焦石镇"},{"code":"500102122","name":"马武镇"},{"code":"500102123","name":"龙潭镇"},{"code":"500102125","name":"新妙镇"},{"code":"500102126","name":"石沱镇"},{"code":"500102128","name":"同乐镇"},{"code":"500102129","name":"大顺镇"},{"code":"500102130","name":"增福镇"},{"code":"500102131","name":"罗云镇"},{"code":"500102206","name":"大木乡"},{"code":"500102208","name":"武陵山乡"}]},{"code":"500103","name":"渝中区","children":[{"code":"500103001","name":"七星岗街道"},{"code":"500103003","name":"解放碑街道"},{"code":"500103004","name":"两路口街道"},{"code":"500103005","name":"上清寺街道"},{"code":"500103007","name":"菜园坝街道"},{"code":"500103008","name":"南纪门街道"},{"code":"500103010","name":"朝天门街道"},{"code":"500103011","name":"大溪沟街道"},{"code":"500103012","name":"大坪街道"},{"code":"500103013","name":"化龙桥街道"},{"code":"500103014","name":"石油路街道"}]},{"code":"500104","name":"大渡口区","children":[{"code":"500104001","name":"新山村街道"},{"code":"500104002","name":"跃进村街道"},{"code":"500104003","name":"九宫庙街道"},{"code":"500104004","name":"茄子溪街道"},{"code":"500104005","name":"春晖路街道"},{"code":"500104101","name":"八桥镇"},{"code":"500104102","name":"建胜镇"},{"code":"500104103","name":"跳磴镇"}]},{"code":"500105","name":"江北区","children":[{"code":"500105001","name":"华新街街道"},{"code":"500105002","name":"江北城街道"},{"code":"500105003","name":"石马河街道"},{"code":"500105004","name":"大石坝街道"},{"code":"500105005","name":"寸滩街道"},{"code":"500105006","name":"观音桥街道"},{"code":"500105007","name":"五里店街道"},{"code":"500105008","name":"郭家沱街道"},{"code":"500105009","name":"铁山坪街道"},{"code":"500105100","name":"鱼嘴镇"},{"code":"500105101","name":"复盛镇"},{"code":"500105102","name":"五宝镇"}]},{"code":"500106","name":"沙坪坝区","children":[{"code":"500106001","name":"小龙坎街道"},{"code":"500106002","name":"沙坪坝街道"},{"code":"500106003","name":"渝碚路街道"},{"code":"500106004","name":"磁器口街道"},{"code":"500106005","name":"童家桥街道"},{"code":"500106006","name":"石井坡街道"},{"code":"500106007","name":"双碑街道"},{"code":"500106008","name":"井口街道"},{"code":"500106009","name":"歌乐山街道"},{"code":"500106010","name":"山洞街道"},{"code":"500106011","name":"新桥街道"},{"code":"500106012","name":"天星桥街道"},{"code":"500106013","name":"土湾街道"},{"code":"500106014","name":"覃家岗街道"},{"code":"500106015","name":"陈家桥街道"},{"code":"500106016","name":"虎溪街道"},{"code":"500106017","name":"西永街道"},{"code":"500106018","name":"联芳街道"},{"code":"500106019","name":"丰文街道"},{"code":"500106020","name":"香炉山街道"},{"code":"500106021","name":"土主街道"},{"code":"500106104","name":"青木关镇"},{"code":"500106105","name":"凤凰镇"},{"code":"500106106","name":"回龙坝镇"},{"code":"500106108","name":"曾家镇"},{"code":"500106112","name":"中梁镇"}]},{"code":"500107","name":"九龙坡区","children":[{"code":"500107001","name":"杨家坪街道"},{"code":"500107002","name":"黄桷坪街道"},{"code":"500107003","name":"谢家湾街道"},{"code":"500107004","name":"石坪桥街道"},{"code":"500107005","name":"石桥铺街道"},{"code":"500107006","name":"中梁山街道"},{"code":"500107007","name":"渝州路街道"},{"code":"500107008","name":"二郎街道"},{"code":"500107009","name":"九龙街道"},{"code":"500107102","name":"华岩镇"},{"code":"500107103","name":"含谷镇"},{"code":"500107104","name":"金凤镇"},{"code":"500107105","name":"白市驿镇"},{"code":"500107106","name":"走马镇"},{"code":"500107107","name":"石板镇"},{"code":"500107108","name":"巴福镇"},{"code":"500107109","name":"陶家镇"},{"code":"500107110","name":"西彭镇"},{"code":"500107111","name":"铜罐驿镇"}]},{"code":"500108","name":"南岸区","children":[{"code":"500108001","name":"铜元局街道"},{"code":"500108002","name":"花园路街道"},{"code":"500108003","name":"南坪街道"},{"code":"500108004","name":"海棠溪街道"},{"code":"500108005","name":"龙门浩街道"},{"code":"500108006","name":"弹子石街道"},{"code":"500108007","name":"南山街道"},{"code":"500108008","name":"天文街道"},{"code":"500108101","name":"南坪镇"},{"code":"500108102","name":"涂山镇"},{"code":"500108103","name":"鸡冠石镇"},{"code":"500108105","name":"峡口镇"},{"code":"500108106","name":"长生桥镇"},{"code":"500108107","name":"迎龙镇"},{"code":"500108108","name":"广阳镇"}]},{"code":"500109","name":"北碚区","children":[{"code":"500109001","name":"天生街道"},{"code":"500109002","name":"朝阳街道"},{"code":"500109003","name":"北温泉街道"},{"code":"500109004","name":"东阳街道"},{"code":"500109005","name":"龙凤桥街道"},{"code":"500109006","name":"蔡家岗街道"},{"code":"500109007","name":"歇马街道"},{"code":"500109008","name":"水土街道"},{"code":"500109009","name":"复兴街道"},{"code":"500109102","name":"澄江镇"},{"code":"500109104","name":"童家溪镇"},{"code":"500109105","name":"天府镇"},{"code":"500109108","name":"施家梁镇"},{"code":"500109110","name":"静观镇"},{"code":"500109111","name":"柳荫镇"},{"code":"500109113","name":"三圣镇"},{"code":"500109116","name":"金刀峡镇"}]},{"code":"500110","name":"綦江区","children":[{"code":"500110001","name":"古南街道"},{"code":"500110002","name":"文龙街道"},{"code":"500110003","name":"三江街道"},{"code":"500110004","name":"万盛街道"},{"code":"500110005","name":"东林街道"},{"code":"500110006","name":"新盛街道"},{"code":"500110007","name":"通惠街道"},{"code":"500110100","name":"万东镇"},{"code":"500110101","name":"南桐镇"},{"code":"500110102","name":"青年镇"},{"code":"500110103","name":"关坝镇"},{"code":"500110104","name":"丛林镇"},{"code":"500110105","name":"石林镇"},{"code":"500110106","name":"金桥镇"},{"code":"500110107","name":"黑山镇"},{"code":"500110108","name":"石角镇"},{"code":"500110109","name":"东溪镇"},{"code":"500110110","name":"赶水镇"},{"code":"500110111","name":"打通镇"},{"code":"500110112","name":"石壕镇"},{"code":"500110113","name":"永新镇"},{"code":"500110114","name":"三角镇"},{"code":"500110115","name":"隆盛镇"},{"code":"500110116","name":"郭扶镇"},{"code":"500110117","name":"篆塘镇"},{"code":"500110118","name":"丁山镇"},{"code":"500110119","name":"安稳镇"},{"code":"500110120","name":"扶欢镇"},{"code":"500110121","name":"永城镇"},{"code":"500110123","name":"中峰镇"},{"code":"500110124","name":"横山镇"}]},{"code":"500111","name":"大足区","children":[{"code":"500111001","name":"龙岗街道"},{"code":"500111002","name":"棠香街道"},{"code":"500111003","name":"龙滩子街道"},{"code":"500111004","name":"双路街道"},{"code":"500111005","name":"通桥街道"},{"code":"500111006","name":"智凤街道"},{"code":"500111100","name":"龙水镇"},{"code":"500111102","name":"宝顶镇"},{"code":"500111103","name":"中敖镇"},{"code":"500111104","name":"三驱镇"},{"code":"500111105","name":"宝兴镇"},{"code":"500111106","name":"玉龙镇"},{"code":"500111107","name":"石马镇"},{"code":"500111108","name":"拾万镇"},{"code":"500111109","name":"回龙镇"},{"code":"500111110","name":"金山镇"},{"code":"500111111","name":"万古镇"},{"code":"500111112","name":"国梁镇"},{"code":"500111113","name":"雍溪镇"},{"code":"500111114","name":"珠溪镇"},{"code":"500111115","name":"龙石镇"},{"code":"500111116","name":"邮亭镇"},{"code":"500111117","name":"铁山镇"},{"code":"500111118","name":"高升镇"},{"code":"500111119","name":"季家镇"},{"code":"500111120","name":"古龙镇"},{"code":"500111121","name":"高坪镇"}]},{"code":"500112","name":"渝北区","children":[{"code":"500112002","name":"双龙湖街道"},{"code":"500112004","name":"回兴街道"},{"code":"500112007","name":"鸳鸯街道"},{"code":"500112008","name":"翠云街道"},{"code":"500112009","name":"人和街道"},{"code":"500112010","name":"天宫殿街道"},{"code":"500112011","name":"龙溪街道"},{"code":"500112012","name":"龙山街道"},{"code":"500112013","name":"龙塔街道"},{"code":"500112014","name":"大竹林街道"},{"code":"500112015","name":"悦来街道"},{"code":"500112016","name":"两路街道"},{"code":"500112017","name":"双凤桥街道"},{"code":"500112018","name":"王家街道"},{"code":"500112019","name":"礼嘉街道"},{"code":"500112020","name":"宝圣湖街道"},{"code":"500112021","name":"金山街道"},{"code":"500112022","name":"康美街道"},{"code":"500112023","name":"仙桃街道"},{"code":"500112129","name":"玉峰山镇"},{"code":"500112131","name":"龙兴镇"},{"code":"500112133","name":"统景镇"},{"code":"500112135","name":"大湾镇"},{"code":"500112138","name":"兴隆镇"},{"code":"500112139","name":"木耳镇"},{"code":"500112140","name":"茨竹镇"},{"code":"500112141","name":"古路镇"},{"code":"500112142","name":"石船镇"},{"code":"500112143","name":"大盛镇"},{"code":"500112144","name":"洛碛镇"}]},{"code":"500113","name":"巴南区","children":[{"code":"500113003","name":"龙洲湾街道"},{"code":"500113004","name":"鱼洞街道"},{"code":"500113005","name":"花溪街道"},{"code":"500113006","name":"李家沱街道"},{"code":"500113007","name":"南泉街道"},{"code":"500113008","name":"一品街道"},{"code":"500113009","name":"南彭街道"},{"code":"500113010","name":"惠民街道"},{"code":"500113011","name":"莲花街道"},{"code":"500113103","name":"界石镇"},{"code":"500113107","name":"安澜镇"},{"code":"500113108","name":"圣灯山镇"},{"code":"500113109","name":"木洞镇"},{"code":"500113110","name":"双河口镇"},{"code":"500113111","name":"麻柳嘴镇"},{"code":"500113112","name":"丰盛镇"},{"code":"500113113","name":"二圣镇"},{"code":"500113114","name":"东温泉镇"},{"code":"500113115","name":"姜家镇"},{"code":"500113116","name":"天星寺镇"},{"code":"500113117","name":"接龙镇"},{"code":"500113118","name":"石滩镇"},{"code":"500113119","name":"石龙镇"}]},{"code":"500114","name":"黔江区","children":[{"code":"500114001","name":"城东街道"},{"code":"500114002","name":"城南街道"},{"code":"500114003","name":"城西街道"},{"code":"500114004","name":"正阳街道"},{"code":"500114005","name":"舟白街道"},{"code":"500114006","name":"冯家街道"},{"code":"500114105","name":"阿蓬江镇"},{"code":"500114106","name":"石会镇"},{"code":"500114107","name":"黑溪镇"},{"code":"500114108","name":"黄溪镇"},{"code":"500114109","name":"黎水镇"},{"code":"500114110","name":"金溪镇"},{"code":"500114111","name":"马喇镇"},{"code":"500114112","name":"濯水镇"},{"code":"500114113","name":"石家镇"},{"code":"500114114","name":"鹅池镇"},{"code":"500114117","name":"小南海镇"},{"code":"500114119","name":"邻鄂镇"},{"code":"500114120","name":"白石镇"},{"code":"500114121","name":"中塘镇"},{"code":"500114122","name":"沙坝镇"},{"code":"500114123","name":"太极镇"},{"code":"500114124","name":"五里镇"},{"code":"500114125","name":"水市镇"},{"code":"500114246","name":"蓬东乡"},{"code":"500114249","name":"杉岭乡"},{"code":"500114251","name":"水田乡"},{"code":"500114252","name":"白土乡"},{"code":"500114253","name":"金洞乡"},{"code":"500114256","name":"新华乡"}]},{"code":"500115","name":"长寿区","children":[{"code":"500115001","name":"凤城街道"},{"code":"500115002","name":"晏家街道"},{"code":"500115003","name":"江南街道"},{"code":"500115004","name":"渡舟街道"},{"code":"500115005","name":"新市街道"},{"code":"500115006","name":"八颗街道"},{"code":"500115007","name":"菩提街道"},{"code":"500115123","name":"邻封镇"},{"code":"500115124","name":"但渡镇"},{"code":"500115125","name":"云集镇"},{"code":"500115126","name":"长寿湖镇"},{"code":"500115127","name":"双龙镇"},{"code":"500115128","name":"龙河镇"},{"code":"500115129","name":"石堰镇"},{"code":"500115130","name":"云台镇"},{"code":"500115131","name":"海棠镇"},{"code":"500115132","name":"葛兰镇"},{"code":"500115136","name":"洪湖镇"},{"code":"500115137","name":"万顺镇"}]},{"code":"500116","name":"江津区","children":[{"code":"500116001","name":"几江街道"},{"code":"500116002","name":"德感街道"},{"code":"500116004","name":"双福街道"},{"code":"500116005","name":"鼎山街道"},{"code":"500116006","name":"圣泉街道"},{"code":"500116101","name":"油溪镇"},{"code":"500116102","name":"吴滩镇"},{"code":"500116103","name":"石门镇"},{"code":"500116104","name":"朱杨镇"},{"code":"500116105","name":"石蟆镇"},{"code":"500116106","name":"永兴镇"},{"code":"500116107","name":"塘河镇"},{"code":"500116108","name":"白沙镇"},{"code":"500116109","name":"龙华镇"},{"code":"500116110","name":"李市镇"},{"code":"500116111","name":"慈云镇"},{"code":"500116112","name":"蔡家镇"},{"code":"500116113","name":"中山镇"},{"code":"500116114","name":"嘉平镇"},{"code":"500116115","name":"柏林镇"},{"code":"500116116","name":"先锋镇"},{"code":"500116117","name":"珞璜镇"},{"code":"500116118","name":"贾嗣镇"},{"code":"500116119","name":"夏坝镇"},{"code":"500116120","name":"西湖镇"},{"code":"500116121","name":"杜市镇"},{"code":"500116122","name":"广兴镇"},{"code":"500116123","name":"四面山镇"},{"code":"500116124","name":"支坪镇"},{"code":"500116125","name":"四屏镇"}]},{"code":"500117","name":"合川区","children":[{"code":"500117001","name":"合阳城街道"},{"code":"500117002","name":"钓鱼城街道"},{"code":"500117003","name":"南津街街道"},{"code":"500117004","name":"盐井街道"},{"code":"500117005","name":"草街街道"},{"code":"500117006","name":"云门街道"},{"code":"500117007","name":"大石街道"},{"code":"500117100","name":"沙鱼镇"},{"code":"500117101","name":"官渡镇"},{"code":"500117102","name":"涞滩镇"},{"code":"500117103","name":"肖家镇"},{"code":"500117104","name":"古楼镇"},{"code":"500117105","name":"三庙镇"},{"code":"500117106","name":"二郎镇"},{"code":"500117107","name":"龙凤镇"},{"code":"500117108","name":"隆兴镇"},{"code":"500117109","name":"铜溪镇"},{"code":"500117112","name":"双凤镇"},{"code":"500117113","name":"狮滩镇"},{"code":"500117114","name":"清平镇"},{"code":"500117115","name":"土场镇"},{"code":"500117116","name":"小沔镇"},{"code":"500117117","name":"三汇镇"},{"code":"500117118","name":"香龙镇"},{"code":"500117120","name":"钱塘镇"},{"code":"500117121","name":"龙市镇"},{"code":"500117123","name":"燕窝镇"},{"code":"500117124","name":"太和镇"},{"code":"500117125","name":"渭沱镇"},{"code":"500117126","name":"双槐镇"}]},{"code":"500118","name":"永川区","children":[{"code":"500118001","name":"中山路街道"},{"code":"500118002","name":"胜利路街道"},{"code":"500118003","name":"南大街街道"},{"code":"500118004","name":"茶山竹海街道"},{"code":"500118005","name":"大安街道"},{"code":"500118006","name":"陈食街道"},{"code":"500118007","name":"卫星湖街道"},{"code":"500118100","name":"青峰镇"},{"code":"500118102","name":"金龙镇"},{"code":"500118104","name":"临江镇"},{"code":"500118106","name":"何埂镇"},{"code":"500118107","name":"松溉镇"},{"code":"500118108","name":"仙龙镇"},{"code":"500118109","name":"吉安镇"},{"code":"500118110","name":"五间镇"},{"code":"500118111","name":"来苏镇"},{"code":"500118112","name":"宝峰镇"},{"code":"500118113","name":"双石镇"},{"code":"500118114","name":"红炉镇"},{"code":"500118115","name":"永荣镇"},{"code":"500118116","name":"三教镇"},{"code":"500118117","name":"板桥镇"},{"code":"500118118","name":"朱沱镇"}]},{"code":"500119","name":"南川区","children":[{"code":"500119001","name":"东城街道"},{"code":"500119002","name":"南城街道"},{"code":"500119003","name":"西城街道"},{"code":"500119100","name":"三泉镇"},{"code":"500119101","name":"南平镇"},{"code":"500119102","name":"神童镇"},{"code":"500119103","name":"鸣玉镇"},{"code":"500119104","name":"大观镇"},{"code":"500119105","name":"兴隆镇"},{"code":"500119106","name":"太平场镇"},{"code":"500119107","name":"白沙镇"},{"code":"500119108","name":"水江镇"},{"code":"500119109","name":"石墙镇"},{"code":"500119110","name":"金山镇"},{"code":"500119111","name":"头渡镇"},{"code":"500119112","name":"大有镇"},{"code":"500119113","name":"合溪镇"},{"code":"500119114","name":"黎香湖镇"},{"code":"500119115","name":"山王坪镇"},{"code":"500119116","name":"木凉镇"},{"code":"500119117","name":"楠竹山镇"},{"code":"500119118","name":"石溪镇"},{"code":"500119119","name":"德隆镇"},{"code":"500119120","name":"民主镇"},{"code":"500119121","name":"福寿镇"},{"code":"500119122","name":"河图镇"},{"code":"500119123","name":"庆元镇"},{"code":"500119124","name":"古花镇"},{"code":"500119125","name":"石莲镇"},{"code":"500119126","name":"乾丰镇"},{"code":"500119127","name":"骑龙镇"},{"code":"500119128","name":"冷水关镇"},{"code":"500119207","name":"中桥乡"},{"code":"500119212","name":"峰岩乡"}]},{"code":"500120","name":"璧山区","children":[{"code":"500120001","name":"璧城街道"},{"code":"500120002","name":"璧泉街道"},{"code":"500120003","name":"青杠街道"},{"code":"500120004","name":"来凤街道"},{"code":"500120005","name":"丁家街道"},{"code":"500120006","name":"大路街道"},{"code":"500120100","name":"八塘镇"},{"code":"500120101","name":"七塘镇"},{"code":"500120102","name":"河边镇"},{"code":"500120103","name":"福禄镇"},{"code":"500120104","name":"大兴镇"},{"code":"500120105","name":"正兴镇"},{"code":"500120106","name":"广普镇"},{"code":"500120107","name":"三合镇"},{"code":"500120108","name":"健龙镇"}]},{"code":"500151","name":"铜梁区","children":[{"code":"500151001","name":"巴川街道"},{"code":"500151002","name":"东城街道"},{"code":"500151003","name":"南城街道"},{"code":"500151004","name":"蒲吕街道"},{"code":"500151005","name":"旧县街道"},{"code":"500151101","name":"土桥镇"},{"code":"500151103","name":"二坪镇"},{"code":"500151104","name":"水口镇"},{"code":"500151105","name":"安居镇"},{"code":"500151106","name":"白羊镇"},{"code":"500151107","name":"平滩镇"},{"code":"500151108","name":"小林镇"},{"code":"500151109","name":"双山镇"},{"code":"500151110","name":"虎峰镇"},{"code":"500151111","name":"石鱼镇"},{"code":"500151112","name":"福果镇"},{"code":"500151113","name":"庆隆镇"},{"code":"500151114","name":"少云镇"},{"code":"500151115","name":"维新镇"},{"code":"500151116","name":"高楼镇"},{"code":"500151117","name":"大庙镇"},{"code":"500151118","name":"围龙镇"},{"code":"500151119","name":"华兴镇"},{"code":"500151120","name":"永嘉镇"},{"code":"500151121","name":"安溪镇"},{"code":"500151122","name":"西河镇"},{"code":"500151123","name":"侣俸镇"},{"code":"500151124","name":"太平镇"}]},{"code":"500152","name":"潼南区","children":[{"code":"500152001","name":"桂林街道"},{"code":"500152002","name":"梓潼街道"},{"code":"500152003","name":"大佛街道"},{"code":"500152101","name":"上和镇"},{"code":"500152102","name":"龙形镇"},{"code":"500152103","name":"古溪镇"},{"code":"500152104","name":"宝龙镇"},{"code":"500152107","name":"玉溪镇"},{"code":"500152108","name":"米心镇"},{"code":"500152109","name":"群力镇"},{"code":"500152110","name":"双江镇"},{"code":"500152112","name":"花岩镇"},{"code":"500152113","name":"柏梓镇"},{"code":"500152114","name":"崇龛镇"},{"code":"500152115","name":"塘坝镇"},{"code":"500152116","name":"新胜镇"},{"code":"500152117","name":"太安镇"},{"code":"500152119","name":"小渡镇"},{"code":"500152120","name":"卧佛镇"},{"code":"500152121","name":"五桂镇"},{"code":"500152122","name":"田家镇"},{"code":"500152123","name":"别口镇"},{"code":"500152124","name":"寿桥镇"}]},{"code":"500153","name":"荣昌区","children":[{"code":"500153001","name":"昌元街道"},{"code":"500153002","name":"昌州街道"},{"code":"500153003","name":"广顺街道"},{"code":"500153004","name":"双河街道"},{"code":"500153005","name":"安富街道"},{"code":"500153006","name":"峰高街道"},{"code":"500153100","name":"荣隆镇"},{"code":"500153101","name":"仁义镇"},{"code":"500153102","name":"盘龙镇"},{"code":"500153103","name":"吴家镇"},{"code":"500153104","name":"直升镇"},{"code":"500153105","name":"万灵镇"},{"code":"500153106","name":"清升镇"},{"code":"500153107","name":"清江镇"},{"code":"500153108","name":"古昌镇"},{"code":"500153109","name":"河包镇"},{"code":"500153110","name":"观胜镇"},{"code":"500153111","name":"铜鼓镇"},{"code":"500153112","name":"清流镇"},{"code":"500153113","name":"远觉镇"},{"code":"500153114","name":"龙集镇"}]},{"code":"500154","name":"开州区","children":[{"code":"500154001","name":"汉丰街道"},{"code":"500154002","name":"文峰街道"},{"code":"500154003","name":"云枫街道"},{"code":"500154004","name":"镇东街道"},{"code":"500154005","name":"丰乐街道"},{"code":"500154006","name":"白鹤街道"},{"code":"500154007","name":"赵家街道"},{"code":"500154008","name":"正安街道"},{"code":"500154100","name":"大德镇"},{"code":"500154102","name":"厚坝镇"},{"code":"500154103","name":"金峰镇"},{"code":"500154104","name":"温泉镇"},{"code":"500154105","name":"郭家镇"},{"code":"500154106","name":"白桥镇"},{"code":"500154107","name":"和谦镇"},{"code":"500154108","name":"河堰镇"},{"code":"500154109","name":"大进镇"},{"code":"500154110","name":"谭家镇"},{"code":"500154111","name":"敦好镇"},{"code":"500154112","name":"高桥镇"},{"code":"500154113","name":"九龙山镇"},{"code":"500154114","name":"天和镇"},{"code":"500154115","name":"中和镇"},{"code":"500154116","name":"义和镇"},{"code":"500154117","name":"临江镇"},{"code":"500154118","name":"竹溪镇"},{"code":"500154119","name":"铁桥镇"},{"code":"500154120","name":"南雅镇"},{"code":"500154121","name":"巫山镇"},{"code":"500154122","name":"岳溪镇"},{"code":"500154123","name":"长沙镇"},{"code":"500154124","name":"南门镇"},{"code":"500154125","name":"渠口镇"},{"code":"500154126","name":"满月镇"},{"code":"500154127","name":"雪宝山镇"},{"code":"500154201","name":"关面乡"},{"code":"500154203","name":"麻柳乡"},{"code":"500154204","name":"紫水乡"},{"code":"500154205","name":"三汇口乡"},{"code":"500154206","name":"五通乡"}]},{"code":"500155","name":"梁平区","children":[{"code":"500155001","name":"梁山街道"},{"code":"500155002","name":"双桂街道"},{"code":"500155003","name":"仁贤街道"},{"code":"500155004","name":"金带街道"},{"code":"500155005","name":"合兴街道"},{"code":"500155102","name":"礼让镇"},{"code":"500155103","name":"云龙镇"},{"code":"500155104","name":"屏锦镇"},{"code":"500155106","name":"袁驿镇"},{"code":"500155107","name":"新盛镇"},{"code":"500155108","name":"福禄镇"},{"code":"500155110","name":"聚奎镇"},{"code":"500155111","name":"明达镇"},{"code":"500155112","name":"荫平镇"},{"code":"500155113","name":"和林镇"},{"code":"500155114","name":"回龙镇"},{"code":"500155115","name":"碧山镇"},{"code":"500155116","name":"虎城镇"},{"code":"500155117","name":"七星镇"},{"code":"500155118","name":"龙门镇"},{"code":"500155119","name":"文化镇"},{"code":"500155121","name":"石安镇"},{"code":"500155122","name":"柏家镇"},{"code":"500155123","name":"大观镇"},{"code":"500155124","name":"竹山镇"},{"code":"500155125","name":"蟠龙镇"},{"code":"500155126","name":"星桥镇"},{"code":"500155127","name":"曲水镇"},{"code":"500155128","name":"安胜镇"},{"code":"500155129","name":"复平镇"},{"code":"500155130","name":"紫照镇"},{"code":"500155201","name":"铁门乡"},{"code":"500155202","name":"龙胜乡"}]},{"code":"500156","name":"武隆区","children":[{"code":"500156001","name":"凤山街道"},{"code":"500156002","name":"芙蓉街道"},{"code":"500156003","name":"仙女山街道"},{"code":"500156004","name":"羊角街道"},{"code":"500156101","name":"白马镇"},{"code":"500156102","name":"江口镇"},{"code":"500156104","name":"火炉镇"},{"code":"500156105","name":"鸭江镇"},{"code":"500156107","name":"长坝镇"},{"code":"500156108","name":"平桥镇"},{"code":"500156109","name":"桐梓镇"},{"code":"500156111","name":"和顺镇"},{"code":"500156112","name":"双河镇"},{"code":"500156113","name":"凤来镇"},{"code":"500156201","name":"庙垭乡"},{"code":"500156202","name":"石桥苗族土家族乡"},{"code":"500156203","name":"黄莺乡"},{"code":"500156204","name":"沧沟乡"},{"code":"500156205","name":"文复苗族土家族乡"},{"code":"500156206","name":"土地乡"},{"code":"500156207","name":"白云乡"},{"code":"500156208","name":"后坪苗族土家族乡"},{"code":"500156209","name":"浩口苗族仡佬族乡"},{"code":"500156210","name":"接龙乡"},{"code":"500156211","name":"赵家乡"},{"code":"500156212","name":"大洞河乡"}]}]},{"code":"5002","name":"县","children":[{"code":"500229","name":"城口县","children":[{"code":"500229001","name":"葛城街道"},{"code":"500229002","name":"复兴街道"},{"code":"500229102","name":"巴山镇"},{"code":"500229103","name":"坪坝镇"},{"code":"500229104","name":"庙坝镇"},{"code":"500229105","name":"明通镇"},{"code":"500229106","name":"修齐镇"},{"code":"500229107","name":"高观镇"},{"code":"500229108","name":"高燕镇"},{"code":"500229109","name":"东安镇"},{"code":"500229110","name":"咸宜镇"},{"code":"500229111","name":"高楠镇"},{"code":"500229201","name":"龙田乡"},{"code":"500229202","name":"北屏乡"},{"code":"500229205","name":"左岚乡"},{"code":"500229208","name":"沿河乡"},{"code":"500229210","name":"双河乡"},{"code":"500229211","name":"蓼子乡"},{"code":"500229212","name":"鸡鸣乡"},{"code":"500229214","name":"周溪乡"},{"code":"500229216","name":"明中乡"},{"code":"500229217","name":"治平乡"},{"code":"500229219","name":"岚天乡"},{"code":"500229220","name":"厚坪乡"},{"code":"500229221","name":"河鱼乡"}]},{"code":"500230","name":"丰都县","children":[{"code":"500230001","name":"三合街道"},{"code":"500230002","name":"名山街道"},{"code":"500230101","name":"虎威镇"},{"code":"500230102","name":"社坛镇"},{"code":"500230103","name":"三元镇"},{"code":"500230104","name":"许明寺镇"},{"code":"500230105","name":"董家镇"},{"code":"500230106","name":"树人镇"},{"code":"500230107","name":"十直镇"},{"code":"500230109","name":"高家镇"},{"code":"500230110","name":"兴义镇"},{"code":"500230111","name":"双路镇"},{"code":"500230112","name":"江池镇"},{"code":"500230113","name":"龙河镇"},{"code":"500230114","name":"武平镇"},{"code":"500230115","name":"包鸾镇"},{"code":"500230116","name":"湛普镇"},{"code":"500230118","name":"南天湖镇"},{"code":"500230119","name":"保合镇"},{"code":"500230120","name":"兴龙镇"},{"code":"500230121","name":"仁沙镇"},{"code":"500230122","name":"龙孔镇"},{"code":"500230123","name":"暨龙镇"},{"code":"500230124","name":"双龙镇"},{"code":"500230125","name":"仙女湖镇"},{"code":"500230202","name":"青龙乡"},{"code":"500230206","name":"太平坝乡"},{"code":"500230207","name":"都督乡"},{"code":"500230209","name":"栗子乡"},{"code":"500230210","name":"三建乡"}]},{"code":"500231","name":"垫江县","children":[{"code":"500231001","name":"桂溪街道"},{"code":"500231002","name":"桂阳街道"},{"code":"500231101","name":"新民镇"},{"code":"500231102","name":"沙坪镇"},{"code":"500231103","name":"周嘉镇"},{"code":"500231104","name":"普顺镇"},{"code":"500231105","name":"永安镇"},{"code":"500231106","name":"高安镇"},{"code":"500231107","name":"高峰镇"},{"code":"500231108","name":"五洞镇"},{"code":"500231109","name":"澄溪镇"},{"code":"500231110","name":"太平镇"},{"code":"500231111","name":"鹤游镇"},{"code":"500231112","name":"坪山镇"},{"code":"500231113","name":"砚台镇"},{"code":"500231114","name":"曹回镇"},{"code":"500231115","name":"杠家镇"},{"code":"500231116","name":"包家镇"},{"code":"500231117","name":"白家镇"},{"code":"500231118","name":"永平镇"},{"code":"500231119","name":"三溪镇"},{"code":"500231120","name":"裴兴镇"},{"code":"500231121","name":"黄沙镇"},{"code":"500231122","name":"长龙镇"},{"code":"500231202","name":"沙河乡"},{"code":"500231204","name":"大石乡"}]},{"code":"500233","name":"忠县","children":[{"code":"500233001","name":"忠州街道"},{"code":"500233002","name":"白公街道"},{"code":"500233003","name":"乌杨街道"},{"code":"500233004","name":"新生街道"},{"code":"500233102","name":"任家镇"},{"code":"500233104","name":"洋渡镇"},{"code":"500233105","name":"东溪镇"},{"code":"500233106","name":"复兴镇"},{"code":"500233107","name":"石宝镇"},{"code":"500233108","name":"汝溪镇"},{"code":"500233109","name":"野鹤镇"},{"code":"500233110","name":"官坝镇"},{"code":"500233111","name":"石黄镇"},{"code":"500233112","name":"马灌镇"},{"code":"500233113","name":"金鸡镇"},{"code":"500233114","name":"新立镇"},{"code":"500233115","name":"双桂镇"},{"code":"500233116","name":"拔山镇"},{"code":"500233117","name":"花桥镇"},{"code":"500233118","name":"永丰镇"},{"code":"500233119","name":"三汇镇"},{"code":"500233120","name":"白石镇"},{"code":"500233122","name":"黄金镇"},{"code":"500233201","name":"善广乡"},{"code":"500233203","name":"石子乡"},{"code":"500233204","name":"磨子土家族乡"},{"code":"500233206","name":"涂井乡"},{"code":"500233208","name":"金声乡"},{"code":"500233210","name":"兴峰乡"}]},{"code":"500235","name":"云阳县","children":[{"code":"500235001","name":"双江街道"},{"code":"500235002","name":"青龙街道"},{"code":"500235003","name":"人和街道"},{"code":"500235004","name":"盘龙街道"},{"code":"500235105","name":"龙角镇"},{"code":"500235107","name":"故陵镇"},{"code":"500235108","name":"红狮镇"},{"code":"500235115","name":"路阳镇"},{"code":"500235116","name":"农坝镇"},{"code":"500235118","name":"渠马镇"},{"code":"500235121","name":"黄石镇"},{"code":"500235122","name":"巴阳镇"},{"code":"500235123","name":"沙市镇"},{"code":"500235124","name":"鱼泉镇"},{"code":"500235125","name":"凤鸣镇"},{"code":"500235127","name":"宝坪镇"},{"code":"500235128","name":"南溪镇"},{"code":"500235129","name":"双土镇"},{"code":"500235130","name":"桑坪镇"},{"code":"500235131","name":"江口镇"},{"code":"500235132","name":"高阳镇"},{"code":"500235133","name":"平安镇"},{"code":"500235135","name":"云阳镇"},{"code":"500235136","name":"云安镇"},{"code":"500235137","name":"栖霞镇"},{"code":"500235138","name":"双龙镇"},{"code":"500235139","name":"泥溪镇"},{"code":"500235140","name":"蔈草镇"},{"code":"500235141","name":"养鹿镇"},{"code":"500235142","name":"水口镇"},{"code":"500235143","name":"堰坪镇"},{"code":"500235144","name":"龙洞镇"},{"code":"500235145","name":"后叶镇"},{"code":"500235146","name":"耀灵镇"},{"code":"500235147","name":"大阳镇"},{"code":"500235208","name":"外郎乡"},{"code":"500235215","name":"新津乡"},{"code":"500235216","name":"普安乡"},{"code":"500235218","name":"洞鹿乡"},{"code":"500235219","name":"石门乡"},{"code":"500235239","name":"上坝乡"},{"code":"500235242","name":"清水土家族乡"}]},{"code":"500236","name":"奉节县","children":[{"code":"500236001","name":"永安街道"},{"code":"500236002","name":"鱼复街道"},{"code":"500236003","name":"夔门街道"},{"code":"500236004","name":"夔州街道"},{"code":"500236117","name":"白帝镇"},{"code":"500236118","name":"草堂镇"},{"code":"500236119","name":"汾河镇"},{"code":"500236120","name":"康乐镇"},{"code":"500236121","name":"大树镇"},{"code":"500236122","name":"竹园镇"},{"code":"500236123","name":"公平镇"},{"code":"500236124","name":"朱衣镇"},{"code":"500236125","name":"甲高镇"},{"code":"500236126","name":"羊市镇"},{"code":"500236127","name":"吐祥镇"},{"code":"500236128","name":"兴隆镇"},{"code":"500236129","name":"青龙镇"},{"code":"500236130","name":"新民镇"},{"code":"500236131","name":"永乐镇"},{"code":"500236132","name":"安坪镇"},{"code":"500236133","name":"五马镇"},{"code":"500236134","name":"青莲镇"},{"code":"500236265","name":"岩湾乡"},{"code":"500236266","name":"平安乡"},{"code":"500236267","name":"红土乡"},{"code":"500236269","name":"石岗乡"},{"code":"500236270","name":"康坪乡"},{"code":"500236272","name":"太和土家族乡"},{"code":"500236274","name":"鹤峰乡"},{"code":"500236275","name":"冯坪乡"},{"code":"500236276","name":"长安土家族乡"},{"code":"500236277","name":"龙桥土家族乡"},{"code":"500236278","name":"云雾土家族乡"}]},{"code":"500237","name":"巫山县","children":[{"code":"500237001","name":"高唐街道"},{"code":"500237002","name":"龙门街道"},{"code":"500237101","name":"庙宇镇"},{"code":"500237102","name":"大昌镇"},{"code":"500237103","name":"福田镇"},{"code":"500237104","name":"龙溪镇"},{"code":"500237105","name":"双龙镇"},{"code":"500237106","name":"官阳镇"},{"code":"500237107","name":"骡坪镇"},{"code":"500237108","name":"抱龙镇"},{"code":"500237109","name":"官渡镇"},{"code":"500237110","name":"铜鼓镇"},{"code":"500237111","name":"巫峡镇"},{"code":"500237200","name":"红椿乡"},{"code":"500237207","name":"两坪乡"},{"code":"500237208","name":"曲尺乡"},{"code":"500237210","name":"建平乡"},{"code":"500237211","name":"大溪乡"},{"code":"500237214","name":"金坪乡"},{"code":"500237216","name":"平河乡"},{"code":"500237219","name":"当阳乡"},{"code":"500237222","name":"竹贤乡"},{"code":"500237225","name":"三溪乡"},{"code":"500237227","name":"培石乡"},{"code":"500237229","name":"笃坪乡"},{"code":"500237231","name":"邓家乡"}]},{"code":"500238","name":"巫溪县","children":[{"code":"500238001","name":"宁河街道"},{"code":"500238002","name":"柏杨街道"},{"code":"500238100","name":"城厢镇"},{"code":"500238101","name":"凤凰镇"},{"code":"500238102","name":"宁厂镇"},{"code":"500238103","name":"上磺镇"},{"code":"500238104","name":"古路镇"},{"code":"500238105","name":"文峰镇"},{"code":"500238106","name":"徐家镇"},{"code":"500238107","name":"白鹿镇"},{"code":"500238108","name":"尖山镇"},{"code":"500238109","name":"下堡镇"},{"code":"500238110","name":"峰灵镇"},{"code":"500238111","name":"塘坊镇"},{"code":"500238112","name":"朝阳镇"},{"code":"500238113","name":"田坝镇"},{"code":"500238114","name":"通城镇"},{"code":"500238115","name":"菱角镇"},{"code":"500238116","name":"蒲莲镇"},{"code":"500238117","name":"土城镇"},{"code":"500238118","name":"红池坝镇"},{"code":"500238204","name":"胜利乡"},{"code":"500238207","name":"大河乡"},{"code":"500238208","name":"天星乡"},{"code":"500238210","name":"长桂乡"},{"code":"500238226","name":"鱼鳞乡"},{"code":"500238227","name":"乌龙乡"},{"code":"500238237","name":"花台乡"},{"code":"500238239","name":"兰英乡"},{"code":"500238240","name":"双阳乡"},{"code":"500238242","name":"中梁乡"},{"code":"500238243","name":"天元乡"}]},{"code":"500240","name":"石柱土家族自治县","children":[{"code":"500240001","name":"南宾街道"},{"code":"500240002","name":"万安街道"},{"code":"500240003","name":"下路街道"},{"code":"500240101","name":"西沱镇"},{"code":"500240103","name":"悦崃镇"},{"code":"500240104","name":"临溪镇"},{"code":"500240105","name":"黄水镇"},{"code":"500240106","name":"马武镇"},{"code":"500240107","name":"沙子镇"},{"code":"500240108","name":"王场镇"},{"code":"500240109","name":"沿溪镇"},{"code":"500240110","name":"龙沙镇"},{"code":"500240111","name":"鱼池镇"},{"code":"500240112","name":"三河镇"},{"code":"500240113","name":"大歇镇"},{"code":"500240114","name":"桥头镇"},{"code":"500240115","name":"万朝镇"},{"code":"500240116","name":"冷水镇"},{"code":"500240117","name":"黄鹤镇"},{"code":"500240118","name":"枫木镇"},{"code":"500240203","name":"黎场乡"},{"code":"500240204","name":"三星乡"},{"code":"500240205","name":"六塘乡"},{"code":"500240207","name":"三益乡"},{"code":"500240208","name":"王家乡"},{"code":"500240209","name":"河嘴乡"},{"code":"500240210","name":"石家乡"},{"code":"500240213","name":"中益乡"},{"code":"500240214","name":"洗新乡"},{"code":"500240216","name":"龙潭乡"},{"code":"500240217","name":"新乐乡"},{"code":"500240218","name":"金铃乡"},{"code":"500240219","name":"金竹乡"}]},{"code":"500241","name":"秀山土家族苗族自治县","children":[{"code":"500241001","name":"中和街道"},{"code":"500241002","name":"乌杨街道"},{"code":"500241003","name":"平凯街道"},{"code":"500241004","name":"官庄街道"},{"code":"500241005","name":"清溪场街道"},{"code":"500241103","name":"隘口镇"},{"code":"500241104","name":"溶溪镇"},{"code":"500241106","name":"龙池镇"},{"code":"500241107","name":"石堤镇"},{"code":"500241108","name":"峨溶镇"},{"code":"500241109","name":"洪安镇"},{"code":"500241110","name":"雅江镇"},{"code":"500241111","name":"石耶镇"},{"code":"500241112","name":"梅江镇"},{"code":"500241113","name":"兰桥镇"},{"code":"500241114","name":"膏田镇"},{"code":"500241115","name":"溪口镇"},{"code":"500241116","name":"妙泉镇"},{"code":"500241117","name":"宋农镇"},{"code":"500241118","name":"里仁镇"},{"code":"500241119","name":"钟灵镇"},{"code":"500241120","name":"龙凤坝镇"},{"code":"500241121","name":"涌洞镇"},{"code":"500241207","name":"海洋乡"},{"code":"500241208","name":"大溪乡"},{"code":"500241214","name":"中平乡"},{"code":"500241215","name":"岑溪乡"}]},{"code":"500242","name":"酉阳土家族苗族自治县","children":[{"code":"500242001","name":"桃花源街道"},{"code":"500242002","name":"钟多街道"},{"code":"500242101","name":"龙潭镇"},{"code":"500242102","name":"麻旺镇"},{"code":"500242103","name":"酉酬镇"},{"code":"500242104","name":"大溪镇"},{"code":"500242105","name":"兴隆镇"},{"code":"500242106","name":"黑水镇"},{"code":"500242107","name":"丁市镇"},{"code":"500242108","name":"龚滩镇"},{"code":"500242109","name":"李溪镇"},{"code":"500242110","name":"泔溪镇"},{"code":"500242111","name":"酉水河镇"},{"code":"500242112","name":"苍岭镇"},{"code":"500242113","name":"小河镇"},{"code":"500242114","name":"板溪镇"},{"code":"500242115","name":"涂市镇"},{"code":"500242116","name":"铜鼓镇"},{"code":"500242117","name":"五福镇"},{"code":"500242118","name":"万木镇"},{"code":"500242119","name":"南腰界镇"},{"code":"500242204","name":"可大乡"},{"code":"500242205","name":"偏柏乡"},{"code":"500242207","name":"木叶乡"},{"code":"500242208","name":"毛坝乡"},{"code":"500242209","name":"花田乡"},{"code":"500242210","name":"后坪乡"},{"code":"500242211","name":"天馆乡"},{"code":"500242212","name":"宜居乡"},{"code":"500242214","name":"两罾乡"},{"code":"500242215","name":"板桥乡"},{"code":"500242216","name":"官清乡"},{"code":"500242218","name":"车田乡"},{"code":"500242219","name":"腴地乡"},{"code":"500242220","name":"清泉乡"},{"code":"500242221","name":"庙溪乡"},{"code":"500242222","name":"浪坪乡"},{"code":"500242223","name":"双泉乡"},{"code":"500242224","name":"楠木乡"}]},{"code":"500243","name":"彭水苗族土家族自治县","children":[{"code":"500243001","name":"汉葭街道"},{"code":"500243002","name":"绍庆街道"},{"code":"500243003","name":"靛水街道"},{"code":"500243101","name":"保家镇"},{"code":"500243102","name":"郁山镇"},{"code":"500243103","name":"高谷镇"},{"code":"500243104","name":"桑柘镇"},{"code":"500243105","name":"鹿角镇"},{"code":"500243106","name":"黄家镇"},{"code":"500243107","name":"普子镇"},{"code":"500243108","name":"龙射镇"},{"code":"500243109","name":"连湖镇"},{"code":"500243110","name":"万足镇"},{"code":"500243111","name":"平安镇"},{"code":"500243112","name":"长生镇"},{"code":"500243113","name":"新田镇"},{"code":"500243114","name":"鞍子镇"},{"code":"500243115","name":"太原镇"},{"code":"500243116","name":"龙溪镇"},{"code":"500243117","name":"梅子垭镇"},{"code":"500243118","name":"大同镇"},{"code":"500243201","name":"岩东乡"},{"code":"500243202","name":"鹿鸣乡"},{"code":"500243204","name":"棣棠乡"},{"code":"500243206","name":"三义乡"},{"code":"500243207","name":"联合乡"},{"code":"500243208","name":"石柳乡"},{"code":"500243210","name":"走马乡"},{"code":"500243211","name":"芦塘乡"},{"code":"500243213","name":"乔梓乡"},{"code":"500243217","name":"诸佛乡"},{"code":"500243219","name":"桐楼乡"},{"code":"500243222","name":"善感乡"},{"code":"500243223","name":"双龙乡"},{"code":"500243224","name":"石盘乡"},{"code":"500243225","name":"大垭乡"},{"code":"500243226","name":"润溪乡"},{"code":"500243227","name":"朗溪乡"},{"code":"500243228","name":"龙塘乡"}]}]}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市","children":[{"code":"510104","name":"锦江区","children":[{"code":"510104017","name":"锦官驿街道"},{"code":"510104018","name":"东湖街道"},{"code":"510104019","name":"锦华路街道"},{"code":"510104022","name":"春熙路街道"},{"code":"510104023","name":"书院街街道"},{"code":"510104026","name":"牛市口街道"},{"code":"510104030","name":"沙河街道"},{"code":"510104032","name":"狮子山街道"},{"code":"510104035","name":"成龙路街道"},{"code":"510104036","name":"柳江街道"},{"code":"510104037","name":"三圣街道"}]},{"code":"510105","name":"青羊区","children":[{"code":"510105002","name":"草市街街道"},{"code":"510105003","name":"西御河街道"},{"code":"510105005","name":"少城街道"},{"code":"510105007","name":"草堂街道"},{"code":"510105008","name":"府南街道"},{"code":"510105009","name":"光华街道"},{"code":"510105011","name":"金沙街道"},{"code":"510105012","name":"黄田坝街道"},{"code":"510105013","name":"苏坡街道"},{"code":"510105014","name":"文家街道"},{"code":"510105018","name":"蔡桥街道"},{"code":"510105019","name":"康河街道"}]},{"code":"510106","name":"金牛区","children":[{"code":"510106024","name":"西安路街道"},{"code":"510106025","name":"西华街道"},{"code":"510106027","name":"荷花池街道"},{"code":"510106030","name":"驷马桥街道"},{"code":"510106031","name":"茶店子街道"},{"code":"510106032","name":"抚琴街道"},{"code":"510106035","name":"九里堤街道"},{"code":"510106036","name":"五块石街道"},{"code":"510106038","name":"营门口街道"},{"code":"510106040","name":"金泉街道"},{"code":"510106041","name":"沙河源街道"},{"code":"510106042","name":"天回镇街道"},{"code":"510106043","name":"凤凰山街道"}]},{"code":"510107","name":"武侯区","children":[{"code":"510107001","name":"浆洗街街道"},{"code":"510107004","name":"望江路街道"},{"code":"510107005","name":"玉林街道"},{"code":"510107007","name":"火车南站街道"},{"code":"510107009","name":"晋阳街道"},{"code":"510107010","name":"红牌楼街道"},{"code":"510107011","name":"簇桥街道"},{"code":"510107012","name":"机投桥街道"},{"code":"510107013","name":"金花桥街道"},{"code":"510107014","name":"簇锦街道"},{"code":"510107015","name":"华兴街道"},{"code":"510107061","name":"芳草街街道"},{"code":"510107062","name":"肖家河街道"},{"code":"510107063","name":"石羊街道"},{"code":"510107064","name":"桂溪街道"}]},{"code":"510108","name":"成华区","children":[{"code":"510108002","name":"猛追湾街道"},{"code":"510108004","name":"双桥子街道"},{"code":"510108006","name":"府青路街道"},{"code":"510108007","name":"二仙桥街道"},{"code":"510108008","name":"跳蹬河街道"},{"code":"510108010","name":"双水碾街道"},{"code":"510108011","name":"万年场街道"},{"code":"510108014","name":"保和街道"},{"code":"510108015","name":"青龙街道"},{"code":"510108016","name":"龙潭街道"},{"code":"510108017","name":"白莲池街道"}]},{"code":"510112","name":"龙泉驿区","children":[{"code":"510112001","name":"龙泉街道"},{"code":"510112002","name":"大面街道"},{"code":"510112003","name":"十陵街道"},{"code":"510112004","name":"同安街道"},{"code":"510112005","name":"西河街道"},{"code":"510112006","name":"柏合街道"},{"code":"510112007","name":"东安街道"},{"code":"510112102","name":"洛带镇"},{"code":"510112108","name":"洪安镇"},{"code":"510112115","name":"山泉镇"}]},{"code":"510113","name":"青白江区","children":[{"code":"510113002","name":"大弯街道"},{"code":"510113003","name":"大同街道"},{"code":"510113102","name":"弥牟镇"},{"code":"510113104","name":"城厢镇"},{"code":"510113106","name":"姚渡镇"},{"code":"510113108","name":"清泉镇"},{"code":"510113111","name":"福洪镇"}]},{"code":"510114","name":"新都区","children":[{"code":"510114001","name":"大丰街道"},{"code":"510114003","name":"三河街道"},{"code":"510114004","name":"新都街道"},{"code":"510114005","name":"新繁街道"},{"code":"510114006","name":"石板滩街道"},{"code":"510114007","name":"斑竹园街道"},{"code":"510114008","name":"桂湖街道"},{"code":"510114109","name":"清流镇"},{"code":"510114116","name":"军屯镇"}]},{"code":"510115","name":"温江区","children":[{"code":"510115001","name":"柳城街道"},{"code":"510115002","name":"公平街道"},{"code":"510115003","name":"涌泉街道"},{"code":"510115004","name":"天府街道"},{"code":"510115005","name":"金马街道"},{"code":"510115006","name":"永宁街道"},{"code":"510115101","name":"和盛镇"},{"code":"510115105","name":"万春镇"},{"code":"510115106","name":"寿安镇"}]},{"code":"510116","name":"双流区","children":[{"code":"510116001","name":"东升街道"},{"code":"510116002","name":"西航港街道"},{"code":"510116003","name":"华阳街道"},{"code":"510116004","name":"中和街道"},{"code":"510116005","name":"九江街道"},{"code":"510116006","name":"黄甲街道"},{"code":"510116017","name":"怡心街道"},{"code":"510116018","name":"万安街道"},{"code":"510116019","name":"正兴街道"},{"code":"510116020","name":"兴隆街道"},{"code":"510116021","name":"煎茶街道"},{"code":"510116022","name":"新兴街道"},{"code":"510116023","name":"籍田街道"},{"code":"510116024","name":"太平街道"},{"code":"510116025","name":"永兴街道"},{"code":"510116108","name":"彭镇"},{"code":"510116111","name":"黄龙溪镇"},{"code":"510116112","name":"永安镇"},{"code":"510116115","name":"黄水镇"}]},{"code":"510117","name":"郫都区","children":[{"code":"510117001","name":"郫筒街道"},{"code":"510117004","name":"安德街道"},{"code":"510117005","name":"红光街道"},{"code":"510117006","name":"犀浦街道"},{"code":"510117007","name":"德源街道"},{"code":"510117008","name":"安靖街道"},{"code":"510117009","name":"团结街道"},{"code":"510117019","name":"合作街道"},{"code":"510117020","name":"西园街道"},{"code":"510117104","name":"唐昌镇"},{"code":"510117106","name":"三道堰镇"},{"code":"510117115","name":"友爱镇"}]},{"code":"510118","name":"新津区","children":[{"code":"510118001","name":"五津街道"},{"code":"510118002","name":"普兴街道"},{"code":"510118003","name":"花桥街道"},{"code":"510118004","name":"花源街道"},{"code":"510118101","name":"兴义镇"},{"code":"510118102","name":"安西镇"},{"code":"510118103","name":"永商镇"},{"code":"510118104","name":"宝墩镇"}]},{"code":"510121","name":"金堂县","children":[{"code":"510121001","name":"赵镇街道"},{"code":"510121002","name":"官仓街道"},{"code":"510121003","name":"栖贤街道"},{"code":"510121004","name":"高板街道"},{"code":"510121005","name":"白果街道"},{"code":"510121006","name":"淮口街道"},{"code":"510121106","name":"五凤镇"},{"code":"510121109","name":"三溪镇"},{"code":"510121110","name":"福兴镇"},{"code":"510121111","name":"金龙镇"},{"code":"510121112","name":"赵家镇"},{"code":"510121113","name":"竹篙镇"},{"code":"510121116","name":"转龙镇"},{"code":"510121117","name":"土桥镇"},{"code":"510121118","name":"云合镇"},{"code":"510121119","name":"又新镇"}]},{"code":"510129","name":"大邑县","children":[{"code":"510129001","name":"晋原街道"},{"code":"510129002","name":"沙渠街道"},{"code":"510129003","name":"青霞街道"},{"code":"510129101","name":"王泗镇"},{"code":"510129103","name":"新场镇"},{"code":"510129104","name":"悦来镇"},{"code":"510129105","name":"安仁镇"},{"code":"510129106","name":"䢺江镇"},{"code":"510129107","name":"花水湾镇"},{"code":"510129108","name":"西岭镇"},{"code":"510129119","name":"鹤鸣镇"}]},{"code":"510131","name":"蒲江县","children":[{"code":"510131001","name":"鹤山街道"},{"code":"510131002","name":"寿安街道"},{"code":"510131101","name":"大塘镇"},{"code":"510131103","name":"朝阳湖镇"},{"code":"510131104","name":"西来镇"},{"code":"510131105","name":"大兴镇"},{"code":"510131106","name":"甘溪镇"},{"code":"510131107","name":"成佳镇"}]},{"code":"510181","name":"都江堰市","children":[{"code":"510181001","name":"奎光塔街道"},{"code":"510181002","name":"幸福街道"},{"code":"510181004","name":"灌口街道"},{"code":"510181005","name":"银杏街道"},{"code":"510181006","name":"玉堂街道"},{"code":"510181007","name":"蒲阳街道"},{"code":"510181103","name":"聚源镇"},{"code":"510181105","name":"天马镇"},{"code":"510181106","name":"石羊镇"},{"code":"510181110","name":"青城山镇"},{"code":"510181111","name":"龙池镇"}]},{"code":"510182","name":"彭州市","children":[{"code":"510182001","name":"天彭街道"},{"code":"510182002","name":"隆丰街道"},{"code":"510182003","name":"濛阳街道"},{"code":"510182004","name":"致和街道"},{"code":"510182101","name":"龙门山镇"},{"code":"510182103","name":"丽春镇"},{"code":"510182104","name":"九尺镇"},{"code":"510182106","name":"通济镇"},{"code":"510182107","name":"丹景山镇"},{"code":"510182109","name":"敖平镇"},{"code":"510182111","name":"桂花镇"},{"code":"510182121","name":"白鹿镇"},{"code":"510182123","name":"葛仙山镇"}]},{"code":"510183","name":"邛崃市","children":[{"code":"510183001","name":"文君街道"},{"code":"510183002","name":"临邛街道"},{"code":"510183003","name":"固驿街道"},{"code":"510183004","name":"羊安街道"},{"code":"510183005","name":"高埂街道"},{"code":"510183006","name":"孔明街道"},{"code":"510183103","name":"桑园镇"},{"code":"510183104","name":"平乐镇"},{"code":"510183105","name":"夹关镇"},{"code":"510183106","name":"火井镇"},{"code":"510183115","name":"临济镇"},{"code":"510183118","name":"天台山镇"},{"code":"510183121","name":"南宝山镇"},{"code":"510183122","name":"大同镇"}]},{"code":"510184","name":"崇州市","children":[{"code":"510184001","name":"崇阳街道"},{"code":"510184002","name":"羊马街道"},{"code":"510184003","name":"三江街道"},{"code":"510184004","name":"江源街道"},{"code":"510184005","name":"大划街道"},{"code":"510184006","name":"崇庆街道"},{"code":"510184104","name":"廖家镇"},{"code":"510184105","name":"元通镇"},{"code":"510184106","name":"观胜镇"},{"code":"510184107","name":"怀远镇"},{"code":"510184109","name":"街子镇"},{"code":"510184110","name":"文井江镇"},{"code":"510184112","name":"白头镇"},{"code":"510184113","name":"道明镇"},{"code":"510184114","name":"隆兴镇"}]},{"code":"510185","name":"简阳市","children":[{"code":"510185001","name":"简城街道"},{"code":"510185002","name":"射洪坝街道"},{"code":"510185003","name":"新市街道"},{"code":"510185005","name":"东溪街道"},{"code":"510185006","name":"平泉街道"},{"code":"510185007","name":"石桥街道"},{"code":"510185008","name":"赤水街道"},{"code":"510185009","name":"石盘街道"},{"code":"510185010","name":"养马街道"},{"code":"510185011","name":"贾家街道"},{"code":"510185012","name":"石板凳街道"},{"code":"510185013","name":"三岔街道"},{"code":"510185014","name":"草池街道"},{"code":"510185015","name":"福田街道"},{"code":"510185016","name":"玉成街道"},{"code":"510185017","name":"丹景街道"},{"code":"510185102","name":"杨家镇"},{"code":"510185106","name":"禾丰镇"},{"code":"510185107","name":"云龙镇"},{"code":"510185108","name":"三星镇"},{"code":"510185113","name":"镇金镇"},{"code":"510185114","name":"石钟镇"},{"code":"510185115","name":"施家镇"},{"code":"510185116","name":"三合镇"},{"code":"510185117","name":"平武镇"},{"code":"510185119","name":"踏水镇"},{"code":"510185120","name":"江源镇"},{"code":"510185121","name":"涌泉镇"},{"code":"510185122","name":"芦葭镇"},{"code":"510185125","name":"青龙镇"},{"code":"510185126","name":"高明镇"},{"code":"510185127","name":"武庙镇"},{"code":"510185128","name":"壮溪镇"},{"code":"510185129","name":"宏缘镇"},{"code":"510185130","name":"雷家镇"},{"code":"510185131","name":"董家埂镇"},{"code":"510185132","name":"海螺镇"}]}]},{"code":"5103","name":"自贡市","children":[{"code":"510302","name":"自流井区","children":[{"code":"510302001","name":"五星街街道"},{"code":"510302002","name":"东兴寺街道"},{"code":"510302003","name":"新街街道"},{"code":"510302004","name":"郭家坳街街道"},{"code":"510302005","name":"丹桂街道"},{"code":"510302006","name":"学苑街道"},{"code":"510302007","name":"舒坪街道"},{"code":"510302008","name":"红旗街道"},{"code":"510302009","name":"高峰街道"},{"code":"510302101","name":"仲权镇"},{"code":"510302103","name":"荣边镇"},{"code":"510302104","name":"飞龙峡镇"}]},{"code":"510303","name":"贡井区","children":[{"code":"510303001","name":"筱溪街道"},{"code":"510303002","name":"贡井街道"},{"code":"510303003","name":"长土街道"},{"code":"510303100","name":"艾叶镇"},{"code":"510303101","name":"建设镇"},{"code":"510303104","name":"龙潭镇"},{"code":"510303105","name":"桥头镇"},{"code":"510303106","name":"五宝镇"},{"code":"510303107","name":"莲花镇"},{"code":"510303108","name":"成佳镇"}]},{"code":"510304","name":"大安区","children":[{"code":"510304001","name":"大安街道"},{"code":"510304002","name":"龙井街道"},{"code":"510304003","name":"马冲口街道"},{"code":"510304004","name":"凉高山街道"},{"code":"510304005","name":"和平街道"},{"code":"510304006","name":"凤凰街道"},{"code":"510304100","name":"大山铺镇"},{"code":"510304102","name":"团结镇"},{"code":"510304103","name":"三多寨镇"},{"code":"510304104","name":"何市镇"},{"code":"510304105","name":"新店镇"},{"code":"510304106","name":"新民镇"},{"code":"510304107","name":"牛佛镇"},{"code":"510304108","name":"庙坝镇"},{"code":"510304109","name":"回龙镇"}]},{"code":"510311","name":"沿滩区","children":[{"code":"510311001","name":"卫坪街道"},{"code":"510311002","name":"邓关街道"},{"code":"510311100","name":"沿滩镇"},{"code":"510311102","name":"兴隆镇"},{"code":"510311105","name":"富全镇"},{"code":"510311106","name":"永安镇"},{"code":"510311107","name":"联络镇"},{"code":"510311109","name":"王井镇"},{"code":"510311110","name":"黄市镇"},{"code":"510311111","name":"瓦市镇"},{"code":"510311112","name":"仙市镇"},{"code":"510311204","name":"九洪乡"}]},{"code":"510321","name":"荣县","children":[{"code":"510321001","name":"梧桐街道"},{"code":"510321002","name":"青阳街道"},{"code":"510321100","name":"旭阳镇"},{"code":"510321102","name":"双石镇"},{"code":"510321107","name":"鼎新镇"},{"code":"510321110","name":"乐德镇"},{"code":"510321112","name":"古文镇"},{"code":"510321113","name":"河口镇"},{"code":"510321114","name":"新桥镇"},{"code":"510321115","name":"正紫镇"},{"code":"510321116","name":"度佳镇"},{"code":"510321117","name":"东佳镇"},{"code":"510321118","name":"长山镇"},{"code":"510321119","name":"保华镇"},{"code":"510321120","name":"留佳镇"},{"code":"510321121","name":"来牟镇"},{"code":"510321122","name":"双古镇"},{"code":"510321123","name":"观山镇"},{"code":"510321124","name":"高山镇"},{"code":"510321125","name":"东兴镇"},{"code":"510321126","name":"铁厂镇"}]},{"code":"510322","name":"富顺县","children":[{"code":"510322001","name":"富世街道"},{"code":"510322002","name":"邓井关街道"},{"code":"510322003","name":"东湖街道"},{"code":"510322102","name":"琵琶镇"},{"code":"510322103","name":"狮市镇"},{"code":"510322104","name":"骑龙镇"},{"code":"510322111","name":"代寺镇"},{"code":"510322113","name":"童寺镇"},{"code":"510322114","name":"古佛镇"},{"code":"510322115","name":"永年镇"},{"code":"510322117","name":"兜山镇"},{"code":"510322118","name":"板桥镇"},{"code":"510322119","name":"福善镇"},{"code":"510322120","name":"李桥镇"},{"code":"510322121","name":"赵化镇"},{"code":"510322122","name":"安溪镇"},{"code":"510322124","name":"飞龙镇"},{"code":"510322125","name":"怀德镇"},{"code":"510322126","name":"长滩镇"},{"code":"510322200","name":"龙万乡"}]}]},{"code":"5104","name":"攀枝花市","children":[{"code":"510402","name":"东区","children":[{"code":"510402001","name":"大渡口街道"},{"code":"510402002","name":"炳草岗街道"},{"code":"510402005","name":"弄弄坪街道"},{"code":"510402009","name":"瓜子坪街道"},{"code":"510402010","name":"东华街道"},{"code":"510402100","name":"银江镇"}]},{"code":"510403","name":"西区","children":[{"code":"510403001","name":"清香坪街道"},{"code":"510403002","name":"玉泉街道"},{"code":"510403003","name":"河门口街道"},{"code":"510403004","name":"陶家渡街道"},{"code":"510403006","name":"大宝鼎街道"},{"code":"510403100","name":"格里坪镇"}]},{"code":"510411","name":"仁和区","children":[{"code":"510411001","name":"大河中路街道"},{"code":"510411100","name":"仁和镇"},{"code":"510411101","name":"平地镇"},{"code":"510411102","name":"大田镇"},{"code":"510411103","name":"福田镇"},{"code":"510411104","name":"同德镇"},{"code":"510411105","name":"金江镇"},{"code":"510411106","name":"布德镇"},{"code":"510411107","name":"前进镇"},{"code":"510411200","name":"大龙潭彝族乡"},{"code":"510411201","name":"啊喇彝族乡"},{"code":"510411203","name":"太平乡"},{"code":"510411204","name":"务本乡"},{"code":"510411205","name":"中坝乡"}]},{"code":"510421","name":"米易县","children":[{"code":"510421100","name":"攀莲镇"},{"code":"510421101","name":"丙谷镇"},{"code":"510421102","name":"得石镇"},{"code":"510421103","name":"撒莲镇"},{"code":"510421105","name":"白马镇"},{"code":"510421106","name":"普威镇"},{"code":"510421107","name":"草场镇"},{"code":"510421201","name":"湾丘彝族乡"},{"code":"510421202","name":"白坡彝族乡"},{"code":"510421203","name":"麻陇彝族乡"},{"code":"510421204","name":"新山傈僳族乡"}]},{"code":"510422","name":"盐边县","children":[{"code":"510422100","name":"桐子林镇"},{"code":"510422101","name":"红格镇"},{"code":"510422102","name":"渔门镇"},{"code":"510422103","name":"永兴镇"},{"code":"510422104","name":"新九镇"},{"code":"510422105","name":"惠民镇"},{"code":"510422203","name":"红果彝族乡"},{"code":"510422205","name":"共和乡"},{"code":"510422206","name":"国胜乡"},{"code":"510422207","name":"红宝苗族彝族乡"},{"code":"510422210","name":"温泉彝族乡"},{"code":"510422211","name":"格萨拉彝族乡"}]}]},{"code":"5105","name":"泸州市","children":[{"code":"510502","name":"江阳区","children":[{"code":"510502001","name":"南城街道"},{"code":"510502002","name":"北城街道"},{"code":"510502003","name":"大山坪街道"},{"code":"510502004","name":"邻玉街道"},{"code":"510502005","name":"蓝田街道"},{"code":"510502006","name":"茜草街道"},{"code":"510502007","name":"华阳街道"},{"code":"510502009","name":"泰安街道"},{"code":"510502010","name":"况场街道"},{"code":"510502103","name":"黄舣镇"},{"code":"510502106","name":"通滩镇"},{"code":"510502107","name":"江北镇"},{"code":"510502108","name":"方山镇"},{"code":"510502109","name":"丹林镇"},{"code":"510502110","name":"分水岭镇"}]},{"code":"510503","name":"纳溪区","children":[{"code":"510503001","name":"安富街道"},{"code":"510503002","name":"永宁街道"},{"code":"510503003","name":"东升街道"},{"code":"510503100","name":"大渡口镇"},{"code":"510503101","name":"护国镇"},{"code":"510503102","name":"打古镇"},{"code":"510503103","name":"上马镇"},{"code":"510503104","name":"合面镇"},{"code":"510503106","name":"丰乐镇"},{"code":"510503107","name":"白节镇"},{"code":"510503108","name":"天仙镇"},{"code":"510503109","name":"新乐镇"},{"code":"510503111","name":"龙车镇"}]},{"code":"510504","name":"龙马潭区","children":[{"code":"510504001","name":"小市街道"},{"code":"510504003","name":"红星街道"},{"code":"510504004","name":"莲花池街道"},{"code":"510504005","name":"罗汉街道"},{"code":"510504006","name":"鱼塘街道"},{"code":"510504007","name":"安宁街道"},{"code":"510504008","name":"石洞街道"},{"code":"510504009","name":"特兴街道"},{"code":"510504103","name":"胡市镇"},{"code":"510504106","name":"双加镇"},{"code":"510504107","name":"金龙镇"}]},{"code":"510521","name":"泸县","children":[{"code":"510521001","name":"玉蟾街道"},{"code":"510521100","name":"福集镇"},{"code":"510521101","name":"嘉明镇"},{"code":"510521102","name":"喻寺镇"},{"code":"510521103","name":"得胜镇"},{"code":"510521105","name":"牛滩镇"},{"code":"510521106","name":"兆雅镇"},{"code":"510521107","name":"玄滩镇"},{"code":"510521108","name":"太伏镇"},{"code":"510521109","name":"云龙镇"},{"code":"510521110","name":"石桥镇"},{"code":"510521111","name":"毗卢镇"},{"code":"510521112","name":"奇峰镇"},{"code":"510521113","name":"潮河镇"},{"code":"510521114","name":"云锦镇"},{"code":"510521115","name":"立石镇"},{"code":"510521116","name":"百和镇"},{"code":"510521117","name":"天兴镇"},{"code":"510521118","name":"方洞镇"},{"code":"510521123","name":"海潮镇"}]},{"code":"510522","name":"合江县","children":[{"code":"510522001","name":"符阳街道"},{"code":"510522002","name":"临港街道"},{"code":"510522101","name":"望龙镇"},{"code":"510522102","name":"白沙镇"},{"code":"510522104","name":"先市镇"},{"code":"510522105","name":"尧坝镇"},{"code":"510522106","name":"九支镇"},{"code":"510522108","name":"凤鸣镇"},{"code":"510522109","name":"榕山镇"},{"code":"510522110","name":"白鹿镇"},{"code":"510522111","name":"甘雨镇"},{"code":"510522112","name":"福宝镇"},{"code":"510522113","name":"先滩镇"},{"code":"510522115","name":"大桥镇"},{"code":"510522116","name":"车辋镇"},{"code":"510522117","name":"白米镇"},{"code":"510522119","name":"法王寺镇"},{"code":"510522121","name":"神臂城镇"},{"code":"510522124","name":"石龙镇"},{"code":"510522125","name":"真龙镇"},{"code":"510522126","name":"荔江镇"}]},{"code":"510524","name":"叙永县","children":[{"code":"510524100","name":"叙永镇"},{"code":"510524101","name":"江门镇"},{"code":"510524102","name":"马岭镇"},{"code":"510524103","name":"天池镇"},{"code":"510524104","name":"水尾镇"},{"code":"510524105","name":"两河镇"},{"code":"510524106","name":"落卜镇"},{"code":"510524107","name":"后山镇"},{"code":"510524108","name":"分水镇"},{"code":"510524109","name":"摩尼镇"},{"code":"510524110","name":"赤水镇"},{"code":"510524111","name":"龙凤镇"},{"code":"510524112","name":"正东镇"},{"code":"510524113","name":"观兴镇"},{"code":"510524114","name":"向林镇"},{"code":"510524117","name":"麻城镇"},{"code":"510524118","name":"大石镇"},{"code":"510524119","name":"黄坭镇"},{"code":"510524210","name":"合乐苗族乡"},{"code":"510524211","name":"白腊苗族乡"},{"code":"510524212","name":"枧槽苗族乡"},{"code":"510524213","name":"水潦彝族乡"},{"code":"510524215","name":"石厢子彝族乡"}]},{"code":"510525","name":"古蔺县","children":[{"code":"510525001","name":"彰德街道"},{"code":"510525002","name":"金兰街道"},{"code":"510525003","name":"永乐街道"},{"code":"510525101","name":"龙山镇"},{"code":"510525103","name":"太平镇"},{"code":"510525104","name":"二郎镇"},{"code":"510525105","name":"大村镇"},{"code":"510525106","name":"石宝镇"},{"code":"510525107","name":"丹桂镇"},{"code":"510525108","name":"茅溪镇"},{"code":"510525109","name":"观文镇"},{"code":"510525110","name":"双沙镇"},{"code":"510525111","name":"德耀镇"},{"code":"510525113","name":"石屏镇"},{"code":"510525115","name":"皇华镇"},{"code":"510525117","name":"东新镇"},{"code":"510525118","name":"椒园镇"},{"code":"510525119","name":"马蹄镇"},{"code":"510525121","name":"黄荆镇"},{"code":"510525122","name":"白泥镇"},{"code":"510525209","name":"马嘶苗族乡"},{"code":"510525212","name":"箭竹苗族乡"},{"code":"510525214","name":"大寨苗族乡"}]}]},{"code":"5106","name":"德阳市","children":[{"code":"510603","name":"旌阳区","children":[{"code":"510603001","name":"旌阳街道"},{"code":"510603004","name":"旌东街道"},{"code":"510603006","name":"八角井街道"},{"code":"510603009","name":"东湖街道"},{"code":"510603010","name":"天元街道"},{"code":"510603011","name":"孝感街道"},{"code":"510603100","name":"黄许镇"},{"code":"510603101","name":"孝泉镇"},{"code":"510603103","name":"柏隆镇"},{"code":"510603108","name":"德新镇"},{"code":"510603110","name":"双东镇"},{"code":"510603111","name":"新中镇"},{"code":"510603117","name":"和新镇"}]},{"code":"510604","name":"罗江区","children":[{"code":"510604100","name":"万安镇"},{"code":"510604101","name":"鄢家镇"},{"code":"510604102","name":"金山镇"},{"code":"510604103","name":"略坪镇"},{"code":"510604106","name":"调元镇"},{"code":"510604107","name":"新盛镇"},{"code":"510604113","name":"白马关镇"}]},{"code":"510623","name":"中江县","children":[{"code":"510623100","name":"凯江镇"},{"code":"510623101","name":"南华镇"},{"code":"510623102","name":"回龙镇"},{"code":"510623103","name":"通济镇"},{"code":"510623104","name":"永太镇"},{"code":"510623105","name":"黄鹿镇"},{"code":"510623106","name":"集凤镇"},{"code":"510623107","name":"富兴镇"},{"code":"510623108","name":"辑庆镇"},{"code":"510623109","name":"兴隆镇"},{"code":"510623110","name":"龙台镇"},{"code":"510623111","name":"永安镇"},{"code":"510623113","name":"玉兴镇"},{"code":"510623114","name":"永兴镇"},{"code":"510623115","name":"悦来镇"},{"code":"510623116","name":"继光镇"},{"code":"510623117","name":"仓山镇"},{"code":"510623118","name":"广福镇"},{"code":"510623119","name":"会龙镇"},{"code":"510623120","name":"万福镇"},{"code":"510623121","name":"普兴镇"},{"code":"510623122","name":"联合镇"},{"code":"510623123","name":"冯店镇"},{"code":"510623124","name":"积金镇"},{"code":"510623125","name":"太安镇"},{"code":"510623132","name":"东北镇"},{"code":"510623206","name":"柏树乡"},{"code":"510623207","name":"白果乡"},{"code":"510623214","name":"永丰乡"},{"code":"510623218","name":"通山乡"}]},{"code":"510681","name":"广汉市","children":[{"code":"510681001","name":"雒城街道"},{"code":"510681002","name":"汉州街道"},{"code":"510681003","name":"金雁街道"},{"code":"510681101","name":"三水镇"},{"code":"510681102","name":"连山镇"},{"code":"510681103","name":"高坪镇"},{"code":"510681105","name":"向阳镇"},{"code":"510681106","name":"小汉镇"},{"code":"510681107","name":"金轮镇"},{"code":"510681114","name":"金鱼镇"},{"code":"510681116","name":"南丰镇"},{"code":"510681117","name":"三星堆镇"}]},{"code":"510682","name":"什邡市","children":[{"code":"510682001","name":"方亭街道"},{"code":"510682002","name":"雍城街道"},{"code":"510682105","name":"洛水镇"},{"code":"510682106","name":"禾丰镇"},{"code":"510682108","name":"马祖镇"},{"code":"510682110","name":"马井镇"},{"code":"510682111","name":"蓥华镇"},{"code":"510682113","name":"南泉镇"},{"code":"510682116","name":"湔氐镇"},{"code":"510682120","name":"师古镇"}]},{"code":"510683","name":"绵竹市","children":[{"code":"510683001","name":"剑南街道"},{"code":"510683002","name":"紫岩街道"},{"code":"510683104","name":"九龙镇"},{"code":"510683106","name":"汉旺镇"},{"code":"510683109","name":"麓棠镇"},{"code":"510683110","name":"广济镇"},{"code":"510683112","name":"玉泉镇"},{"code":"510683115","name":"新市镇"},{"code":"510683116","name":"孝德镇"},{"code":"510683119","name":"富新镇"},{"code":"510683122","name":"什地镇"},{"code":"510683124","name":"清平镇"}]}]},{"code":"5107","name":"绵阳市","children":[{"code":"510703","name":"涪城区","children":[{"code":"510703001","name":"城厢街道"},{"code":"510703003","name":"工区街道"},{"code":"510703006","name":"普明街道"},{"code":"510703009","name":"创业园街道"},{"code":"510703011","name":"石塘街道"},{"code":"510703012","name":"城郊街道"},{"code":"510703013","name":"塘汛街道"},{"code":"510703100","name":"丰谷镇"},{"code":"510703103","name":"青义镇"},{"code":"510703106","name":"吴家镇"},{"code":"510703107","name":"杨家镇"},{"code":"510703110","name":"新皂镇"},{"code":"510703113","name":"永兴镇"}]},{"code":"510704","name":"游仙区","children":[{"code":"510704001","name":"涪江街道"},{"code":"510704003","name":"富乐街道"},{"code":"510704004","name":"游仙街道"},{"code":"510704006","name":"四川省科学城春雷街道"},{"code":"510704101","name":"石马镇"},{"code":"510704102","name":"新桥镇"},{"code":"510704104","name":"魏城镇"},{"code":"510704105","name":"沉抗镇"},{"code":"510704106","name":"忠兴镇"},{"code":"510704112","name":"松垭镇"},{"code":"510704121","name":"小枧镇"},{"code":"510704122","name":"信义镇"},{"code":"510704123","name":"仙鹤镇"},{"code":"510704124","name":"盐泉镇"},{"code":"510704400","name":"四川省新华劳动教育管理所"}]},{"code":"510705","name":"安州区","children":[{"code":"510705101","name":"桑枣镇"},{"code":"510705102","name":"花荄镇"},{"code":"510705103","name":"黄土镇"},{"code":"510705104","name":"塔水镇"},{"code":"510705105","name":"秀水镇"},{"code":"510705106","name":"河清镇"},{"code":"510705108","name":"界牌镇"},{"code":"510705110","name":"雎水镇"},{"code":"510705116","name":"千佛镇"},{"code":"510705202","name":"高川乡"}]},{"code":"510722","name":"三台县","children":[{"code":"510722101","name":"潼川镇"},{"code":"510722104","name":"塔山镇"},{"code":"510722106","name":"龙树镇"},{"code":"510722107","name":"石安镇"},{"code":"510722108","name":"富顺镇"},{"code":"510722109","name":"三元镇"},{"code":"510722110","name":"秋林镇"},{"code":"510722112","name":"新德镇"},{"code":"510722113","name":"新生镇"},{"code":"510722114","name":"鲁班镇"},{"code":"510722115","name":"景福镇"},{"code":"510722116","name":"紫河镇"},{"code":"510722118","name":"观桥镇"},{"code":"510722119","name":"郪江镇"},{"code":"510722120","name":"中新镇"},{"code":"510722121","name":"古井镇"},{"code":"510722123","name":"西平镇"},{"code":"510722124","name":"八洞镇"},{"code":"510722126","name":"乐安镇"},{"code":"510722127","name":"建平镇"},{"code":"510722131","name":"中太镇"},{"code":"510722132","name":"金石镇"},{"code":"510722133","name":"新鲁镇"},{"code":"510722135","name":"刘营镇"},{"code":"510722136","name":"灵兴镇"},{"code":"510722137","name":"芦溪镇"},{"code":"510722138","name":"立新镇"},{"code":"510722140","name":"永明镇"},{"code":"510722141","name":"建中镇"},{"code":"510722145","name":"老马镇"},{"code":"510722151","name":"北坝镇"},{"code":"510722201","name":"忠孝乡"},{"code":"510722204","name":"断石乡"}]},{"code":"510723","name":"盐亭县","children":[{"code":"510723001","name":"凤灵街道"},{"code":"510723100","name":"云溪镇"},{"code":"510723101","name":"玉龙镇"},{"code":"510723102","name":"富驿镇"},{"code":"510723103","name":"金孔镇"},{"code":"510723105","name":"黄甸镇"},{"code":"510723113","name":"巨龙镇"},{"code":"510723114","name":"高渠镇"},{"code":"510723115","name":"鹅溪镇"},{"code":"510723116","name":"岐伯镇"},{"code":"510723117","name":"文通镇"},{"code":"510723118","name":"永泰镇"},{"code":"510723119","name":"九龙镇"},{"code":"510723120","name":"西陵镇"},{"code":"510723121","name":"嫘祖镇"},{"code":"510723211","name":"大兴回族乡"},{"code":"510723222","name":"莲花湖乡"}]},{"code":"510725","name":"梓潼县","children":[{"code":"510725100","name":"文昌镇"},{"code":"510725101","name":"长卿镇"},{"code":"510725102","name":"许州镇"},{"code":"510725103","name":"黎雅镇"},{"code":"510725105","name":"卧龙镇"},{"code":"510725106","name":"观义镇"},{"code":"510725107","name":"玛瑙镇"},{"code":"510725108","name":"石牛镇"},{"code":"510725109","name":"自强镇"},{"code":"510725110","name":"仁和镇"},{"code":"510725111","name":"双板镇"},{"code":"510725112","name":"金龙镇"},{"code":"510725113","name":"文兴镇"},{"code":"510725114","name":"演武镇"},{"code":"510725115","name":"宏仁镇"},{"code":"510725217","name":"宝石乡"}]},{"code":"510726","name":"北川羌族自治县","children":[{"code":"510726100","name":"曲山镇"},{"code":"510726101","name":"擂鼓镇"},{"code":"510726103","name":"永昌镇"},{"code":"510726104","name":"通泉镇"},{"code":"510726105","name":"永安镇"},{"code":"510726106","name":"禹里镇"},{"code":"510726107","name":"桂溪镇"},{"code":"510726108","name":"陈家坝镇"},{"code":"510726109","name":"小坝镇"},{"code":"510726205","name":"漩坪乡"},{"code":"510726206","name":"白坭乡"},{"code":"510726208","name":"片口乡"},{"code":"510726209","name":"开坪乡"},{"code":"510726210","name":"坝底乡"},{"code":"510726211","name":"白什乡"},{"code":"510726212","name":"青片乡"},{"code":"510726214","name":"桃龙藏族乡"},{"code":"510726216","name":"马槽乡"},{"code":"510726217","name":"都贯乡"}]},{"code":"510727","name":"平武县","children":[{"code":"510727100","name":"龙安镇"},{"code":"510727101","name":"古城镇"},{"code":"510727103","name":"响岩镇"},{"code":"510727107","name":"大桥镇"},{"code":"510727108","name":"水晶镇"},{"code":"510727109","name":"江油关镇"},{"code":"510727200","name":"高村乡"},{"code":"510727202","name":"坝子乡"},{"code":"510727206","name":"锁江羌族乡"},{"code":"510727207","name":"土城藏族乡"},{"code":"510727208","name":"旧堡羌族乡"},{"code":"510727209","name":"阔达藏族乡"},{"code":"510727210","name":"黄羊关藏族乡"},{"code":"510727211","name":"虎牙藏族乡"},{"code":"510727212","name":"泗耳藏族乡"},{"code":"510727213","name":"白马藏族乡"},{"code":"510727214","name":"木座藏族乡"},{"code":"510727215","name":"木皮藏族乡"},{"code":"510727216","name":"豆叩羌族乡"},{"code":"510727217","name":"平通羌族乡"}]},{"code":"510781","name":"江油市","children":[{"code":"510781006","name":"中坝街道"},{"code":"510781101","name":"太平镇"},{"code":"510781102","name":"三合镇"},{"code":"510781103","name":"含增镇"},{"code":"510781104","name":"青莲镇"},{"code":"510781105","name":"彰明镇"},{"code":"510781106","name":"龙凤镇"},{"code":"510781107","name":"武都镇"},{"code":"510781108","name":"大康镇"},{"code":"510781109","name":"新安镇"},{"code":"510781110","name":"战旗镇"},{"code":"510781111","name":"双河镇"},{"code":"510781112","name":"永胜镇"},{"code":"510781113","name":"小溪坝镇"},{"code":"510781114","name":"河口镇"},{"code":"510781115","name":"重华镇"},{"code":"510781116","name":"厚坝镇"},{"code":"510781117","name":"二郎庙镇"},{"code":"510781118","name":"马角镇"},{"code":"510781119","name":"雁门镇"},{"code":"510781121","name":"西屏镇"},{"code":"510781123","name":"大堰镇"},{"code":"510781125","name":"方水镇"},{"code":"510781219","name":"枫顺乡"}]}]},{"code":"5108","name":"广元市","children":[{"code":"510802","name":"利州区","children":[{"code":"510802001","name":"东坝街道"},{"code":"510802002","name":"嘉陵街道"},{"code":"510802003","name":"河西街道"},{"code":"510802004","name":"雪峰街道"},{"code":"510802005","name":"南河街道"},{"code":"510802006","name":"上西街道"},{"code":"510802011","name":"万缘街道"},{"code":"510802100","name":"荣山镇"},{"code":"510802101","name":"大石镇"},{"code":"510802102","name":"盘龙镇"},{"code":"510802103","name":"宝轮镇"},{"code":"510802105","name":"三堆镇"},{"code":"510802200","name":"白朝乡"},{"code":"510802201","name":"金洞乡"},{"code":"510802202","name":"龙潭乡"}]},{"code":"510811","name":"昭化区","children":[{"code":"510811100","name":"元坝镇"},{"code":"510811101","name":"卫子镇"},{"code":"510811102","name":"王家镇"},{"code":"510811103","name":"磨滩镇"},{"code":"510811104","name":"柏林沟镇"},{"code":"510811105","name":"太公镇"},{"code":"510811106","name":"虎跳镇"},{"code":"510811107","name":"红岩镇"},{"code":"510811108","name":"昭化镇"},{"code":"510811111","name":"青牛镇"},{"code":"510811112","name":"射箭镇"},{"code":"510811113","name":"清水镇"}]},{"code":"510812","name":"朝天区","children":[{"code":"510812100","name":"朝天镇"},{"code":"510812101","name":"大滩镇"},{"code":"510812102","name":"羊木镇"},{"code":"510812103","name":"曾家镇"},{"code":"510812104","name":"中子镇"},{"code":"510812105","name":"沙河镇"},{"code":"510812109","name":"两河口镇"},{"code":"510812110","name":"云雾山镇"},{"code":"510812111","name":"水磨沟镇"},{"code":"510812112","name":"李家镇"},{"code":"510812214","name":"麻柳乡"},{"code":"510812215","name":"临溪乡"}]},{"code":"510821","name":"旺苍县","children":[{"code":"510821100","name":"东河镇"},{"code":"510821101","name":"嘉川镇"},{"code":"510821102","name":"木门镇"},{"code":"510821103","name":"白水镇"},{"code":"510821105","name":"张华镇"},{"code":"510821106","name":"黄洋镇"},{"code":"510821107","name":"普济镇"},{"code":"510821108","name":"三江镇"},{"code":"510821110","name":"五权镇"},{"code":"510821111","name":"高阳镇"},{"code":"510821112","name":"双汇镇"},{"code":"510821113","name":"英萃镇"},{"code":"510821114","name":"国华镇"},{"code":"510821115","name":"龙凤镇"},{"code":"510821116","name":"九龙镇"},{"code":"510821117","name":"米仓山镇"},{"code":"510821118","name":"大德镇"},{"code":"510821119","name":"大两镇"},{"code":"510821120","name":"水磨镇"},{"code":"510821121","name":"盐河镇"},{"code":"510821122","name":"天星镇"},{"code":"510821204","name":"燕子乡"},{"code":"510821207","name":"檬子乡"}]},{"code":"510822","name":"青川县","children":[{"code":"510822100","name":"乔庄镇"},{"code":"510822101","name":"青溪镇"},{"code":"510822102","name":"房石镇"},{"code":"510822103","name":"关庄镇"},{"code":"510822104","name":"凉水镇"},{"code":"510822105","name":"竹园镇"},{"code":"510822106","name":"木鱼镇"},{"code":"510822107","name":"沙州镇"},{"code":"510822108","name":"姚渡镇"},{"code":"510822109","name":"三锅镇"},{"code":"510822111","name":"建峰镇"},{"code":"510822112","name":"乐安镇"},{"code":"510822203","name":"茶坝乡"},{"code":"510822207","name":"蒿溪回族乡"},{"code":"510822210","name":"曲河乡"},{"code":"510822212","name":"石坝乡"},{"code":"510822216","name":"大院回族乡"},{"code":"510822220","name":"七佛乡"},{"code":"510822224","name":"骑马乡"},{"code":"510822225","name":"观音店乡"},{"code":"510822400","name":"唐家河国家级自然保护区"}]},{"code":"510823","name":"剑阁县","children":[{"code":"510823100","name":"普安镇"},{"code":"510823101","name":"龙源镇"},{"code":"510823103","name":"盐店镇"},{"code":"510823104","name":"柳沟镇"},{"code":"510823105","name":"武连镇"},{"code":"510823106","name":"东宝镇"},{"code":"510823107","name":"开封镇"},{"code":"510823108","name":"元山镇"},{"code":"510823109","name":"演圣镇"},{"code":"510823110","name":"王河镇"},{"code":"510823111","name":"公兴镇"},{"code":"510823112","name":"金仙镇"},{"code":"510823113","name":"香沉镇"},{"code":"510823114","name":"白龙镇"},{"code":"510823115","name":"鹤龄镇"},{"code":"510823116","name":"杨村镇"},{"code":"510823117","name":"羊岭镇"},{"code":"510823118","name":"江口镇"},{"code":"510823119","name":"木马镇"},{"code":"510823120","name":"剑门关镇"},{"code":"510823121","name":"汉阳镇"},{"code":"510823122","name":"下寺镇"},{"code":"510823123","name":"涂山镇"},{"code":"510823124","name":"店子镇"},{"code":"510823126","name":"张王镇"},{"code":"510823127","name":"姚家镇"},{"code":"510823128","name":"义兴镇"},{"code":"510823210","name":"秀钟乡"},{"code":"510823228","name":"樵店乡"}]},{"code":"510824","name":"苍溪县","children":[{"code":"510824100","name":"陵江镇"},{"code":"510824102","name":"云峰镇"},{"code":"510824104","name":"东青镇"},{"code":"510824105","name":"白桥镇"},{"code":"510824107","name":"五龙镇"},{"code":"510824108","name":"永宁镇"},{"code":"510824109","name":"鸳溪镇"},{"code":"510824110","name":"三川镇"},{"code":"510824111","name":"龙王镇"},{"code":"510824112","name":"元坝镇"},{"code":"510824113","name":"唤马镇"},{"code":"510824114","name":"歧坪镇"},{"code":"510824115","name":"白驿镇"},{"code":"510824116","name":"漓江镇"},{"code":"510824117","name":"文昌镇"},{"code":"510824118","name":"岳东镇"},{"code":"510824119","name":"石马镇"},{"code":"510824120","name":"运山镇"},{"code":"510824121","name":"东溪镇"},{"code":"510824122","name":"高坡镇"},{"code":"510824123","name":"龙山镇"},{"code":"510824125","name":"亭子镇"},{"code":"510824126","name":"百利镇"},{"code":"510824127","name":"黄猫垭镇"},{"code":"510824128","name":"河地镇"},{"code":"510824208","name":"白鹤乡"},{"code":"510824209","name":"浙水乡"},{"code":"510824223","name":"月山乡"},{"code":"510824226","name":"白山乡"},{"code":"510824228","name":"彭店乡"},{"code":"510824229","name":"桥溪乡"},{"code":"510824400","name":"苍溪九龙山自然保护区管理处"},{"code":"510824401","name":"苍溪县三溪口森林经营所"},{"code":"510824402","name":"苍溪县良种场"}]}]},{"code":"5109","name":"遂宁市","children":[{"code":"510903","name":"船山区","children":[{"code":"510903001","name":"南津路街道"},{"code":"510903002","name":"凯旋路街道"},{"code":"510903004","name":"镇江寺街道"},{"code":"510903005","name":"育才路街道"},{"code":"510903006","name":"介福路街道"},{"code":"510903007","name":"嘉禾街道"},{"code":"510903008","name":"广德街道"},{"code":"510903009","name":"富源路街道"},{"code":"510903011","name":"灵泉街道"},{"code":"510903012","name":"慈音街道"},{"code":"510903013","name":"九莲街道"},{"code":"510903014","name":"南强街道"},{"code":"510903016","name":"西宁街道"},{"code":"510903017","name":"杨渡街道"},{"code":"510903100","name":"龙凤镇"},{"code":"510903101","name":"仁里镇"},{"code":"510903103","name":"永兴镇"},{"code":"510903104","name":"河沙镇"},{"code":"510903105","name":"新桥镇"},{"code":"510903106","name":"桂花镇"},{"code":"510903107","name":"老池镇"},{"code":"510903108","name":"保升镇"},{"code":"510903109","name":"北固镇"},{"code":"510903203","name":"唐家乡"}]},{"code":"510904","name":"安居区","children":[{"code":"510904001","name":"柔刚街道"},{"code":"510904002","name":"凤凰街道"},{"code":"510904100","name":"安居镇"},{"code":"510904101","name":"东禅镇"},{"code":"510904102","name":"分水镇"},{"code":"510904103","name":"石洞镇"},{"code":"510904104","name":"拦江镇"},{"code":"510904105","name":"保石镇"},{"code":"510904106","name":"白马镇"},{"code":"510904107","name":"中兴镇"},{"code":"510904108","name":"横山镇"},{"code":"510904109","name":"会龙镇"},{"code":"510904110","name":"三家镇"},{"code":"510904111","name":"玉丰镇"},{"code":"510904112","name":"西眉镇"},{"code":"510904113","name":"磨溪镇"},{"code":"510904114","name":"聚贤镇"},{"code":"510904116","name":"常理镇"}]},{"code":"510921","name":"蓬溪县","children":[{"code":"510921001","name":"普安街道"},{"code":"510921100","name":"赤城镇"},{"code":"510921101","name":"新会镇"},{"code":"510921102","name":"文井镇"},{"code":"510921103","name":"明月镇"},{"code":"510921104","name":"常乐镇"},{"code":"510921105","name":"天福镇"},{"code":"510921106","name":"红江镇"},{"code":"510921107","name":"宝梵镇"},{"code":"510921108","name":"大石镇"},{"code":"510921109","name":"吉祥镇"},{"code":"510921110","name":"鸣凤镇"},{"code":"510921111","name":"任隆镇"},{"code":"510921112","name":"三凤镇"},{"code":"510921114","name":"蓬南镇"},{"code":"510921115","name":"群利镇"},{"code":"510921117","name":"金桥镇"},{"code":"510921118","name":"槐花镇"},{"code":"510921207","name":"荷叶乡"},{"code":"510921213","name":"高升乡"}]},{"code":"510923","name":"大英县","children":[{"code":"510923001","name":"盐井街道"},{"code":"510923100","name":"蓬莱镇"},{"code":"510923101","name":"隆盛镇"},{"code":"510923102","name":"回马镇"},{"code":"510923103","name":"天保镇"},{"code":"510923104","name":"河边镇"},{"code":"510923105","name":"卓筒井镇"},{"code":"510923106","name":"玉峰镇"},{"code":"510923107","name":"象山镇"},{"code":"510923108","name":"金元镇"}]},{"code":"510981","name":"射洪市","children":[{"code":"510981001","name":"太和街道"},{"code":"510981002","name":"平安街道"},{"code":"510981100","name":"武安镇"},{"code":"510981101","name":"大榆镇"},{"code":"510981102","name":"广兴镇"},{"code":"510981103","name":"金华镇"},{"code":"510981104","name":"沱牌镇"},{"code":"510981105","name":"太乙镇"},{"code":"510981106","name":"金家镇"},{"code":"510981107","name":"复兴镇"},{"code":"510981108","name":"天仙镇"},{"code":"510981109","name":"仁和镇"},{"code":"510981110","name":"青岗镇"},{"code":"510981111","name":"洋溪镇"},{"code":"510981112","name":"香山镇"},{"code":"510981113","name":"明星镇"},{"code":"510981114","name":"涪西镇"},{"code":"510981117","name":"潼射镇"},{"code":"510981118","name":"曹碑镇"},{"code":"510981119","name":"官升镇"},{"code":"510981120","name":"文升镇"},{"code":"510981121","name":"东岳镇"},{"code":"510981122","name":"瞿河镇"}]}]},{"code":"5110","name":"内江市","children":[{"code":"511002","name":"市中区","children":[{"code":"511002001","name":"城东街道"},{"code":"511002003","name":"城西街道"},{"code":"511002004","name":"玉溪街道"},{"code":"511002005","name":"牌楼街道"},{"code":"511002007","name":"乐贤街道"},{"code":"511002100","name":"白马镇"},{"code":"511002101","name":"史家镇"},{"code":"511002102","name":"凌家镇"},{"code":"511002103","name":"朝阳镇"},{"code":"511002104","name":"永安镇"},{"code":"511002105","name":"全安镇"},{"code":"511002111","name":"龙门镇"}]},{"code":"511011","name":"东兴区","children":[{"code":"511011001","name":"东兴街道"},{"code":"511011002","name":"西林街道"},{"code":"511011003","name":"新江街道"},{"code":"511011004","name":"胜利街道"},{"code":"511011005","name":"高桥街道"},{"code":"511011100","name":"田家镇"},{"code":"511011101","name":"郭北镇"},{"code":"511011102","name":"高梁镇"},{"code":"511011103","name":"白合镇"},{"code":"511011104","name":"顺河镇"},{"code":"511011107","name":"双才镇"},{"code":"511011109","name":"杨家镇"},{"code":"511011110","name":"椑木镇"},{"code":"511011111","name":"石子镇"},{"code":"511011113","name":"永兴镇"},{"code":"511011114","name":"平坦镇"},{"code":"511011117","name":"双桥镇"},{"code":"511011118","name":"富溪镇"},{"code":"511011120","name":"永福镇"}]},{"code":"511024","name":"威远县","children":[{"code":"511024100","name":"严陵镇"},{"code":"511024102","name":"新店镇"},{"code":"511024103","name":"向义镇"},{"code":"511024104","name":"界牌镇"},{"code":"511024105","name":"龙会镇"},{"code":"511024106","name":"高石镇"},{"code":"511024107","name":"东联镇"},{"code":"511024109","name":"镇西镇"},{"code":"511024111","name":"山王镇"},{"code":"511024113","name":"观英滩镇"},{"code":"511024114","name":"新场镇"},{"code":"511024115","name":"连界镇"},{"code":"511024116","name":"越溪镇"},{"code":"511024119","name":"小河镇"}]},{"code":"511025","name":"资中县","children":[{"code":"511025100","name":"重龙镇"},{"code":"511025102","name":"归德镇"},{"code":"511025103","name":"鱼溪镇"},{"code":"511025105","name":"铁佛镇"},{"code":"511025106","name":"球溪镇"},{"code":"511025108","name":"龙结镇"},{"code":"511025109","name":"罗泉镇"},{"code":"511025110","name":"发轮镇"},{"code":"511025112","name":"银山镇"},{"code":"511025114","name":"太平镇"},{"code":"511025116","name":"水南镇"},{"code":"511025118","name":"新桥镇"},{"code":"511025119","name":"明心寺镇"},{"code":"511025120","name":"双河镇"},{"code":"511025121","name":"公民镇"},{"code":"511025122","name":"龙江镇"},{"code":"511025123","name":"双龙镇"},{"code":"511025124","name":"高楼镇"},{"code":"511025125","name":"陈家镇"},{"code":"511025128","name":"孟塘镇"},{"code":"511025129","name":"马鞍镇"},{"code":"511025130","name":"狮子镇"}]},{"code":"511071","name":"内江经济开发区","children":[{"code":"511071006","name":"壕子口街道"},{"code":"511071101","name":"交通镇"},{"code":"511071103","name":"靖民镇"}]},{"code":"511083","name":"隆昌市","children":[{"code":"511083001","name":"古湖街道"},{"code":"511083002","name":"金鹅街道"},{"code":"511083102","name":"响石镇"},{"code":"511083103","name":"圣灯镇"},{"code":"511083104","name":"黄家镇"},{"code":"511083105","name":"双凤镇"},{"code":"511083106","name":"龙市镇"},{"code":"511083108","name":"界市镇"},{"code":"511083109","name":"石碾镇"},{"code":"511083112","name":"石燕桥镇"},{"code":"511083114","name":"胡家镇"},{"code":"511083115","name":"云顶镇"},{"code":"511083117","name":"普润镇"}]}]},{"code":"5111","name":"乐山市","children":[{"code":"511102","name":"市中区","children":[{"code":"511102004","name":"大佛街道"},{"code":"511102006","name":"通江街道"},{"code":"511102008","name":"海棠街道"},{"code":"511102009","name":"绿心街道"},{"code":"511102010","name":"全福街道"},{"code":"511102101","name":"牟子镇"},{"code":"511102102","name":"土主镇"},{"code":"511102103","name":"白马镇"},{"code":"511102104","name":"茅桥镇"},{"code":"511102105","name":"青平镇"},{"code":"511102106","name":"苏稽镇"},{"code":"511102107","name":"水口镇"},{"code":"511102108","name":"安谷镇"},{"code":"511102109","name":"棉竹镇"},{"code":"511102116","name":"平兴镇"},{"code":"511102117","name":"悦来镇"},{"code":"511102118","name":"剑峰镇"}]},{"code":"511111","name":"沙湾区","children":[{"code":"511111002","name":"铜河街道"},{"code":"511111100","name":"沙湾镇"},{"code":"511111101","name":"嘉农镇"},{"code":"511111102","name":"太平镇"},{"code":"511111103","name":"福禄镇"},{"code":"511111104","name":"牛石镇"},{"code":"511111106","name":"葫芦镇"},{"code":"511111107","name":"踏水镇"},{"code":"511111108","name":"轸溪镇"}]},{"code":"511112","name":"五通桥区","children":[{"code":"511112100","name":"竹根镇"},{"code":"511112101","name":"牛华镇"},{"code":"511112104","name":"金粟镇"},{"code":"511112105","name":"金山镇"},{"code":"511112107","name":"西坝镇"},{"code":"511112108","name":"冠英镇"},{"code":"511112109","name":"蔡金镇"},{"code":"511112110","name":"石麟镇"}]},{"code":"511113","name":"金口河区","children":[{"code":"511113100","name":"永和镇"},{"code":"511113101","name":"金河镇"},{"code":"511113200","name":"和平彝族乡"},{"code":"511113201","name":"共安彝族乡"},{"code":"511113203","name":"永胜乡"}]},{"code":"511123","name":"犍为县","children":[{"code":"511123100","name":"玉津镇"},{"code":"511123101","name":"孝姑镇"},{"code":"511123102","name":"石溪镇"},{"code":"511123103","name":"清溪镇"},{"code":"511123105","name":"罗城镇"},{"code":"511123106","name":"芭沟镇"},{"code":"511123107","name":"龙孔镇"},{"code":"511123108","name":"定文镇"},{"code":"511123112","name":"舞雩镇"},{"code":"511123113","name":"玉屏镇"},{"code":"511123114","name":"大兴镇"},{"code":"511123115","name":"九井镇"},{"code":"511123116","name":"铁炉镇"},{"code":"511123117","name":"寿保镇"},{"code":"511123118","name":"双溪镇"}]},{"code":"511124","name":"井研县","children":[{"code":"511124001","name":"研城街道"},{"code":"511124101","name":"马踏镇"},{"code":"511124102","name":"竹园镇"},{"code":"511124103","name":"研经镇"},{"code":"511124104","name":"周坡镇"},{"code":"511124105","name":"千佛镇"},{"code":"511124106","name":"王村镇"},{"code":"511124107","name":"三江镇"},{"code":"511124108","name":"东林镇"},{"code":"511124110","name":"集益镇"},{"code":"511124111","name":"纯复镇"},{"code":"511124112","name":"宝五镇"},{"code":"511124113","name":"镇阳镇"},{"code":"511124114","name":"高凤镇"},{"code":"511124115","name":"门坎镇"}]},{"code":"511126","name":"夹江县","children":[{"code":"511126001","name":"青衣街道"},{"code":"511126002","name":"漹城街道"},{"code":"511126101","name":"黄土镇"},{"code":"511126102","name":"甘江镇"},{"code":"511126106","name":"吴场镇"},{"code":"511126107","name":"木城镇"},{"code":"511126108","name":"华头镇"},{"code":"511126110","name":"新场镇"},{"code":"511126111","name":"马村镇"}]},{"code":"511129","name":"沐川县","children":[{"code":"511129100","name":"沐溪镇"},{"code":"511129101","name":"永福镇"},{"code":"511129102","name":"大楠镇"},{"code":"511129103","name":"箭板镇"},{"code":"511129104","name":"舟坝镇"},{"code":"511129105","name":"黄丹镇"},{"code":"511129106","name":"利店镇"},{"code":"511129107","name":"富新镇"},{"code":"511129205","name":"底堡乡"},{"code":"511129206","name":"杨村乡"},{"code":"511129207","name":"高笋乡"},{"code":"511129208","name":"茨竹乡"},{"code":"511129210","name":"武圣乡"}]},{"code":"511132","name":"峨边彝族自治县","children":[{"code":"511132100","name":"沙坪镇"},{"code":"511132101","name":"大堡镇"},{"code":"511132102","name":"毛坪镇"},{"code":"511132103","name":"五渡镇"},{"code":"511132104","name":"新林镇"},{"code":"511132105","name":"黑竹沟镇"},{"code":"511132106","name":"红旗镇"},{"code":"511132201","name":"宜坪乡"},{"code":"511132206","name":"杨河乡"},{"code":"511132208","name":"新场乡"},{"code":"511132209","name":"平等乡"},{"code":"511132211","name":"金岩乡"},{"code":"511132212","name":"勒乌乡"}]},{"code":"511133","name":"马边彝族自治县","children":[{"code":"511133100","name":"民建镇"},{"code":"511133101","name":"荣丁镇"},{"code":"511133102","name":"下溪镇"},{"code":"511133103","name":"苏坝镇"},{"code":"511133104","name":"烟峰镇"},{"code":"511133105","name":"劳动镇"},{"code":"511133106","name":"荍坝镇"},{"code":"511133107","name":"建设镇"},{"code":"511133108","name":"民主镇"},{"code":"511133109","name":"梅林镇"},{"code":"511133110","name":"雪口山镇"},{"code":"511133111","name":"三河口镇"},{"code":"511133211","name":"大竹堡乡"},{"code":"511133223","name":"高卓营乡"},{"code":"511133226","name":"永红乡"}]},{"code":"511181","name":"峨眉山市","children":[{"code":"511181001","name":"胜利街道"},{"code":"511181002","name":"峨山街道"},{"code":"511181100","name":"绥山镇"},{"code":"511181101","name":"高桥镇"},{"code":"511181102","name":"罗目镇"},{"code":"511181103","name":"九里镇"},{"code":"511181104","name":"龙池镇"},{"code":"511181106","name":"符溪镇"},{"code":"511181108","name":"双福镇"},{"code":"511181109","name":"桂花桥镇"},{"code":"511181110","name":"大为镇"},{"code":"511181112","name":"黄湾镇"},{"code":"511181200","name":"龙门乡"}]}]},{"code":"5113","name":"南充市","children":[{"code":"511302","name":"顺庆区","children":[{"code":"511302001","name":"中城街道"},{"code":"511302002","name":"北城街道"},{"code":"511302003","name":"西城街道"},{"code":"511302004","name":"东南街道"},{"code":"511302005","name":"舞凤街道"},{"code":"511302006","name":"新建街道"},{"code":"511302007","name":"华凤街道"},{"code":"511302008","name":"和平路街道"},{"code":"511302009","name":"潆溪街道"},{"code":"511302010","name":"荆溪街道"},{"code":"511302011","name":"西山街道"},{"code":"511302012","name":"搬罾街道"},{"code":"511302104","name":"共兴镇"},{"code":"511302105","name":"金台镇"},{"code":"511302106","name":"芦溪镇"},{"code":"511302107","name":"李家镇"},{"code":"511302108","name":"双桥镇"},{"code":"511302114","name":"渔溪镇"},{"code":"511302200","name":"新复乡"}]},{"code":"511303","name":"高坪区","children":[{"code":"511303001","name":"白塔街道"},{"code":"511303002","name":"清溪街道"},{"code":"511303003","name":"小龙街道"},{"code":"511303004","name":"龙门街道"},{"code":"511303005","name":"青莲街道"},{"code":"511303006","name":"都京街道"},{"code":"511303008","name":"老君街道"},{"code":"511303009","name":"螺溪街道"},{"code":"511303103","name":"江陵镇"},{"code":"511303104","name":"擦耳镇"},{"code":"511303106","name":"东观镇"},{"code":"511303107","name":"长乐镇"},{"code":"511303108","name":"胜观镇"},{"code":"511303110","name":"阙家镇"},{"code":"511303111","name":"石圭镇"},{"code":"511303112","name":"青居镇"},{"code":"511303115","name":"会龙镇"},{"code":"511303117","name":"走马镇"},{"code":"511303211","name":"佛门乡"}]},{"code":"511304","name":"嘉陵区","children":[{"code":"511304001","name":"火花街道"},{"code":"511304003","name":"都尉街道"},{"code":"511304004","name":"文峰街道"},{"code":"511304005","name":"西兴街道"},{"code":"511304006","name":"南湖街道"},{"code":"511304101","name":"曲水镇"},{"code":"511304102","name":"李渡镇"},{"code":"511304103","name":"吉安镇"},{"code":"511304104","name":"龙岭镇"},{"code":"511304105","name":"金凤镇"},{"code":"511304106","name":"安福镇"},{"code":"511304107","name":"安平镇"},{"code":"511304108","name":"世阳镇"},{"code":"511304109","name":"大通镇"},{"code":"511304110","name":"一立镇"},{"code":"511304111","name":"龙蟠镇"},{"code":"511304112","name":"里坝镇"},{"code":"511304114","name":"金宝镇"},{"code":"511304115","name":"三会镇"},{"code":"511304117","name":"双桂镇"},{"code":"511304119","name":"七宝寺镇"},{"code":"511304121","name":"河西镇"},{"code":"511304215","name":"盐溪乡"},{"code":"511304220","name":"大兴乡"}]},{"code":"511321","name":"南部县","children":[{"code":"511321001","name":"滨江街道"},{"code":"511321002","name":"蜀北街道"},{"code":"511321003","name":"满福街道"},{"code":"511321004","name":"南隆街道"},{"code":"511321102","name":"老鸦镇"},{"code":"511321103","name":"永定镇"},{"code":"511321104","name":"碑院镇"},{"code":"511321105","name":"谢河镇"},{"code":"511321106","name":"盘龙镇"},{"code":"511321107","name":"铁佛塘镇"},{"code":"511321108","name":"石河镇"},{"code":"511321109","name":"王家镇"},{"code":"511321110","name":"富利镇"},{"code":"511321111","name":"楠木镇"},{"code":"511321112","name":"长坪镇"},{"code":"511321113","name":"东坝镇"},{"code":"511321114","name":"河坝镇"},{"code":"511321115","name":"定水镇"},{"code":"511321116","name":"大王镇"},{"code":"511321117","name":"黄金镇"},{"code":"511321118","name":"流马镇"},{"code":"511321119","name":"建兴镇"},{"code":"511321120","name":"三官镇"},{"code":"511321121","name":"伏虎镇"},{"code":"511321122","name":"双佛镇"},{"code":"511321123","name":"花罐镇"},{"code":"511321124","name":"大桥镇"},{"code":"511321125","name":"大河镇"},{"code":"511321126","name":"万年镇"},{"code":"511321127","name":"升钟镇"},{"code":"511321128","name":"升水镇"},{"code":"511321129","name":"大坪镇"},{"code":"511321130","name":"神坝镇"},{"code":"511321131","name":"八尔湖镇"},{"code":"511321132","name":"石龙镇"},{"code":"511321133","name":"西水镇"},{"code":"511321134","name":"桐坪镇"},{"code":"511321210","name":"五灵乡"},{"code":"511321229","name":"小元乡"},{"code":"511321233","name":"宏观乡"},{"code":"511321238","name":"双峰乡"},{"code":"511321243","name":"太霞乡"}]},{"code":"511322","name":"营山县","children":[{"code":"511322001","name":"绥安街道"},{"code":"511322002","name":"朗池街道"},{"code":"511322003","name":"城南街道"},{"code":"511322101","name":"渌井镇"},{"code":"511322102","name":"东升镇"},{"code":"511322103","name":"骆市镇"},{"code":"511322104","name":"黄渡镇"},{"code":"511322105","name":"小桥镇"},{"code":"511322106","name":"灵鹫镇"},{"code":"511322107","name":"老林镇"},{"code":"511322108","name":"木垭镇"},{"code":"511322109","name":"消水镇"},{"code":"511322110","name":"双流镇"},{"code":"511322111","name":"绿水镇"},{"code":"511322113","name":"蓼叶镇"},{"code":"511322114","name":"新店镇"},{"code":"511322115","name":"回龙镇"},{"code":"511322116","name":"星火镇"},{"code":"511322117","name":"西桥镇"},{"code":"511322121","name":"望龙湖镇"},{"code":"511322122","name":"青山镇"},{"code":"511322212","name":"木顶乡"},{"code":"511322216","name":"明德乡"},{"code":"511322219","name":"太蓬乡"},{"code":"511322221","name":"柏林乡"},{"code":"511322225","name":"悦中乡"},{"code":"511322230","name":"大庙乡"},{"code":"511322232","name":"安化乡"},{"code":"511322237","name":"清水乡"}]},{"code":"511323","name":"蓬安县","children":[{"code":"511323001","name":"周口街道"},{"code":"511323002","name":"相如街道"},{"code":"511323101","name":"锦屏镇"},{"code":"511323102","name":"巨龙镇"},{"code":"511323103","name":"正源镇"},{"code":"511323105","name":"金溪镇"},{"code":"511323106","name":"徐家镇"},{"code":"511323107","name":"河舒镇"},{"code":"511323108","name":"利溪镇"},{"code":"511323109","name":"龙蚕镇"},{"code":"511323110","name":"杨家镇"},{"code":"511323111","name":"罗家镇"},{"code":"511323112","name":"福德镇"},{"code":"511323113","name":"银汉镇"},{"code":"511323114","name":"兴旺镇"},{"code":"511323116","name":"睦坝镇"},{"code":"511323208","name":"平头乡"},{"code":"511323209","name":"鲜店乡"},{"code":"511323215","name":"金甲乡"},{"code":"511323217","name":"新园乡"},{"code":"511323222","name":"石孔乡"}]},{"code":"511324","name":"仪陇县","children":[{"code":"511324001","name":"度门街道"},{"code":"511324100","name":"金城镇"},{"code":"511324101","name":"新政镇"},{"code":"511324102","name":"马鞍镇"},{"code":"511324103","name":"永乐镇"},{"code":"511324104","name":"日兴镇"},{"code":"511324105","name":"土门镇"},{"code":"511324106","name":"复兴镇"},{"code":"511324107","name":"观紫镇"},{"code":"511324108","name":"先锋镇"},{"code":"511324109","name":"三蛟镇"},{"code":"511324110","name":"回春镇"},{"code":"511324111","name":"柳垭镇"},{"code":"511324112","name":"义路镇"},{"code":"511324113","name":"立山镇"},{"code":"511324114","name":"三河镇"},{"code":"511324115","name":"瓦子镇"},{"code":"511324116","name":"大寅镇"},{"code":"511324117","name":"二道镇"},{"code":"511324118","name":"赛金镇"},{"code":"511324119","name":"丁字桥镇"},{"code":"511324120","name":"大仪镇"},{"code":"511324121","name":"张公镇"},{"code":"511324122","name":"五福镇"},{"code":"511324124","name":"杨桥镇"},{"code":"511324125","name":"保平镇"},{"code":"511324126","name":"文星镇"},{"code":"511324127","name":"双胜镇"},{"code":"511324129","name":"永光镇"},{"code":"511324130","name":"思德镇"},{"code":"511324202","name":"铜鼓乡"},{"code":"511324207","name":"凤仪乡"},{"code":"511324210","name":"福临乡"},{"code":"511324212","name":"来仪乡"},{"code":"511324226","name":"板桥乡"},{"code":"511324230","name":"芭蕉乡"},{"code":"511324241","name":"柴井乡"}]},{"code":"511325","name":"西充县","children":[{"code":"511325001","name":"南台街道"},{"code":"511325002","name":"晋城街道"},{"code":"511325101","name":"太平镇"},{"code":"511325102","name":"大全镇"},{"code":"511325103","name":"仙林镇"},{"code":"511325104","name":"古楼镇"},{"code":"511325105","name":"义兴镇"},{"code":"511325106","name":"关文镇"},{"code":"511325107","name":"凤鸣镇"},{"code":"511325108","name":"青狮镇"},{"code":"511325109","name":"槐树镇"},{"code":"511325110","name":"鸣龙镇"},{"code":"511325111","name":"双凤镇"},{"code":"511325112","name":"高院镇"},{"code":"511325113","name":"仁和镇"},{"code":"511325114","name":"多扶镇"},{"code":"511325115","name":"莲池镇"},{"code":"511325116","name":"常林镇"},{"code":"511325203","name":"占山乡"},{"code":"511325226","name":"祥龙乡"},{"code":"511325227","name":"车龙乡"},{"code":"511325229","name":"东太乡"},{"code":"511325232","name":"罐垭乡"}]},{"code":"511381","name":"阆中市","children":[{"code":"511381001","name":"保宁街道"},{"code":"511381003","name":"沙溪街道"},{"code":"511381004","name":"七里街道"},{"code":"511381005","name":"江南街道"},{"code":"511381006","name":"河溪街道"},{"code":"511381103","name":"彭城镇"},{"code":"511381105","name":"柏垭镇"},{"code":"511381106","name":"飞凤镇"},{"code":"511381107","name":"思依镇"},{"code":"511381108","name":"文成镇"},{"code":"511381109","name":"二龙镇"},{"code":"511381110","name":"石滩镇"},{"code":"511381111","name":"老观镇"},{"code":"511381112","name":"龙泉镇"},{"code":"511381113","name":"千佛镇"},{"code":"511381114","name":"望垭镇"},{"code":"511381116","name":"妙高镇"},{"code":"511381117","name":"洪山镇"},{"code":"511381120","name":"水观镇"},{"code":"511381121","name":"金垭镇"},{"code":"511381122","name":"玉台镇"},{"code":"511381124","name":"木兰镇"},{"code":"511381127","name":"五马镇"},{"code":"511381128","name":"天宫镇"},{"code":"511381212","name":"桥楼乡"},{"code":"511381219","name":"博树回族乡"},{"code":"511381234","name":"峰占乡"},{"code":"511381235","name":"鹤峰乡"}]}]},{"code":"5114","name":"眉山市","children":[{"code":"511402","name":"东坡区","children":[{"code":"511402001","name":"通惠街道"},{"code":"511402002","name":"大石桥街道"},{"code":"511402003","name":"苏祠街道"},{"code":"511402102","name":"太和镇"},{"code":"511402104","name":"尚义镇"},{"code":"511402105","name":"多悦镇"},{"code":"511402106","name":"秦家镇"},{"code":"511402107","name":"万胜镇"},{"code":"511402109","name":"思蒙镇"},{"code":"511402110","name":"修文镇"},{"code":"511402112","name":"松江镇"},{"code":"511402113","name":"崇礼镇"},{"code":"511402114","name":"富牛镇"},{"code":"511402115","name":"永寿镇"},{"code":"511402116","name":"三苏镇"},{"code":"511402121","name":"复兴镇"}]},{"code":"511403","name":"彭山区","children":[{"code":"511403001","name":"凤鸣街道"},{"code":"511403003","name":"青龙街道"},{"code":"511403004","name":"观音街道"},{"code":"511403006","name":"谢家街道"},{"code":"511403007","name":"江口街道"},{"code":"511403110","name":"锦江镇"},{"code":"511403118","name":"公义镇"},{"code":"511403121","name":"黄丰镇"}]},{"code":"511421","name":"仁寿县","children":[{"code":"511421001","name":"文林街道"},{"code":"511421002","name":"普宁街道"},{"code":"511421003","name":"怀仁街道"},{"code":"511421004","name":"视高街道"},{"code":"511421102","name":"文宫镇"},{"code":"511421112","name":"禾加镇"},{"code":"511421116","name":"龙马镇"},{"code":"511421117","name":"方家镇"},{"code":"511421124","name":"大化镇"},{"code":"511421125","name":"高家镇"},{"code":"511421127","name":"禄加镇"},{"code":"511421128","name":"宝飞镇"},{"code":"511421129","name":"彰加镇"},{"code":"511421130","name":"慈航镇"},{"code":"511421131","name":"汪洋镇"},{"code":"511421132","name":"钟祥镇"},{"code":"511421133","name":"始建镇"},{"code":"511421134","name":"满井镇"},{"code":"511421135","name":"富加镇"},{"code":"511421136","name":"龙正镇"},{"code":"511421137","name":"黑龙滩镇"},{"code":"511421140","name":"北斗镇"},{"code":"511421143","name":"宝马镇"},{"code":"511421144","name":"珠嘉镇"},{"code":"511421146","name":"曹家镇"},{"code":"511421160","name":"谢安镇"},{"code":"511421161","name":"新店镇"},{"code":"511421162","name":"藕塘镇"},{"code":"511421163","name":"板桥镇"},{"code":"511421164","name":"贵平镇"},{"code":"511421200","name":"虞丞乡"},{"code":"511421203","name":"青岗乡"}]},{"code":"511423","name":"洪雅县","children":[{"code":"511423101","name":"止戈镇"},{"code":"511423112","name":"洪川镇"},{"code":"511423113","name":"余坪镇"},{"code":"511423114","name":"槽渔滩镇"},{"code":"511423115","name":"中保镇"},{"code":"511423116","name":"东岳镇"},{"code":"511423117","name":"柳江镇"},{"code":"511423118","name":"高庙镇"},{"code":"511423119","name":"瓦屋山镇"},{"code":"511423120","name":"七里坪镇"},{"code":"511423121","name":"将军镇"},{"code":"511423122","name":"中山镇"}]},{"code":"511424","name":"丹棱县","children":[{"code":"511424102","name":"仁美镇"},{"code":"511424106","name":"杨场镇"},{"code":"511424108","name":"张场镇"},{"code":"511424109","name":"齐乐镇"},{"code":"511424204","name":"顺龙乡"}]},{"code":"511425","name":"青神县","children":[{"code":"511425001","name":"青竹街道"},{"code":"511425102","name":"汉阳镇"},{"code":"511425108","name":"瑞峰镇"},{"code":"511425110","name":"西龙镇"},{"code":"511425112","name":"高台镇"},{"code":"511425217","name":"白果乡"},{"code":"511425218","name":"罗波乡"}]}]},{"code":"5115","name":"宜宾市","children":[{"code":"511502","name":"翠屏区","children":[{"code":"511502006","name":"西郊街道"},{"code":"511502007","name":"安阜街道"},{"code":"511502008","name":"白沙湾街道"},{"code":"511502010","name":"象鼻街道"},{"code":"511502011","name":"沙坪街道"},{"code":"511502012","name":"合江门街道"},{"code":"511502013","name":"大观楼街道"},{"code":"511502014","name":"双城街道"},{"code":"511502101","name":"李庄镇"},{"code":"511502102","name":"菜坝镇"},{"code":"511502104","name":"金坪镇"},{"code":"511502108","name":"牟坪镇"},{"code":"511502109","name":"李端镇"},{"code":"511502111","name":"宗场镇"},{"code":"511502112","name":"宋家镇"},{"code":"511502115","name":"思坡镇"},{"code":"511502116","name":"白花镇"},{"code":"511502118","name":"双谊镇"},{"code":"511502120","name":"永兴镇"},{"code":"511502121","name":"金秋湖镇"}]},{"code":"511503","name":"南溪区","children":[{"code":"511503001","name":"南溪街道"},{"code":"511503002","name":"罗龙街道"},{"code":"511503003","name":"仙源街道"},{"code":"511503102","name":"刘家镇"},{"code":"511503103","name":"江南镇"},{"code":"511503104","name":"大观镇"},{"code":"511503105","name":"汪家镇"},{"code":"511503106","name":"黄沙镇"},{"code":"511503107","name":"仙临镇"},{"code":"511503108","name":"长兴镇"},{"code":"511503109","name":"裴石镇"}]},{"code":"511504","name":"叙州区","children":[{"code":"511504001","name":"柏溪街道"},{"code":"511504002","name":"南岸街道"},{"code":"511504003","name":"赵场街道"},{"code":"511504101","name":"南广镇"},{"code":"511504103","name":"观音镇"},{"code":"511504104","name":"横江镇"},{"code":"511504105","name":"柳嘉镇"},{"code":"511504106","name":"泥溪镇"},{"code":"511504107","name":"蕨溪镇"},{"code":"511504108","name":"商州镇"},{"code":"511504109","name":"高场镇"},{"code":"511504110","name":"安边镇"},{"code":"511504111","name":"双龙镇"},{"code":"511504113","name":"合什镇"},{"code":"511504119","name":"樟海镇"},{"code":"511504202","name":"龙池乡"},{"code":"511504203","name":"凤仪乡"}]},{"code":"511523","name":"江安县","children":[{"code":"511523100","name":"江安镇"},{"code":"511523101","name":"红桥镇"},{"code":"511523104","name":"怡乐镇"},{"code":"511523105","name":"留耕镇"},{"code":"511523108","name":"五矿镇"},{"code":"511523109","name":"迎安镇"},{"code":"511523110","name":"夕佳山镇"},{"code":"511523112","name":"铁清镇"},{"code":"511523113","name":"四面山镇"},{"code":"511523114","name":"大井镇"},{"code":"511523115","name":"阳春镇"},{"code":"511523116","name":"大妙镇"},{"code":"511523117","name":"仁和镇"},{"code":"511523118","name":"下长镇"}]},{"code":"511524","name":"长宁县","children":[{"code":"511524100","name":"长宁镇"},{"code":"511524101","name":"梅硐镇"},{"code":"511524102","name":"双河镇"},{"code":"511524103","name":"硐底镇"},{"code":"511524104","name":"花滩镇"},{"code":"511524105","name":"竹海镇"},{"code":"511524106","name":"老翁镇"},{"code":"511524107","name":"古河镇"},{"code":"511524110","name":"龙头镇"},{"code":"511524112","name":"铜鼓镇"},{"code":"511524113","name":"井江镇"},{"code":"511524114","name":"铜锣镇"},{"code":"511524115","name":"梅白镇"}]},{"code":"511525","name":"高县","children":[{"code":"511525100","name":"文江镇"},{"code":"511525101","name":"庆符镇"},{"code":"511525102","name":"沙河镇"},{"code":"511525103","name":"嘉乐镇"},{"code":"511525105","name":"罗场镇"},{"code":"511525106","name":"蕉村镇"},{"code":"511525107","name":"可久镇"},{"code":"511525108","name":"来复镇"},{"code":"511525109","name":"月江镇"},{"code":"511525110","name":"胜天镇"},{"code":"511525111","name":"复兴镇"},{"code":"511525112","name":"落润镇"},{"code":"511525113","name":"庆岭镇"}]},{"code":"511526","name":"珙县","children":[{"code":"511526100","name":"珙泉镇"},{"code":"511526101","name":"巡场镇"},{"code":"511526102","name":"孝儿镇"},{"code":"511526103","name":"底洞镇"},{"code":"511526104","name":"上罗镇"},{"code":"511526105","name":"洛表镇"},{"code":"511526106","name":"洛亥镇"},{"code":"511526107","name":"王家镇"},{"code":"511526108","name":"沐滩镇"},{"code":"511526110","name":"曹营镇"},{"code":"511526205","name":"玉和苗族乡"},{"code":"511526209","name":"罗渡苗族乡"},{"code":"511526212","name":"观斗苗族乡"}]},{"code":"511527","name":"筠连县","children":[{"code":"511527100","name":"筠连镇"},{"code":"511527101","name":"腾达镇"},{"code":"511527102","name":"巡司镇"},{"code":"511527104","name":"沐爱镇"},{"code":"511527107","name":"镇舟镇"},{"code":"511527108","name":"蒿坝镇"},{"code":"511527109","name":"大雪山镇"},{"code":"511527205","name":"乐义乡"},{"code":"511527208","name":"团林苗族乡"},{"code":"511527209","name":"联合苗族乡"},{"code":"511527210","name":"高坪苗族乡"},{"code":"511527211","name":"丰乐乡"}]},{"code":"511528","name":"兴文县","children":[{"code":"511528100","name":"古宋镇"},{"code":"511528101","name":"僰王山镇"},{"code":"511528103","name":"共乐镇"},{"code":"511528105","name":"莲花镇"},{"code":"511528107","name":"九丝城镇"},{"code":"511528108","name":"石海镇"},{"code":"511528110","name":"周家镇"},{"code":"511528111","name":"五星镇"},{"code":"511528200","name":"大坝苗族乡"},{"code":"511528205","name":"大河苗族乡"},{"code":"511528206","name":"麒麟苗族乡"},{"code":"511528207","name":"仙峰苗族乡"}]},{"code":"511529","name":"屏山县","children":[{"code":"511529100","name":"锦屏镇"},{"code":"511529101","name":"新市镇"},{"code":"511529102","name":"中都镇"},{"code":"511529103","name":"龙华镇"},{"code":"511529104","name":"大乘镇"},{"code":"511529107","name":"新安镇"},{"code":"511529109","name":"书楼镇"},{"code":"511529110","name":"屏山镇"},{"code":"511529208","name":"夏溪乡"},{"code":"511529210","name":"屏边彝族乡"},{"code":"511529211","name":"清平彝族乡"}]}]},{"code":"5116","name":"广安市","children":[{"code":"511602","name":"广安区","children":[{"code":"511602001","name":"浓洄街道"},{"code":"511602002","name":"北辰街道"},{"code":"511602004","name":"广福街道"},{"code":"511602005","name":"万盛街道"},{"code":"511602006","name":"中桥街道"},{"code":"511602007","name":"枣山街道"},{"code":"511602101","name":"官盛镇"},{"code":"511602102","name":"协兴镇"},{"code":"511602103","name":"浓溪镇"},{"code":"511602104","name":"悦来镇"},{"code":"511602105","name":"兴平镇"},{"code":"511602106","name":"井河镇"},{"code":"511602107","name":"花桥镇"},{"code":"511602108","name":"龙台镇"},{"code":"511602109","name":"肖溪镇"},{"code":"511602110","name":"恒升镇"},{"code":"511602111","name":"石笋镇"},{"code":"511602112","name":"白市镇"},{"code":"511602113","name":"大安镇"},{"code":"511602121","name":"穿石镇"},{"code":"511602122","name":"大龙镇"},{"code":"511602123","name":"东岳镇"},{"code":"511602207","name":"龙安乡"},{"code":"511602208","name":"彭家乡"},{"code":"511602216","name":"白马乡"}]},{"code":"511603","name":"前锋区","children":[{"code":"511603001","name":"奎阁街道"},{"code":"511603002","name":"大佛寺街道"},{"code":"511603003","name":"龙塘街道"},{"code":"511603004","name":"新桥街道"},{"code":"511603101","name":"桂兴镇"},{"code":"511603102","name":"观阁镇"},{"code":"511603103","name":"广兴镇"},{"code":"511603104","name":"代市镇"},{"code":"511603105","name":"观塘镇"},{"code":"511603106","name":"护安镇"},{"code":"511603107","name":"龙滩镇"},{"code":"511603108","name":"虎城镇"}]},{"code":"511621","name":"岳池县","children":[{"code":"511621001","name":"九龙街道"},{"code":"511621002","name":"朝阳街道"},{"code":"511621101","name":"花园镇"},{"code":"511621102","name":"坪滩镇"},{"code":"511621103","name":"龙孔镇"},{"code":"511621104","name":"镇裕镇"},{"code":"511621105","name":"白庙镇"},{"code":"511621106","name":"酉溪镇"},{"code":"511621107","name":"同兴镇"},{"code":"511621108","name":"兴隆镇"},{"code":"511621109","name":"秦溪镇"},{"code":"511621110","name":"顾县镇"},{"code":"511621111","name":"苟角镇"},{"code":"511621112","name":"天平镇"},{"code":"511621113","name":"石垭镇"},{"code":"511621114","name":"乔家镇"},{"code":"511621115","name":"罗渡镇"},{"code":"511621116","name":"裕民镇"},{"code":"511621117","name":"中和镇"},{"code":"511621118","name":"新场镇"},{"code":"511621119","name":"普安镇"},{"code":"511621121","name":"临溪镇"},{"code":"511621122","name":"西板镇"},{"code":"511621123","name":"齐福镇"},{"code":"511621124","name":"伏龙镇"},{"code":"511621212","name":"黄龙乡"},{"code":"511621216","name":"鱼峰乡"}]},{"code":"511622","name":"武胜县","children":[{"code":"511622100","name":"沿口镇"},{"code":"511622101","name":"中心镇"},{"code":"511622102","name":"烈面镇"},{"code":"511622103","name":"飞龙镇"},{"code":"511622104","name":"乐善镇"},{"code":"511622105","name":"万善镇"},{"code":"511622106","name":"龙女镇"},{"code":"511622107","name":"三溪镇"},{"code":"511622108","name":"赛马镇"},{"code":"511622109","name":"胜利镇"},{"code":"511622110","name":"金牛镇"},{"code":"511622111","name":"清平镇"},{"code":"511622112","name":"街子镇"},{"code":"511622113","name":"万隆镇"},{"code":"511622114","name":"礼安镇"},{"code":"511622115","name":"华封镇"},{"code":"511622116","name":"宝箴塞镇"},{"code":"511622117","name":"石盘镇"},{"code":"511622118","name":"鸣钟镇"},{"code":"511622201","name":"真静乡"},{"code":"511622202","name":"猛山乡"},{"code":"511622203","name":"双星乡"},{"code":"511622208","name":"鼓匠乡"}]},{"code":"511623","name":"邻水县","children":[{"code":"511623100","name":"鼎屏镇"},{"code":"511623101","name":"城北镇"},{"code":"511623102","name":"城南镇"},{"code":"511623103","name":"柑子镇"},{"code":"511623105","name":"观音桥镇"},{"code":"511623106","name":"牟家镇"},{"code":"511623107","name":"合流镇"},{"code":"511623108","name":"坛同镇"},{"code":"511623109","name":"高滩镇"},{"code":"511623110","name":"九龙镇"},{"code":"511623111","name":"御临镇"},{"code":"511623112","name":"袁市镇"},{"code":"511623113","name":"丰禾镇"},{"code":"511623114","name":"八耳镇"},{"code":"511623115","name":"石永镇"},{"code":"511623116","name":"兴仁镇"},{"code":"511623117","name":"王家镇"},{"code":"511623118","name":"石滓镇"},{"code":"511623119","name":"三古镇"},{"code":"511623120","name":"两河镇"},{"code":"511623121","name":"太和镇"},{"code":"511623122","name":"椿木镇"},{"code":"511623123","name":"梁板镇"},{"code":"511623124","name":"复盛镇"},{"code":"511623125","name":"黎家镇"}]},{"code":"511681","name":"华蓥市","children":[{"code":"511681001","name":"双河街道"},{"code":"511681002","name":"古桥街道"},{"code":"511681003","name":"华龙街道"},{"code":"511681101","name":"天池镇"},{"code":"511681102","name":"禄市镇"},{"code":"511681103","name":"永兴镇"},{"code":"511681104","name":"明月镇"},{"code":"511681105","name":"阳和镇"},{"code":"511681106","name":"高兴镇"},{"code":"511681108","name":"溪口镇"},{"code":"511681109","name":"庆华镇"},{"code":"511681200","name":"红岩乡"}]}]},{"code":"5117","name":"达州市","children":[{"code":"511702","name":"通川区","children":[{"code":"511702001","name":"东城街道"},{"code":"511702002","name":"西城街道"},{"code":"511702003","name":"朝阳街道"},{"code":"511702004","name":"凤西街道"},{"code":"511702005","name":"凤北街道"},{"code":"511702102","name":"罗江镇"},{"code":"511702103","name":"蒲家镇"},{"code":"511702104","name":"复兴镇"},{"code":"511702105","name":"双龙镇"},{"code":"511702107","name":"江陵镇"},{"code":"511702108","name":"碑庙镇"},{"code":"511702109","name":"磐石镇"},{"code":"511702110","name":"东岳镇"},{"code":"511702111","name":"梓桐镇"},{"code":"511702112","name":"北山镇"},{"code":"511702113","name":"金石镇"},{"code":"511702114","name":"青宁镇"},{"code":"511702208","name":"安云乡"}]},{"code":"511703","name":"达川区","children":[{"code":"511703001","name":"三里坪街道"},{"code":"511703002","name":"翠屏街道"},{"code":"511703005","name":"明月江街道"},{"code":"511703006","name":"杨柳街道"},{"code":"511703100","name":"亭子镇"},{"code":"511703101","name":"福善镇"},{"code":"511703102","name":"麻柳镇"},{"code":"511703104","name":"大树镇"},{"code":"511703105","name":"南岳镇"},{"code":"511703106","name":"万家镇"},{"code":"511703107","name":"景市镇"},{"code":"511703108","name":"百节镇"},{"code":"511703109","name":"赵家镇"},{"code":"511703113","name":"渡市镇"},{"code":"511703114","name":"管村镇"},{"code":"511703115","name":"石梯镇"},{"code":"511703116","name":"石桥镇"},{"code":"511703117","name":"堡子镇"},{"code":"511703118","name":"平滩镇"},{"code":"511703120","name":"双庙镇"},{"code":"511703122","name":"赵固镇"},{"code":"511703123","name":"桥湾镇"},{"code":"511703125","name":"大堰镇"},{"code":"511703127","name":"罐子镇"},{"code":"511703203","name":"安仁乡"},{"code":"511703217","name":"龙会乡"},{"code":"511703234","name":"虎让乡"},{"code":"511703235","name":"米城乡"}]},{"code":"511722","name":"宣汉县","children":[{"code":"511722001","name":"东乡街道"},{"code":"511722002","name":"蒲江街道"},{"code":"511722101","name":"君塘镇"},{"code":"511722102","name":"清溪镇"},{"code":"511722103","name":"普光镇"},{"code":"511722104","name":"天生镇"},{"code":"511722105","name":"柏树镇"},{"code":"511722106","name":"芭蕉镇"},{"code":"511722107","name":"南坝镇"},{"code":"511722108","name":"五宝镇"},{"code":"511722109","name":"峰城镇"},{"code":"511722110","name":"土黄镇"},{"code":"511722111","name":"华景镇"},{"code":"511722112","name":"樊哙镇"},{"code":"511722113","name":"新华镇"},{"code":"511722114","name":"黄金镇"},{"code":"511722115","name":"胡家镇"},{"code":"511722116","name":"毛坝镇"},{"code":"511722118","name":"大成镇"},{"code":"511722120","name":"下八镇"},{"code":"511722122","name":"塔河镇"},{"code":"511722123","name":"茶河镇"},{"code":"511722124","name":"厂溪镇"},{"code":"511722125","name":"红峰镇"},{"code":"511722127","name":"白马镇"},{"code":"511722128","name":"桃花镇"},{"code":"511722130","name":"马渡关镇"},{"code":"511722131","name":"庙安镇"},{"code":"511722132","name":"上峡镇"},{"code":"511722133","name":"南坪镇"},{"code":"511722204","name":"老君乡"},{"code":"511722205","name":"黄石乡"},{"code":"511722222","name":"三墩土家族乡"},{"code":"511722223","name":"漆树土家族乡"},{"code":"511722224","name":"龙泉土家族乡"},{"code":"511722225","name":"渡口土家族乡"},{"code":"511722226","name":"石铁乡"}]},{"code":"511723","name":"开江县","children":[{"code":"511723001","name":"淙城街道"},{"code":"511723100","name":"新宁镇"},{"code":"511723101","name":"普安镇"},{"code":"511723102","name":"回龙镇"},{"code":"511723104","name":"永兴镇"},{"code":"511723105","name":"讲治镇"},{"code":"511723106","name":"甘棠镇"},{"code":"511723107","name":"任市镇"},{"code":"511723108","name":"广福镇"},{"code":"511723109","name":"长岭镇"},{"code":"511723110","name":"八庙镇"},{"code":"511723111","name":"灵岩镇"},{"code":"511723205","name":"梅家乡"}]},{"code":"511724","name":"大竹县","children":[{"code":"511724001","name":"竹阳街道"},{"code":"511724002","name":"东柳街道"},{"code":"511724003","name":"白塔街道"},{"code":"511724101","name":"乌木镇"},{"code":"511724102","name":"团坝镇"},{"code":"511724103","name":"杨家镇"},{"code":"511724104","name":"清河镇"},{"code":"511724105","name":"柏林镇"},{"code":"511724106","name":"石河镇"},{"code":"511724107","name":"中华镇"},{"code":"511724108","name":"石桥铺镇"},{"code":"511724109","name":"观音镇"},{"code":"511724110","name":"周家镇"},{"code":"511724111","name":"石子镇"},{"code":"511724112","name":"文星镇"},{"code":"511724113","name":"妈妈镇"},{"code":"511724114","name":"高穴镇"},{"code":"511724115","name":"欧家镇"},{"code":"511724116","name":"庙坝镇"},{"code":"511724117","name":"清水镇"},{"code":"511724118","name":"月华镇"},{"code":"511724119","name":"高明镇"},{"code":"511724120","name":"童家镇"},{"code":"511724121","name":"天城镇"},{"code":"511724125","name":"四合镇"},{"code":"511724126","name":"永胜镇"},{"code":"511724203","name":"朝阳乡"},{"code":"511724214","name":"安吉乡"},{"code":"511724218","name":"八渡乡"},{"code":"511724220","name":"杨通乡"},{"code":"511724231","name":"川主乡"}]},{"code":"511725","name":"渠县","children":[{"code":"511725001","name":"渠江街道"},{"code":"511725002","name":"渠南街道"},{"code":"511725003","name":"天星街道"},{"code":"511725102","name":"临巴镇"},{"code":"511725103","name":"土溪镇"},{"code":"511725104","name":"三汇镇"},{"code":"511725105","name":"文崇镇"},{"code":"511725106","name":"涌兴镇"},{"code":"511725107","name":"贵福镇"},{"code":"511725108","name":"岩峰镇"},{"code":"511725109","name":"静边镇"},{"code":"511725110","name":"清溪场镇"},{"code":"511725111","name":"宝城镇"},{"code":"511725112","name":"有庆镇"},{"code":"511725113","name":"鲜渡镇"},{"code":"511725114","name":"琅琊镇"},{"code":"511725115","name":"李渡镇"},{"code":"511725116","name":"中滩镇"},{"code":"511725118","name":"三板镇"},{"code":"511725119","name":"丰乐镇"},{"code":"511725120","name":"李馥镇"},{"code":"511725121","name":"合力镇"},{"code":"511725123","name":"青龙镇"},{"code":"511725125","name":"卷硐镇"},{"code":"511725126","name":"望溪镇"},{"code":"511725128","name":"龙凤镇"},{"code":"511725129","name":"新市镇"},{"code":"511725130","name":"万寿镇"},{"code":"511725131","name":"渠北镇"},{"code":"511725132","name":"定远镇"},{"code":"511725134","name":"东安镇"},{"code":"511725215","name":"报恩乡"},{"code":"511725216","name":"安北乡"},{"code":"511725220","name":"大义乡"},{"code":"511725224","name":"巨光乡"},{"code":"511725231","name":"望江乡"},{"code":"511725236","name":"拱市乡"}]},{"code":"511771","name":"达州经济开发区","children":[{"code":"511771001","name":"斌郎街道"},{"code":"511771002","name":"石板街道"},{"code":"511771100","name":"河市镇"},{"code":"511771101","name":"金垭镇"},{"code":"511771201","name":"幺塘乡"}]},{"code":"511781","name":"万源市","children":[{"code":"511781001","name":"古东关街道"},{"code":"511781100","name":"太平镇"},{"code":"511781101","name":"青花镇"},{"code":"511781102","name":"旧院镇"},{"code":"511781103","name":"罗文镇"},{"code":"511781104","name":"河口镇"},{"code":"511781105","name":"草坝镇"},{"code":"511781106","name":"竹峪镇"},{"code":"511781107","name":"大竹镇"},{"code":"511781108","name":"黄钟镇"},{"code":"511781109","name":"官渡镇"},{"code":"511781110","name":"白沙镇"},{"code":"511781111","name":"沙滩镇"},{"code":"511781112","name":"石窝镇"},{"code":"511781113","name":"八台镇"},{"code":"511781114","name":"石塘镇"},{"code":"511781115","name":"铁矿镇"},{"code":"511781116","name":"大沙镇"},{"code":"511781117","name":"魏家镇"},{"code":"511781118","name":"白果镇"},{"code":"511781119","name":"长坝镇"},{"code":"511781120","name":"井溪镇"},{"code":"511781121","name":"鹰背镇"},{"code":"511781123","name":"永宁镇"},{"code":"511781124","name":"固军镇"},{"code":"511781125","name":"黑宝山镇"},{"code":"511781207","name":"蜂桶乡"},{"code":"511781210","name":"曾家乡"},{"code":"511781216","name":"玉带乡"},{"code":"511781226","name":"庙子乡"},{"code":"511781228","name":"紫溪乡"}]}]},{"code":"5118","name":"雅安市","children":[{"code":"511802","name":"雨城区","children":[{"code":"511802001","name":"东城街道"},{"code":"511802002","name":"西城街道"},{"code":"511802003","name":"河北街道"},{"code":"511802004","name":"青江街道"},{"code":"511802005","name":"大兴街道"},{"code":"511802101","name":"草坝镇"},{"code":"511802107","name":"上里镇"},{"code":"511802109","name":"晏场镇"},{"code":"511802110","name":"多营镇"},{"code":"511802111","name":"碧峰峡镇"},{"code":"511802112","name":"望鱼镇"},{"code":"511802113","name":"周公山镇"},{"code":"511802114","name":"八步镇"}]},{"code":"511803","name":"名山区","children":[{"code":"511803001","name":"永兴街道"},{"code":"511803002","name":"蒙阳街道"},{"code":"511803101","name":"百丈镇"},{"code":"511803102","name":"车岭镇"},{"code":"511803104","name":"马岭镇"},{"code":"511803105","name":"新店镇"},{"code":"511803106","name":"蒙顶山镇"},{"code":"511803107","name":"黑竹镇"},{"code":"511803108","name":"红星镇"},{"code":"511803109","name":"中峰镇"},{"code":"511803112","name":"茅河镇"},{"code":"511803118","name":"前进镇"},{"code":"511803119","name":"万古镇"}]},{"code":"511822","name":"荥经县","children":[{"code":"511822001","name":"严道街道"},{"code":"511822101","name":"花滩镇"},{"code":"511822102","name":"龙苍沟镇"},{"code":"511822103","name":"牛背山镇"},{"code":"511822104","name":"新添镇"},{"code":"511822105","name":"青龙镇"},{"code":"511822106","name":"荥河镇"},{"code":"511822107","name":"五宪镇"},{"code":"511822202","name":"安靖乡"},{"code":"511822203","name":"民建彝族乡"},{"code":"511822207","name":"泗坪乡"},{"code":"511822212","name":"宝峰彝族乡"}]},{"code":"511823","name":"汉源县","children":[{"code":"511823100","name":"富林镇"},{"code":"511823101","name":"九襄镇"},{"code":"511823102","name":"乌斯河镇"},{"code":"511823103","name":"宜东镇"},{"code":"511823104","name":"富庄镇"},{"code":"511823105","name":"清溪镇"},{"code":"511823106","name":"大树镇"},{"code":"511823107","name":"皇木镇"},{"code":"511823108","name":"唐家镇"},{"code":"511823109","name":"富泉镇"},{"code":"511823110","name":"安乐镇"},{"code":"511823111","name":"前域镇"},{"code":"511823209","name":"富乡乡"},{"code":"511823220","name":"马烈乡"},{"code":"511823224","name":"河南乡"},{"code":"511823225","name":"晒经乡"},{"code":"511823227","name":"小堡藏族彝族乡"},{"code":"511823228","name":"片马彝族乡"},{"code":"511823229","name":"坭美彝族乡"},{"code":"511823230","name":"永利彝族乡"},{"code":"511823231","name":"顺河彝族乡"}]},{"code":"511824","name":"石棉县","children":[{"code":"511824002","name":"新棉街道"},{"code":"511824101","name":"回隆镇"},{"code":"511824102","name":"美罗镇"},{"code":"511824106","name":"安顺场镇"},{"code":"511824202","name":"蟹螺藏族乡"},{"code":"511824203","name":"永和乡"},{"code":"511824206","name":"栗子坪彝族乡"},{"code":"511824208","name":"迎政乡"},{"code":"511824210","name":"丰乐乡"},{"code":"511824211","name":"新民藏族彝族乡"},{"code":"511824214","name":"草科藏族乡"},{"code":"511824216","name":"王岗坪彝族藏族乡"}]},{"code":"511825","name":"天全县","children":[{"code":"511825100","name":"城厢镇"},{"code":"511825101","name":"始阳镇"},{"code":"511825102","name":"思经镇"},{"code":"511825103","name":"喇叭河镇"},{"code":"511825104","name":"小河镇"},{"code":"511825105","name":"仁义镇"},{"code":"511825106","name":"新场镇"},{"code":"511825206","name":"乐英乡"},{"code":"511825210","name":"新华乡"},{"code":"511825212","name":"兴业乡"}]},{"code":"511826","name":"芦山县","children":[{"code":"511826001","name":"芦阳街道"},{"code":"511826101","name":"飞仙关镇"},{"code":"511826102","name":"双石镇"},{"code":"511826103","name":"太平镇"},{"code":"511826104","name":"大川镇"},{"code":"511826105","name":"思延镇"},{"code":"511826106","name":"龙门镇"},{"code":"511826203","name":"宝盛乡"}]},{"code":"511827","name":"宝兴县","children":[{"code":"511827100","name":"穆坪镇"},{"code":"511827101","name":"灵关镇"},{"code":"511827102","name":"陇东镇"},{"code":"511827201","name":"蜂桶寨乡"},{"code":"511827202","name":"硗碛乡"},{"code":"511827205","name":"五龙乡"},{"code":"511827206","name":"大溪乡"}]}]},{"code":"5119","name":"巴中市","children":[{"code":"511902","name":"巴州区","children":[{"code":"511902001","name":"东城街道"},{"code":"511902002","name":"西城街道"},{"code":"511902003","name":"回风街道"},{"code":"511902004","name":"江北街道"},{"code":"511902005","name":"宕梁街道"},{"code":"511902006","name":"玉堂街道"},{"code":"511902100","name":"大茅坪镇"},{"code":"511902101","name":"清江镇"},{"code":"511902103","name":"水宁寺镇"},{"code":"511902104","name":"化成镇"},{"code":"511902105","name":"曾口镇"},{"code":"511902106","name":"梁永镇"},{"code":"511902107","name":"三江镇"},{"code":"511902108","name":"鼎山镇"},{"code":"511902109","name":"大罗镇"},{"code":"511902122","name":"枣林镇"},{"code":"511902123","name":"平梁镇"},{"code":"511902124","name":"光辉镇"},{"code":"511902127","name":"凤溪镇"},{"code":"511902128","name":"天马山镇"},{"code":"511902203","name":"大和乡"},{"code":"511902204","name":"白庙乡"}]},{"code":"511903","name":"恩阳区","children":[{"code":"511903001","name":"登科街道"},{"code":"511903002","name":"文治街道"},{"code":"511903003","name":"司城街道"},{"code":"511903100","name":"明阳镇"},{"code":"511903101","name":"玉山镇"},{"code":"511903102","name":"渔溪镇"},{"code":"511903105","name":"花丛镇"},{"code":"511903106","name":"柳林镇"},{"code":"511903107","name":"下八庙镇"},{"code":"511903108","name":"茶坝镇"},{"code":"511903111","name":"上八庙镇"},{"code":"511903112","name":"关公镇"},{"code":"511903113","name":"兴隆镇"},{"code":"511903114","name":"双胜镇"},{"code":"511903115","name":"群乐镇"},{"code":"511903118","name":"尹家镇"},{"code":"511903119","name":"九镇"},{"code":"511903120","name":"雪山镇"}]},{"code":"511921","name":"通江县","children":[{"code":"511921001","name":"壁州街道"},{"code":"511921100","name":"诺江镇"},{"code":"511921101","name":"民胜镇"},{"code":"511921102","name":"火炬镇"},{"code":"511921103","name":"广纳镇"},{"code":"511921104","name":"铁佛镇"},{"code":"511921105","name":"麻石镇"},{"code":"511921106","name":"至诚镇"},{"code":"511921107","name":"洪口镇"},{"code":"511921108","name":"沙溪镇"},{"code":"511921109","name":"瓦室镇"},{"code":"511921110","name":"永安镇"},{"code":"511921111","name":"铁溪镇"},{"code":"511921112","name":"涪阳镇"},{"code":"511921113","name":"诺水河镇"},{"code":"511921114","name":"毛浴镇"},{"code":"511921115","name":"泥溪镇"},{"code":"511921116","name":"两河口镇"},{"code":"511921117","name":"板桥口镇"},{"code":"511921118","name":"新场镇"},{"code":"511921119","name":"杨柏镇"},{"code":"511921120","name":"三溪镇"},{"code":"511921121","name":"春在镇"},{"code":"511921122","name":"龙凤场镇"},{"code":"511921123","name":"空山镇"},{"code":"511921124","name":"唱歌镇"},{"code":"511921125","name":"陈河镇"},{"code":"511921126","name":"青峪镇"},{"code":"511921127","name":"兴隆镇"},{"code":"511921128","name":"烟溪镇"},{"code":"511921129","name":"长坪镇"},{"code":"511921214","name":"松溪乡"},{"code":"511921216","name":"胜利乡"}]},{"code":"511922","name":"南江县","children":[{"code":"511922001","name":"集州街道"},{"code":"511922101","name":"沙河镇"},{"code":"511922103","name":"长赤镇"},{"code":"511922104","name":"正直镇"},{"code":"511922105","name":"大河镇"},{"code":"511922106","name":"光雾山镇"},{"code":"511922108","name":"下两镇"},{"code":"511922109","name":"赶场镇"},{"code":"511922110","name":"杨坝镇"},{"code":"511922111","name":"天池镇"},{"code":"511922112","name":"关坝镇"},{"code":"511922113","name":"红光镇"},{"code":"511922114","name":"元潭镇"},{"code":"511922115","name":"赤溪镇"},{"code":"511922116","name":"八庙镇"},{"code":"511922117","name":"双流镇"},{"code":"511922118","name":"坪河镇"},{"code":"511922119","name":"桥亭镇"},{"code":"511922120","name":"和平镇"},{"code":"511922121","name":"侯家镇"},{"code":"511922122","name":"仁和镇"},{"code":"511922123","name":"高塔镇"},{"code":"511922125","name":"兴马镇"},{"code":"511922126","name":"关门镇"},{"code":"511922127","name":"石滩镇"},{"code":"511922128","name":"高桥镇"},{"code":"511922130","name":"贵民镇"},{"code":"511922131","name":"关路镇"},{"code":"511922132","name":"云顶镇"},{"code":"511922133","name":"公山镇"},{"code":"511922204","name":"团结乡"},{"code":"511922229","name":"神门乡"}]},{"code":"511923","name":"平昌县","children":[{"code":"511923001","name":"同州街道"},{"code":"511923002","name":"金宝街道"},{"code":"511923003","name":"江口街道"},{"code":"511923101","name":"响滩镇"},{"code":"511923102","name":"西兴镇"},{"code":"511923103","name":"佛楼镇"},{"code":"511923104","name":"白衣镇"},{"code":"511923105","name":"涵水镇"},{"code":"511923106","name":"岳家镇"},{"code":"511923107","name":"兰草镇"},{"code":"511923108","name":"驷马镇"},{"code":"511923110","name":"元山镇"},{"code":"511923111","name":"云台镇"},{"code":"511923112","name":"邱家镇"},{"code":"511923113","name":"笔山镇"},{"code":"511923114","name":"镇龙镇"},{"code":"511923115","name":"得胜镇"},{"code":"511923118","name":"灵山镇"},{"code":"511923119","name":"土兴镇"},{"code":"511923120","name":"望京镇"},{"code":"511923121","name":"龙岗镇"},{"code":"511923122","name":"板庙镇"},{"code":"511923123","name":"泥龙镇"},{"code":"511923125","name":"青云镇"},{"code":"511923126","name":"大寨镇"},{"code":"511923127","name":"土垭镇"},{"code":"511923128","name":"澌岸镇"},{"code":"511923130","name":"粉壁镇"},{"code":"511923133","name":"三十二梁镇"},{"code":"511923134","name":"江家口镇"},{"code":"511923135","name":"岩口镇"}]},{"code":"511971","name":"巴中经济开发区","children":[{"code":"511971007","name":"兴文街道"},{"code":"511971008","name":"奇章街道"},{"code":"511971009","name":"时新街道"}]}]},{"code":"5120","name":"资阳市","children":[{"code":"512002","name":"雁江区","children":[{"code":"512002001","name":"莲花街道"},{"code":"512002002","name":"三贤祠街道"},{"code":"512002003","name":"资溪街道"},{"code":"512002004","name":"狮子山街道"},{"code":"512002005","name":"宝莲街道"},{"code":"512002100","name":"雁江镇"},{"code":"512002101","name":"松涛镇"},{"code":"512002102","name":"宝台镇"},{"code":"512002103","name":"临江镇"},{"code":"512002104","name":"保和镇"},{"code":"512002105","name":"老君镇"},{"code":"512002106","name":"中和镇"},{"code":"512002107","name":"丹山镇"},{"code":"512002108","name":"小院镇"},{"code":"512002109","name":"堪嘉镇"},{"code":"512002110","name":"伍隍镇"},{"code":"512002111","name":"石岭镇"},{"code":"512002112","name":"东峰镇"},{"code":"512002113","name":"南津镇"},{"code":"512002116","name":"丰裕镇"},{"code":"512002117","name":"迎接镇"},{"code":"512002118","name":"祥符镇"},{"code":"512002400","name":"四川大堰劳动教养管理所"}]},{"code":"512021","name":"安岳县","children":[{"code":"512021001","name":"岳城街道"},{"code":"512021002","name":"石桥街道"},{"code":"512021100","name":"岳阳镇"},{"code":"512021101","name":"鸳大镇"},{"code":"512021103","name":"通贤镇"},{"code":"512021104","name":"龙台镇"},{"code":"512021105","name":"姚市镇"},{"code":"512021106","name":"林凤镇"},{"code":"512021107","name":"毛家镇"},{"code":"512021108","name":"永清镇"},{"code":"512021109","name":"永顺镇"},{"code":"512021110","name":"石羊镇"},{"code":"512021111","name":"两板桥镇"},{"code":"512021112","name":"护龙镇"},{"code":"512021113","name":"李家镇"},{"code":"512021114","name":"元坝镇"},{"code":"512021115","name":"兴隆镇"},{"code":"512021116","name":"天林镇"},{"code":"512021117","name":"镇子镇"},{"code":"512021118","name":"文化镇"},{"code":"512021119","name":"周礼镇"},{"code":"512021120","name":"驯龙镇"},{"code":"512021121","name":"华严镇"},{"code":"512021122","name":"卧佛镇"},{"code":"512021123","name":"长河源镇"},{"code":"512021124","name":"忠义镇"},{"code":"512021125","name":"护建镇"},{"code":"512021126","name":"南薰镇"},{"code":"512021127","name":"思贤镇"},{"code":"512021129","name":"清流镇"},{"code":"512021130","name":"协和镇"},{"code":"512021131","name":"朝阳镇"},{"code":"512021132","name":"乾龙镇"},{"code":"512021133","name":"大平镇"},{"code":"512021205","name":"来凤乡"},{"code":"512021206","name":"天马乡"},{"code":"512021212","name":"云峰乡"},{"code":"512021213","name":"岳新乡"},{"code":"512021215","name":"东胜乡"},{"code":"512021218","name":"高升乡"},{"code":"512021219","name":"横庙乡"},{"code":"512021221","name":"白塔寺乡"},{"code":"512021222","name":"双龙街乡"},{"code":"512021227","name":"合义乡"},{"code":"512021240","name":"千佛乡"},{"code":"512021241","name":"拱桥乡"}]},{"code":"512022","name":"乐至县","children":[{"code":"512022001","name":"天池街道"},{"code":"512022002","name":"南塔街道"},{"code":"512022101","name":"石佛镇"},{"code":"512022102","name":"回澜镇"},{"code":"512022103","name":"石湍镇"},{"code":"512022104","name":"童家镇"},{"code":"512022105","name":"宝林镇"},{"code":"512022106","name":"大佛镇"},{"code":"512022107","name":"良安镇"},{"code":"512022108","name":"金顺镇"},{"code":"512022109","name":"中和场镇"},{"code":"512022110","name":"劳动镇"},{"code":"512022111","name":"中天镇"},{"code":"512022112","name":"佛星镇"},{"code":"512022113","name":"蟠龙镇"},{"code":"512022114","name":"东山镇"},{"code":"512022115","name":"通旅镇"},{"code":"512022116","name":"高寺镇"},{"code":"512022117","name":"龙门镇"},{"code":"512022118","name":"盛池镇"},{"code":"512022204","name":"双河场乡"}]}]},{"code":"5132","name":"阿坝藏族羌族自治州","children":[{"code":"513201","name":"马尔康市","children":[{"code":"513201100","name":"马尔康镇"},{"code":"513201102","name":"松岗镇"},{"code":"513201103","name":"沙尔宗镇"},{"code":"513201200","name":"梭磨乡"},{"code":"513201201","name":"白湾乡"},{"code":"513201202","name":"党坝乡"},{"code":"513201203","name":"木尔宗乡"},{"code":"513201204","name":"脚木足乡"},{"code":"513201206","name":"龙尔甲乡"},{"code":"513201207","name":"大藏乡"},{"code":"513201208","name":"康山乡"},{"code":"513201209","name":"草登乡"},{"code":"513201210","name":"日部乡"}]},{"code":"513221","name":"汶川县","children":[{"code":"513221100","name":"威州镇"},{"code":"513221102","name":"映秀镇"},{"code":"513221103","name":"卧龙镇"},{"code":"513221105","name":"水磨镇"},{"code":"513221106","name":"漩口镇"},{"code":"513221107","name":"三江镇"},{"code":"513221108","name":"耿达镇"},{"code":"513221109","name":"绵虒镇"},{"code":"513221111","name":"灞州镇"}]},{"code":"513222","name":"理县","children":[{"code":"513222100","name":"杂谷脑镇"},{"code":"513222101","name":"米亚罗镇"},{"code":"513222102","name":"古尔沟镇"},{"code":"513222103","name":"薛城镇"},{"code":"513222104","name":"桃坪镇"},{"code":"513222105","name":"朴头镇"},{"code":"513222202","name":"甘堡乡"},{"code":"513222203","name":"蒲溪乡"},{"code":"513222204","name":"上孟乡"},{"code":"513222205","name":"下孟乡"},{"code":"513222207","name":"通化乡"}]},{"code":"513223","name":"茂县","children":[{"code":"513223100","name":"凤仪镇"},{"code":"513223101","name":"南新镇"},{"code":"513223102","name":"叠溪镇"},{"code":"513223105","name":"富顺镇"},{"code":"513223107","name":"土门镇"},{"code":"513223109","name":"洼底镇"},{"code":"513223110","name":"沙坝镇"},{"code":"513223111","name":"渭门镇"},{"code":"513223112","name":"黑虎镇"},{"code":"513223113","name":"沟口镇"},{"code":"513223114","name":"赤不苏镇"}]},{"code":"513224","name":"松潘县","children":[{"code":"513224100","name":"进安镇"},{"code":"513224101","name":"川主寺镇"},{"code":"513224102","name":"青云镇"},{"code":"513224103","name":"毛儿盖镇"},{"code":"513224104","name":"镇江关镇"},{"code":"513224105","name":"红土镇"},{"code":"513224106","name":"小河镇"},{"code":"513224201","name":"十里回族乡"},{"code":"513224203","name":"安宏乡"},{"code":"513224207","name":"镇坪乡"},{"code":"513224208","name":"岷江乡"},{"code":"513224209","name":"大姓乡"},{"code":"513224210","name":"白羊乡"},{"code":"513224213","name":"小姓乡"},{"code":"513224214","name":"燕云乡"},{"code":"513224219","name":"黄龙乡"},{"code":"513224221","name":"下八寨乡"},{"code":"513224401","name":"松潘林业局"}]},{"code":"513225","name":"九寨沟县","children":[{"code":"513225101","name":"漳扎镇"},{"code":"513225102","name":"南坪镇"},{"code":"513225103","name":"双河镇"},{"code":"513225104","name":"黑河镇"},{"code":"513225105","name":"勿角镇"},{"code":"513225201","name":"永和乡"},{"code":"513225203","name":"白河乡"},{"code":"513225205","name":"保华乡"},{"code":"513225209","name":"郭元乡"},{"code":"513225210","name":"草地乡"},{"code":"513225213","name":"玉瓦乡"},{"code":"513225214","name":"大录乡"},{"code":"513225400","name":"九寨沟国营牧场"},{"code":"513225401","name":"九寨沟风景名胜管理局"}]},{"code":"513226","name":"金川县","children":[{"code":"513226101","name":"观音桥镇"},{"code":"513226102","name":"安宁镇"},{"code":"513226103","name":"勒乌镇"},{"code":"513226104","name":"马奈镇"},{"code":"513226200","name":"沙耳乡"},{"code":"513226201","name":"庆宁乡"},{"code":"513226202","name":"咯尔乡"},{"code":"513226205","name":"河东乡"},{"code":"513226206","name":"河西乡"},{"code":"513226207","name":"集沐乡"},{"code":"513226208","name":"撒瓦脚乡"},{"code":"513226209","name":"卡拉脚乡"},{"code":"513226210","name":"俄热乡"},{"code":"513226212","name":"二嘎里乡"},{"code":"513226213","name":"阿科里乡"},{"code":"513226215","name":"卡撒乡"},{"code":"513226216","name":"曾达乡"},{"code":"513226217","name":"独松乡"},{"code":"513226220","name":"毛日乡"}]},{"code":"513227","name":"小金县","children":[{"code":"513227100","name":"美兴镇"},{"code":"513227101","name":"四姑娘山镇"},{"code":"513227102","name":"两河口镇"},{"code":"513227103","name":"达维镇"},{"code":"513227104","name":"沃日镇"},{"code":"513227106","name":"宅垄镇"},{"code":"513227107","name":"八角镇"},{"code":"513227201","name":"崇德乡"},{"code":"513227202","name":"新桥乡"},{"code":"513227203","name":"美沃乡"},{"code":"513227204","name":"沙龙乡"},{"code":"513227208","name":"日尔乡"},{"code":"513227209","name":"结斯乡"},{"code":"513227211","name":"木坡乡"},{"code":"513227213","name":"抚边乡"},{"code":"513227216","name":"窝底乡"},{"code":"513227217","name":"汗牛乡"},{"code":"513227218","name":"潘安乡"}]},{"code":"513228","name":"黑水县","children":[{"code":"513228100","name":"芦花镇"},{"code":"513228101","name":"卡龙镇"},{"code":"513228102","name":"色尔古镇"},{"code":"513228103","name":"西尔镇"},{"code":"513228104","name":"木苏镇"},{"code":"513228105","name":"沙石多镇"},{"code":"513228106","name":"知木林镇"},{"code":"513228107","name":"扎窝镇"},{"code":"513228204","name":"瓦钵梁子乡"},{"code":"513228206","name":"石碉楼乡"},{"code":"513228207","name":"龙坝乡"},{"code":"513228208","name":"洛多乡"},{"code":"513228210","name":"维古乡"},{"code":"513228213","name":"晴朗乡"},{"code":"513228214","name":"慈坝乡"}]},{"code":"513230","name":"壤塘县","children":[{"code":"513230101","name":"南木达镇"},{"code":"513230102","name":"中壤塘镇"},{"code":"513230103","name":"岗木达镇"},{"code":"513230200","name":"蒲西乡"},{"code":"513230201","name":"宗科乡"},{"code":"513230202","name":"石里乡"},{"code":"513230203","name":"吾伊乡"},{"code":"513230205","name":"上杜柯乡"},{"code":"513230206","name":"茸木达乡"},{"code":"513230208","name":"尕多乡"},{"code":"513230210","name":"上壤塘乡"}]},{"code":"513231","name":"阿坝县","children":[{"code":"513231100","name":"阿坝镇"},{"code":"513231101","name":"贾洛镇"},{"code":"513231102","name":"麦尔玛镇"},{"code":"513231103","name":"河支镇"},{"code":"513231104","name":"各莫镇"},{"code":"513231105","name":"安羌镇"},{"code":"513231201","name":"麦昆乡"},{"code":"513231203","name":"龙藏乡"},{"code":"513231204","name":"求吉玛乡"},{"code":"513231208","name":"四洼乡"},{"code":"513231209","name":"安斗乡"},{"code":"513231210","name":"柯河乡"},{"code":"513231211","name":"垮沙乡"},{"code":"513231213","name":"查理乡"},{"code":"513231214","name":"茸安乡"}]},{"code":"513232","name":"若尔盖县","children":[{"code":"513232100","name":"达扎寺镇"},{"code":"513232101","name":"唐克镇"},{"code":"513232102","name":"红星镇"},{"code":"513232103","name":"辖曼镇"},{"code":"513232104","name":"巴西镇"},{"code":"513232105","name":"阿西镇"},{"code":"513232106","name":"铁布镇"},{"code":"513232205","name":"麦溪乡"},{"code":"513232206","name":"嫩哇乡"},{"code":"513232210","name":"占哇乡"},{"code":"513232211","name":"降扎乡"},{"code":"513232214","name":"求吉乡"},{"code":"513232215","name":"包座乡"},{"code":"513232400","name":"白河牧场"}]},{"code":"513233","name":"红原县","children":[{"code":"513233100","name":"邛溪镇"},{"code":"513233101","name":"刷经寺镇"},{"code":"513233102","name":"瓦切镇"},{"code":"513233103","name":"安曲镇"},{"code":"513233104","name":"色地镇"},{"code":"513233105","name":"龙日镇"},{"code":"513233202","name":"江茸乡"},{"code":"513233203","name":"查尔玛乡"},{"code":"513233205","name":"阿木乡"},{"code":"513233207","name":"麦洼乡"}]}]},{"code":"5133","name":"甘孜藏族自治州","children":[{"code":"513301","name":"康定市","children":[{"code":"513301001","name":"炉城街道"},{"code":"513301002","name":"榆林街道"},{"code":"513301101","name":"姑咱镇"},{"code":"513301102","name":"新都桥镇"},{"code":"513301103","name":"塔公镇"},{"code":"513301104","name":"沙德镇"},{"code":"513301105","name":"金汤镇"},{"code":"513301106","name":"甲根坝镇"},{"code":"513301107","name":"贡嘎山镇"},{"code":"513301108","name":"鱼通镇"},{"code":"513301201","name":"雅拉乡"},{"code":"513301205","name":"麦崩乡"},{"code":"513301208","name":"捧塔乡"},{"code":"513301211","name":"普沙绒乡"},{"code":"513301212","name":"吉居乡"},{"code":"513301214","name":"呷巴乡"},{"code":"513301218","name":"孔玉乡"}]},{"code":"513322","name":"泸定县","children":[{"code":"513322100","name":"泸桥镇"},{"code":"513322101","name":"冷碛镇"},{"code":"513322102","name":"兴隆镇"},{"code":"513322103","name":"磨西镇"},{"code":"513322104","name":"燕子沟镇"},{"code":"513322105","name":"得妥镇"},{"code":"513322106","name":"烹坝镇"},{"code":"513322107","name":"德威镇"},{"code":"513322200","name":"岚安乡"}]},{"code":"513323","name":"丹巴县","children":[{"code":"513323100","name":"章谷镇"},{"code":"513323101","name":"巴底镇"},{"code":"513323102","name":"革什扎镇"},{"code":"513323103","name":"东谷镇"},{"code":"513323104","name":"墨尔多山镇"},{"code":"513323105","name":"甲居镇"},{"code":"513323106","name":"格宗镇"},{"code":"513323107","name":"半扇门镇"},{"code":"513323108","name":"丹东镇"},{"code":"513323201","name":"巴旺乡"},{"code":"513323209","name":"梭坡乡"},{"code":"513323213","name":"太平桥乡"}]},{"code":"513324","name":"九龙县","children":[{"code":"513324100","name":"呷尔镇"},{"code":"513324101","name":"烟袋镇"},{"code":"513324102","name":"三垭镇"},{"code":"513324103","name":"雪洼龙镇"},{"code":"513324104","name":"湾坝镇"},{"code":"513324105","name":"汤古镇"},{"code":"513324106","name":"乌拉溪镇"},{"code":"513324107","name":"魁多镇"},{"code":"513324108","name":"乃渠镇"},{"code":"513324202","name":"三岩龙乡"},{"code":"513324203","name":"上团乡"},{"code":"513324204","name":"八窝龙乡"},{"code":"513324209","name":"子耳彝族乡"},{"code":"513324212","name":"小金彝族乡"},{"code":"513324213","name":"朵洛彝族乡"},{"code":"513324216","name":"洪坝乡"}]},{"code":"513325","name":"雅江县","children":[{"code":"513325100","name":"河口镇"},{"code":"513325101","name":"呷拉镇"},{"code":"513325102","name":"西俄洛镇"},{"code":"513325103","name":"红龙镇"},{"code":"513325104","name":"麻郎措镇"},{"code":"513325105","name":"波斯河镇"},{"code":"513325201","name":"八角楼乡"},{"code":"513325202","name":"普巴绒乡"},{"code":"513325203","name":"祝桑乡"},{"code":"513325204","name":"米龙乡"},{"code":"513325205","name":"八衣绒乡"},{"code":"513325208","name":"牙衣河乡"},{"code":"513325211","name":"德差乡"},{"code":"513325213","name":"柯拉乡"},{"code":"513325214","name":"瓦多乡"},{"code":"513325215","name":"木绒乡"}]},{"code":"513326","name":"道孚县","children":[{"code":"513326100","name":"鲜水镇"},{"code":"513326101","name":"八美镇"},{"code":"513326102","name":"亚卓镇"},{"code":"513326104","name":"玉科镇"},{"code":"513326105","name":"仲尼镇"},{"code":"513326106","name":"泰宁镇"},{"code":"513326107","name":"瓦日镇"},{"code":"513326201","name":"麻孜乡"},{"code":"513326202","name":"孔色乡"},{"code":"513326203","name":"葛卡乡"},{"code":"513326207","name":"扎拖乡"},{"code":"513326208","name":"下拖乡"},{"code":"513326210","name":"木茹乡"},{"code":"513326211","name":"甲斯孔乡"},{"code":"513326213","name":"七美乡"},{"code":"513326214","name":"银恩乡"},{"code":"513326216","name":"龙灯乡"},{"code":"513326218","name":"色卡乡"},{"code":"513326219","name":"沙冲乡"}]},{"code":"513327","name":"炉霍县","children":[{"code":"513327100","name":"新都镇"},{"code":"513327101","name":"朱倭镇"},{"code":"513327103","name":"虾拉沱镇"},{"code":"513327104","name":"上罗柯马镇"},{"code":"513327200","name":"泥巴乡"},{"code":"513327201","name":"雅德乡"},{"code":"513327202","name":"洛秋乡"},{"code":"513327205","name":"仁达乡"},{"code":"513327207","name":"旦都乡"},{"code":"513327208","name":"充古乡"},{"code":"513327209","name":"更知乡"},{"code":"513327210","name":"卡娘乡"},{"code":"513327211","name":"宗塔乡"},{"code":"513327212","name":"宗麦乡"},{"code":"513327214","name":"下罗柯马乡"}]},{"code":"513328","name":"甘孜县","children":[{"code":"513328100","name":"甘孜镇"},{"code":"513328101","name":"查龙镇"},{"code":"513328102","name":"来马镇"},{"code":"513328200","name":"呷拉乡"},{"code":"513328201","name":"色西底乡"},{"code":"513328202","name":"南多乡"},{"code":"513328203","name":"生康乡"},{"code":"513328204","name":"贡隆乡"},{"code":"513328205","name":"扎科乡"},{"code":"513328207","name":"昔色乡"},{"code":"513328208","name":"卡攻乡"},{"code":"513328209","name":"仁果乡"},{"code":"513328210","name":"拖坝乡"},{"code":"513328212","name":"庭卡乡"},{"code":"513328213","name":"下雄乡"},{"code":"513328214","name":"四通达乡"},{"code":"513328215","name":"夺多乡"},{"code":"513328216","name":"泥柯乡"},{"code":"513328217","name":"茶扎乡"},{"code":"513328218","name":"大德乡"},{"code":"513328219","name":"卡龙乡"}]},{"code":"513329","name":"新龙县","children":[{"code":"513329100","name":"如龙镇"},{"code":"513329101","name":"拉日马镇"},{"code":"513329102","name":"大盖镇"},{"code":"513329103","name":"通宵镇"},{"code":"513329104","name":"色威镇"},{"code":"513329105","name":"尤拉西镇"},{"code":"513329200","name":"沙堆乡"},{"code":"513329203","name":"绕鲁乡"},{"code":"513329207","name":"博美乡"},{"code":"513329209","name":"子拖西乡"},{"code":"513329210","name":"和平乡"},{"code":"513329211","name":"洛古乡"},{"code":"513329212","name":"雄龙西乡"},{"code":"513329213","name":"麻日乡"},{"code":"513329215","name":"友谊乡"},{"code":"513329217","name":"银多乡"}]},{"code":"513330","name":"德格县","children":[{"code":"513330100","name":"更庆镇"},{"code":"513330101","name":"马尼干戈镇"},{"code":"513330102","name":"竹庆镇"},{"code":"513330103","name":"阿须镇"},{"code":"513330105","name":"错阿镇"},{"code":"513330106","name":"麦宿镇"},{"code":"513330107","name":"打滚镇"},{"code":"513330108","name":"龚垭镇"},{"code":"513330109","name":"温拖镇"},{"code":"513330110","name":"中扎科镇"},{"code":"513330202","name":"岳巴乡"},{"code":"513330203","name":"八帮乡"},{"code":"513330205","name":"白垭乡"},{"code":"513330206","name":"汪布顶乡"},{"code":"513330207","name":"柯洛洞乡"},{"code":"513330208","name":"卡松渡乡"},{"code":"513330209","name":"俄南乡"},{"code":"513330211","name":"俄支乡"},{"code":"513330213","name":"玉隆乡"},{"code":"513330216","name":"上燃姑乡"},{"code":"513330219","name":"年古乡"},{"code":"513330220","name":"浪多乡"},{"code":"513330223","name":"亚丁乡"}]},{"code":"513331","name":"白玉县","children":[{"code":"513331100","name":"建设镇"},{"code":"513331101","name":"阿察镇"},{"code":"513331102","name":"河坡镇"},{"code":"513331103","name":"盖玉镇"},{"code":"513331200","name":"金沙乡"},{"code":"513331201","name":"绒盖乡"},{"code":"513331202","name":"章都乡"},{"code":"513331203","name":"麻绒乡"},{"code":"513331205","name":"热加乡"},{"code":"513331206","name":"登龙乡"},{"code":"513331207","name":"赠科乡"},{"code":"513331209","name":"麻邛乡"},{"code":"513331210","name":"辽西乡"},{"code":"513331211","name":"纳塔乡"},{"code":"513331212","name":"安孜乡"},{"code":"513331214","name":"沙马乡"}]},{"code":"513332","name":"石渠县","children":[{"code":"513332100","name":"尼呷镇"},{"code":"513332101","name":"洛须镇"},{"code":"513332102","name":"色须镇"},{"code":"513332103","name":"虾扎镇"},{"code":"513332104","name":"温波镇"},{"code":"513332105","name":"蒙宜镇"},{"code":"513332106","name":"阿日扎镇"},{"code":"513332200","name":"真达乡"},{"code":"513332201","name":"奔达乡"},{"code":"513332202","name":"正科乡"},{"code":"513332204","name":"德荣马乡"},{"code":"513332206","name":"长沙贡马乡"},{"code":"513332207","name":"呷衣乡"},{"code":"513332208","name":"格孟乡"},{"code":"513332210","name":"新荣乡"},{"code":"513332211","name":"宜牛乡"},{"code":"513332213","name":"起坞乡"},{"code":"513332215","name":"长须贡马乡"},{"code":"513332216","name":"长沙干马乡"},{"code":"513332217","name":"长须干马乡"},{"code":"513332219","name":"瓦须乡"}]},{"code":"513333","name":"色达县","children":[{"code":"513333100","name":"色柯镇"},{"code":"513333101","name":"翁达镇"},{"code":"513333102","name":"洛若镇"},{"code":"513333103","name":"泥朵镇"},{"code":"513333104","name":"甲学镇"},{"code":"513333201","name":"克果乡"},{"code":"513333202","name":"然充乡"},{"code":"513333203","name":"康勒乡"},{"code":"513333204","name":"大章乡"},{"code":"513333205","name":"大则乡"},{"code":"513333206","name":"亚龙乡"},{"code":"513333207","name":"塔子乡"},{"code":"513333208","name":"年龙乡"},{"code":"513333210","name":"霍西乡"},{"code":"513333211","name":"旭日乡"},{"code":"513333212","name":"杨各乡"}]},{"code":"513334","name":"理塘县","children":[{"code":"513334100","name":"高城镇"},{"code":"513334101","name":"甲洼镇"},{"code":"513334102","name":"格聂镇"},{"code":"513334103","name":"木拉镇"},{"code":"513334104","name":"君坝镇"},{"code":"513334105","name":"拉波镇"},{"code":"513334106","name":"觉吾镇"},{"code":"513334201","name":"哈依乡"},{"code":"513334203","name":"莫坝乡"},{"code":"513334204","name":"亚火乡"},{"code":"513334205","name":"绒坝乡"},{"code":"513334206","name":"呷洼乡"},{"code":"513334207","name":"奔戈乡"},{"code":"513334208","name":"村戈乡"},{"code":"513334209","name":"禾尼乡"},{"code":"513334210","name":"曲登乡"},{"code":"513334213","name":"上木拉乡"},{"code":"513334216","name":"濯桑乡"},{"code":"513334218","name":"藏坝乡"},{"code":"513334219","name":"格木乡"},{"code":"513334221","name":"麦洼乡"},{"code":"513334222","name":"德巫乡"}]},{"code":"513335","name":"巴塘县","children":[{"code":"513335100","name":"夏邛镇"},{"code":"513335101","name":"中咱镇"},{"code":"513335102","name":"措拉镇"},{"code":"513335103","name":"甲英镇"},{"code":"513335104","name":"地巫镇"},{"code":"513335200","name":"拉哇乡"},{"code":"513335202","name":"竹巴龙乡"},{"code":"513335204","name":"苏哇龙乡"},{"code":"513335205","name":"昌波乡"},{"code":"513335208","name":"亚日贡乡"},{"code":"513335209","name":"波密乡"},{"code":"513335210","name":"莫多乡"},{"code":"513335211","name":"松多乡"},{"code":"513335212","name":"波戈溪乡"},{"code":"513335215","name":"茶洛乡"},{"code":"513335216","name":"列衣乡"},{"code":"513335217","name":"德达乡"}]},{"code":"513336","name":"乡城县","children":[{"code":"513336100","name":"香巴拉镇"},{"code":"513336101","name":"青德镇"},{"code":"513336103","name":"热打镇"},{"code":"513336201","name":"沙贡乡"},{"code":"513336202","name":"水洼乡"},{"code":"513336205","name":"然乌乡"},{"code":"513336206","name":"洞松乡"},{"code":"513336208","name":"定波乡"},{"code":"513336209","name":"正斗乡"},{"code":"513336210","name":"白依乡"}]},{"code":"513337","name":"稻城县","children":[{"code":"513337100","name":"金珠镇"},{"code":"513337101","name":"香格里拉镇"},{"code":"513337102","name":"桑堆镇"},{"code":"513337103","name":"吉呷镇"},{"code":"513337104","name":"噶通镇"},{"code":"513337201","name":"省母乡"},{"code":"513337204","name":"巨龙乡"},{"code":"513337205","name":"邓坡乡"},{"code":"513337206","name":"木拉乡"},{"code":"513337207","name":"赤土乡"},{"code":"513337209","name":"蒙自乡"},{"code":"513337210","name":"各卡乡"},{"code":"513337212","name":"俄牙同乡"}]},{"code":"513338","name":"得荣县","children":[{"code":"513338101","name":"瓦卡镇"},{"code":"513338102","name":"白松镇"},{"code":"513338103","name":"日雨镇"},{"code":"513338104","name":"太阳谷镇"},{"code":"513338201","name":"徐龙乡"},{"code":"513338204","name":"奔都乡"},{"code":"513338205","name":"八日乡"},{"code":"513338206","name":"古学乡"},{"code":"513338208","name":"贡波乡"},{"code":"513338210","name":"茨巫乡"}]}]},{"code":"5134","name":"凉山彝族自治州","children":[{"code":"513401","name":"西昌市","children":[{"code":"513401001","name":"北城街道"},{"code":"513401002","name":"西城街道"},{"code":"513401003","name":"东城街道"},{"code":"513401004","name":"长安街道"},{"code":"513401005","name":"新村街道"},{"code":"513401007","name":"海南街道"},{"code":"513401008","name":"马道街道"},{"code":"513401101","name":"礼州镇"},{"code":"513401102","name":"安宁镇"},{"code":"513401103","name":"川兴镇"},{"code":"513401104","name":"黄联关镇"},{"code":"513401105","name":"佑君镇"},{"code":"513401106","name":"太和镇"},{"code":"513401107","name":"安哈镇"},{"code":"513401108","name":"阿七镇"},{"code":"513401109","name":"樟木箐镇"},{"code":"513401110","name":"琅环镇"},{"code":"513401111","name":"巴汝镇"},{"code":"513401203","name":"四合乡"},{"code":"513401211","name":"开元乡"},{"code":"513401212","name":"大兴乡"},{"code":"513401215","name":"经久乡"},{"code":"513401219","name":"裕隆回族乡"},{"code":"513401220","name":"高草回族乡"},{"code":"513401228","name":"马鞍山乡"}]},{"code":"513402","name":"会理市","children":[{"code":"513402001","name":"城北街道"},{"code":"513402002","name":"城南街道"},{"code":"513402003","name":"古城街道"},{"code":"513402101","name":"鹿厂镇"},{"code":"513402102","name":"黎溪镇"},{"code":"513402103","name":"通安镇"},{"code":"513402104","name":"太平镇"},{"code":"513402105","name":"益门镇"},{"code":"513402106","name":"绿水镇"},{"code":"513402107","name":"云甸镇"},{"code":"513402108","name":"新发镇"},{"code":"513402109","name":"关河镇"},{"code":"513402110","name":"彰冠镇"},{"code":"513402111","name":"木古镇"},{"code":"513402112","name":"六华镇"},{"code":"513402113","name":"小黑箐镇"},{"code":"513402201","name":"内东乡"},{"code":"513402202","name":"树堡乡"},{"code":"513402203","name":"新安傣族乡"},{"code":"513402204","name":"槽元乡"}]},{"code":"513422","name":"木里藏族自治县","children":[{"code":"513422100","name":"乔瓦镇"},{"code":"513422101","name":"瓦厂镇"},{"code":"513422102","name":"茶布朗镇"},{"code":"513422103","name":"雅砻江镇"},{"code":"513422104","name":"水洛镇"},{"code":"513422105","name":"列瓦镇"},{"code":"513422201","name":"博科乡"},{"code":"513422202","name":"宁朗乡"},{"code":"513422203","name":"依吉乡"},{"code":"513422204","name":"俄亚纳西族乡"},{"code":"513422206","name":"牦牛坪乡"},{"code":"513422207","name":"屋脚蒙古族乡"},{"code":"513422208","name":"项脚蒙古族乡"},{"code":"513422209","name":"李子坪乡"},{"code":"513422213","name":"西秋乡"},{"code":"513422214","name":"克尔乡"},{"code":"513422215","name":"白碉苗族乡"},{"code":"513422216","name":"三桷桠乡"},{"code":"513422217","name":"倮波乡"},{"code":"513422218","name":"卡拉乡"},{"code":"513422219","name":"后所乡"},{"code":"513422220","name":"沙湾乡"},{"code":"513422222","name":"固增苗族乡"},{"code":"513422223","name":"麦日乡"},{"code":"513422224","name":"东朗乡"},{"code":"513422225","name":"唐央乡"},{"code":"513422226","name":"博窝乡"}]},{"code":"513423","name":"盐源县","children":[{"code":"513423001","name":"盐井街道"},{"code":"513423101","name":"卫城镇"},{"code":"513423102","name":"梅雨镇"},{"code":"513423103","name":"白乌镇"},{"code":"513423104","name":"树河镇"},{"code":"513423105","name":"黄草镇"},{"code":"513423106","name":"平川镇"},{"code":"513423107","name":"泸沽湖镇"},{"code":"513423108","name":"官地镇"},{"code":"513423109","name":"梅子坪镇"},{"code":"513423110","name":"润盐镇"},{"code":"513423111","name":"长柏镇"},{"code":"513423112","name":"甲米镇"},{"code":"513423113","name":"棉桠镇"},{"code":"513423114","name":"盐塘镇"},{"code":"513423115","name":"金河镇"},{"code":"513423116","name":"龙塘镇"},{"code":"513423117","name":"兴隆镇"},{"code":"513423206","name":"藤桥乡"},{"code":"513423207","name":"田湾乡"},{"code":"513423215","name":"右所乡"},{"code":"513423222","name":"沃底乡"},{"code":"513423223","name":"大坡蒙古族乡"},{"code":"513423224","name":"洼里乡"}]},{"code":"513424","name":"德昌县","children":[{"code":"513424001","name":"德州街道"},{"code":"513424002","name":"昌州街道"},{"code":"513424101","name":"永郎镇"},{"code":"513424102","name":"乐跃镇"},{"code":"513424103","name":"麻栗镇"},{"code":"513424106","name":"茨达镇"},{"code":"513424109","name":"巴洞镇"},{"code":"513424113","name":"黑龙潭镇"},{"code":"513424114","name":"铁炉镇"},{"code":"513424115","name":"热河镇"},{"code":"513424217","name":"南山傈僳族乡"},{"code":"513424218","name":"金沙傈僳族乡"}]},{"code":"513426","name":"会东县","children":[{"code":"513426001","name":"鱼城街道"},{"code":"513426002","name":"金江街道"},{"code":"513426100","name":"鲹鱼河镇"},{"code":"513426101","name":"铅锌镇"},{"code":"513426102","name":"堵格镇"},{"code":"513426103","name":"姜州镇"},{"code":"513426104","name":"乌东德镇"},{"code":"513426105","name":"淌塘镇"},{"code":"513426106","name":"铁柳镇"},{"code":"513426107","name":"嘎吉镇"},{"code":"513426108","name":"满银沟镇"},{"code":"513426109","name":"新街镇"},{"code":"513426110","name":"鲁吉镇"},{"code":"513426111","name":"大崇镇"},{"code":"513426112","name":"松坪镇"},{"code":"513426202","name":"老君滩乡"},{"code":"513426203","name":"江西街乡"},{"code":"513426235","name":"溜姑乡"},{"code":"513426251","name":"野租乡"}]},{"code":"513427","name":"宁南县","children":[{"code":"513427101","name":"松新镇"},{"code":"513427102","name":"竹寿镇"},{"code":"513427103","name":"华弹镇"},{"code":"513427104","name":"白鹤滩镇"},{"code":"513427106","name":"西瑶镇"},{"code":"513427108","name":"大同镇"},{"code":"513427109","name":"骑骡沟镇"},{"code":"513427110","name":"跑马镇"},{"code":"513427111","name":"幸福镇"},{"code":"513427112","name":"石梨镇"},{"code":"513427113","name":"六铁镇"},{"code":"513427116","name":"宁远镇"},{"code":"513427117","name":"俱乐镇"}]},{"code":"513428","name":"普格县","children":[{"code":"513428100","name":"普基镇"},{"code":"513428101","name":"荞窝镇"},{"code":"513428102","name":"螺髻山镇"},{"code":"513428103","name":"五道箐镇"},{"code":"513428104","name":"花山镇"},{"code":"513428105","name":"日都迪萨镇"},{"code":"513428106","name":"西洛镇"},{"code":"513428107","name":"夹铁镇"},{"code":"513428203","name":"黎安乡"},{"code":"513428206","name":"大坪乡"},{"code":"513428213","name":"特兹乡"},{"code":"513428218","name":"瓦洛乡"},{"code":"513428227","name":"大槽乡"}]},{"code":"513429","name":"布拖县","children":[{"code":"513429100","name":"特木里镇"},{"code":"513429101","name":"龙潭镇"},{"code":"513429102","name":"拖觉镇"},{"code":"513429103","name":"九都镇"},{"code":"513429104","name":"乐安镇"},{"code":"513429105","name":"俄里坪镇"},{"code":"513429106","name":"地洛镇"},{"code":"513429107","name":"牛角湾镇"},{"code":"513429206","name":"补尔乡"},{"code":"513429209","name":"拉果乡"},{"code":"513429224","name":"委只洛乡"},{"code":"513429226","name":"基只乡"}]},{"code":"513430","name":"金阳县","children":[{"code":"513430100","name":"天地坝镇"},{"code":"513430101","name":"派来镇"},{"code":"513430102","name":"芦稿镇"},{"code":"513430103","name":"对坪镇"},{"code":"513430104","name":"南瓦镇"},{"code":"513430105","name":"百草坡镇"},{"code":"513430106","name":"洛觉镇"},{"code":"513430107","name":"德溪镇"},{"code":"513430108","name":"丙底镇"},{"code":"513430201","name":"热水河乡"},{"code":"513430206","name":"甲依乡"},{"code":"513430210","name":"基觉乡"},{"code":"513430211","name":"小银木乡"},{"code":"513430214","name":"青松乡"},{"code":"513430217","name":"山江乡"}]},{"code":"513431","name":"昭觉县","children":[{"code":"513431100","name":"新城镇"},{"code":"513431101","name":"城北镇"},{"code":"513431102","name":"竹核镇"},{"code":"513431103","name":"谷曲镇"},{"code":"513431104","name":"比尔镇"},{"code":"513431105","name":"解放沟镇"},{"code":"513431106","name":"三岔河镇"},{"code":"513431107","name":"四开镇"},{"code":"513431108","name":"地莫镇"},{"code":"513431109","name":"古里镇"},{"code":"513431110","name":"俄尔镇"},{"code":"513431205","name":"美甘乡"},{"code":"513431210","name":"博洛乡"},{"code":"513431227","name":"特布洛乡"},{"code":"513431228","name":"庆恒乡"},{"code":"513431231","name":"补约乡"},{"code":"513431234","name":"金曲乡"},{"code":"513431238","name":"则普乡"},{"code":"513431244","name":"日哈乡"},{"code":"513431245","name":"哈甘乡"}]},{"code":"513432","name":"喜德县","children":[{"code":"513432100","name":"光明镇"},{"code":"513432101","name":"冕山镇"},{"code":"513432102","name":"红莫镇"},{"code":"513432103","name":"两河口镇"},{"code":"513432104","name":"米市镇"},{"code":"513432105","name":"洛哈镇"},{"code":"513432106","name":"尼波镇"},{"code":"513432202","name":"贺波洛乡"},{"code":"513432203","name":"鲁基乡"},{"code":"513432204","name":"李子乡"},{"code":"513432205","name":"北山乡"},{"code":"513432208","name":"且拖乡"},{"code":"513432210","name":"沙马拉达乡"}]},{"code":"513433","name":"冕宁县","children":[{"code":"513433001","name":"高阳街道"},{"code":"513433101","name":"漫水湾镇"},{"code":"513433102","name":"大桥镇"},{"code":"513433103","name":"复兴镇"},{"code":"513433104","name":"泸沽镇"},{"code":"513433106","name":"彝海镇"},{"code":"513433107","name":"石龙镇"},{"code":"513433109","name":"河边镇"},{"code":"513433110","name":"锦屏镇"},{"code":"513433112","name":"里庄镇"},{"code":"513433113","name":"惠安镇"},{"code":"513433114","name":"宏模镇"},{"code":"513433115","name":"泽远镇"},{"code":"513433116","name":"若水镇"},{"code":"513433117","name":"棉沙镇"},{"code":"513433118","name":"磨房沟镇"},{"code":"513433226","name":"和爱藏族乡"},{"code":"513433230","name":"新兴乡"},{"code":"513433231","name":"健美乡"}]},{"code":"513434","name":"越西县","children":[{"code":"513434100","name":"越城镇"},{"code":"513434101","name":"中所镇"},{"code":"513434102","name":"新民镇"},{"code":"513434103","name":"乃托镇"},{"code":"513434104","name":"普雄镇"},{"code":"513434105","name":"大瑞镇"},{"code":"513434106","name":"竹阿觉镇"},{"code":"513434107","name":"书古镇"},{"code":"513434108","name":"依洛地坝镇"},{"code":"513434109","name":"南箐镇"},{"code":"513434110","name":"贡莫镇"},{"code":"513434111","name":"梅花镇"},{"code":"513434112","name":"尔觉镇"},{"code":"513434113","name":"拉普镇"},{"code":"513434114","name":"马拖镇"},{"code":"513434115","name":"大花镇"},{"code":"513434116","name":"板桥镇"},{"code":"513434211","name":"保安藏族乡"},{"code":"513434235","name":"拉吉乡"},{"code":"513434236","name":"申果庄乡"}]},{"code":"513435","name":"甘洛县","children":[{"code":"513435100","name":"新市坝镇"},{"code":"513435101","name":"田坝镇"},{"code":"513435102","name":"海棠镇"},{"code":"513435103","name":"吉米镇"},{"code":"513435104","name":"斯觉镇"},{"code":"513435105","name":"普昌镇"},{"code":"513435106","name":"玉田镇"},{"code":"513435107","name":"乌史大桥镇"},{"code":"513435108","name":"苏雄镇"},{"code":"513435202","name":"新茶乡"},{"code":"513435211","name":"团结乡"},{"code":"513435212","name":"嘎日乡"},{"code":"513435219","name":"沙岱乡"}]},{"code":"513436","name":"美姑县","children":[{"code":"513436100","name":"巴普镇"},{"code":"513436101","name":"洪溪镇"},{"code":"513436102","name":"新桥镇"},{"code":"513436103","name":"牛牛坝镇"},{"code":"513436104","name":"拉马镇"},{"code":"513436105","name":"候播乃拖镇"},{"code":"513436106","name":"候古莫镇"},{"code":"513436200","name":"觉洛乡"},{"code":"513436201","name":"井叶特西乡"},{"code":"513436202","name":"合姑洛乡"},{"code":"513436208","name":"典补乡"},{"code":"513436217","name":"九口乡"},{"code":"513436218","name":"洛俄依甘乡"},{"code":"513436221","name":"柳洪乡"},{"code":"513436225","name":"峨曲古乡"},{"code":"513436229","name":"龙门乡"},{"code":"513436231","name":"洒库乡"},{"code":"513436235","name":"瓦候乡"}]},{"code":"513437","name":"雷波县","children":[{"code":"513437100","name":"锦城镇"},{"code":"513437101","name":"西宁镇"},{"code":"513437102","name":"汶水镇"},{"code":"513437103","name":"黄琅镇"},{"code":"513437104","name":"金沙镇"},{"code":"513437105","name":"永盛镇"},{"code":"513437106","name":"渡口镇"},{"code":"513437107","name":"马颈子镇"},{"code":"513437108","name":"上田坝镇"},{"code":"513437109","name":"瓦岗镇"},{"code":"513437110","name":"宝山镇"},{"code":"513437203","name":"箐口乡"},{"code":"513437214","name":"柑子乡"},{"code":"513437217","name":"桂花乡"},{"code":"513437220","name":"山棱岗乡"},{"code":"513437222","name":"谷堆乡"},{"code":"513437224","name":"拉咪乡"},{"code":"513437227","name":"千万贯乡"},{"code":"513437233","name":"莫红乡"},{"code":"513437237","name":"巴姑乡"},{"code":"513437241","name":"卡哈洛乡"}]}]}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市","children":[{"code":"520102","name":"南明区","children":[{"code":"520102016","name":"新华路街道"},{"code":"520102017","name":"西湖路街道"},{"code":"520102018","name":"水口寺街道"},{"code":"520102019","name":"中华南路街道"},{"code":"520102020","name":"河滨街道"},{"code":"520102021","name":"遵义路街道"},{"code":"520102022","name":"兴关路街道"},{"code":"520102023","name":"沙冲路街道"},{"code":"520102024","name":"望城街道"},{"code":"520102025","name":"太慈桥街道"},{"code":"520102026","name":"湘雅街道"},{"code":"520102027","name":"油榨街道"},{"code":"520102028","name":"中曹司街道"},{"code":"520102029","name":"二戈街道"},{"code":"520102030","name":"龙洞堡街道"},{"code":"520102031","name":"花果园街道"},{"code":"520102032","name":"小车河街道"},{"code":"520102033","name":"五里冲街道"},{"code":"520102200","name":"后巢乡"},{"code":"520102201","name":"云关乡"},{"code":"520102202","name":"小碧布依族苗族乡"},{"code":"520102203","name":"永乐乡"}]},{"code":"520103","name":"云岩区","children":[{"code":"520103019","name":"大营路街道"},{"code":"520103020","name":"黔灵东路街道"},{"code":"520103021","name":"文昌阁街道"},{"code":"520103022","name":"盐务街街道"},{"code":"520103023","name":"普陀路街道"},{"code":"520103024","name":"八鸽岩街道"},{"code":"520103025","name":"毓秀路街道"},{"code":"520103026","name":"威清门街道"},{"code":"520103027","name":"市西河街道"},{"code":"520103028","name":"头桥街道"},{"code":"520103029","name":"三桥路街道"},{"code":"520103030","name":"马王街道"},{"code":"520103031","name":"金关街道"},{"code":"520103032","name":"茶园路街道"},{"code":"520103033","name":"杨惠街道"},{"code":"520103034","name":"渔安街道"},{"code":"520103035","name":"水东路街道"},{"code":"520103100","name":"黔灵镇"}]},{"code":"520111","name":"花溪区","children":[{"code":"520111004","name":"贵筑街道"},{"code":"520111005","name":"阳光街道"},{"code":"520111006","name":"清溪街道"},{"code":"520111007","name":"溪北街道"},{"code":"520111008","name":"黄河路街道"},{"code":"520111009","name":"平桥街道"},{"code":"520111010","name":"小孟街道"},{"code":"520111011","name":"金筑街道"},{"code":"520111012","name":"党武街道"},{"code":"520111101","name":"青岩镇"},{"code":"520111102","name":"石板镇"},{"code":"520111104","name":"麦坪镇"},{"code":"520111105","name":"燕楼镇"},{"code":"520111201","name":"孟关苗族布依族乡"},{"code":"520111204","name":"湖潮苗族布依族乡"},{"code":"520111205","name":"久安乡"},{"code":"520111207","name":"高坡苗族乡"},{"code":"520111208","name":"黔陶布依族苗族乡"},{"code":"520111209","name":"马铃布依族苗族乡"},{"code":"520111400","name":"羊艾农场"}]},{"code":"520112","name":"乌当区","children":[{"code":"520112004","name":"观溪路街道"},{"code":"520112005","name":"新光路街道"},{"code":"520112006","name":"新创路街道"},{"code":"520112007","name":"龙广路街道"},{"code":"520112008","name":"高新路街道"},{"code":"520112101","name":"东风镇"},{"code":"520112102","name":"水田镇"},{"code":"520112103","name":"羊昌镇"},{"code":"520112105","name":"下坝镇"},{"code":"520112106","name":"新场镇"},{"code":"520112107","name":"百宜镇"},{"code":"520112203","name":"新堡布依族乡"},{"code":"520112206","name":"偏坡布依族乡"}]},{"code":"520113","name":"白云区","children":[{"code":"520113005","name":"泉湖街道"},{"code":"520113006","name":"大山洞街道"},{"code":"520113007","name":"云城街道"},{"code":"520113008","name":"龚家寨街道"},{"code":"520113009","name":"都拉营街道"},{"code":"520113100","name":"艳山红镇"},{"code":"520113101","name":"麦架镇"},{"code":"520113102","name":"沙文镇"},{"code":"520113200","name":"都拉布依族乡"},{"code":"520113201","name":"牛场布依族乡"}]},{"code":"520115","name":"观山湖区","children":[{"code":"520115001","name":"宾阳街道"},{"code":"520115002","name":"云潭街道"},{"code":"520115003","name":"金华园街道"},{"code":"520115004","name":"长岭街道"},{"code":"520115005","name":"观山街道"},{"code":"520115006","name":"世纪城街道"},{"code":"520115007","name":"金阳街道"},{"code":"520115100","name":"金华镇"},{"code":"520115101","name":"朱昌镇"},{"code":"520115102","name":"百花湖镇"}]},{"code":"520121","name":"开阳县","children":[{"code":"520121001","name":"硒城街道"},{"code":"520121002","name":"云开街道"},{"code":"520121003","name":"紫兴街道"},{"code":"520121101","name":"双流镇"},{"code":"520121102","name":"金中镇"},{"code":"520121103","name":"冯三镇"},{"code":"520121104","name":"楠木渡镇"},{"code":"520121105","name":"龙岗镇"},{"code":"520121106","name":"永温镇"},{"code":"520121107","name":"花梨镇"},{"code":"520121200","name":"南龙乡"},{"code":"520121202","name":"宅吉乡"},{"code":"520121204","name":"龙水乡"},{"code":"520121205","name":"米坪乡"},{"code":"520121206","name":"禾丰布依族苗族乡"},{"code":"520121207","name":"南江布依族苗族乡"},{"code":"520121208","name":"高寨苗族布依族乡"},{"code":"520121209","name":"毛云乡"}]},{"code":"520122","name":"息烽县","children":[{"code":"520122001","name":"永阳街道"},{"code":"520122100","name":"永靖镇"},{"code":"520122101","name":"温泉镇"},{"code":"520122102","name":"九庄镇"},{"code":"520122103","name":"小寨坝镇"},{"code":"520122104","name":"西山镇"},{"code":"520122105","name":"养龙司镇"},{"code":"520122106","name":"石硐镇"},{"code":"520122107","name":"鹿窝镇"},{"code":"520122108","name":"流长镇"},{"code":"520122200","name":"青山苗族乡"}]},{"code":"520123","name":"修文县","children":[{"code":"520123001","name":"龙场街道"},{"code":"520123002","name":"阳明洞街道"},{"code":"520123003","name":"景阳街道"},{"code":"520123004","name":"扎佐街道"},{"code":"520123005","name":"久长街道"},{"code":"520123103","name":"六广镇"},{"code":"520123104","name":"六屯镇"},{"code":"520123105","name":"洒坪镇"},{"code":"520123106","name":"六桶镇"},{"code":"520123107","name":"谷堡镇"},{"code":"520123108","name":"小箐镇"},{"code":"520123204","name":"大石布依族乡"}]},{"code":"520181","name":"清镇市","children":[{"code":"520181002","name":"青龙山街道"},{"code":"520181003","name":"巢凤街道"},{"code":"520181004","name":"滨湖街道"},{"code":"520181100","name":"红枫湖镇"},{"code":"520181101","name":"站街镇"},{"code":"520181102","name":"卫城镇"},{"code":"520181103","name":"新店镇"},{"code":"520181104","name":"暗流镇"},{"code":"520181105","name":"犁倭镇"},{"code":"520181201","name":"麦格苗族布依族乡"},{"code":"520181203","name":"王庄布依族苗族乡"},{"code":"520181204","name":"流长苗族乡"}]}]},{"code":"5202","name":"六盘水市","children":[{"code":"520201","name":"钟山区","children":[{"code":"520201011","name":"黄土坡街道"},{"code":"520201012","name":"红岩街道"},{"code":"520201013","name":"荷泉街道"},{"code":"520201014","name":"荷城街道"},{"code":"520201015","name":"杨柳街道"},{"code":"520201016","name":"凤凰街道"},{"code":"520201017","name":"德坞街道"},{"code":"520201018","name":"月照街道"},{"code":"520201019","name":"双戛街道"},{"code":"520201101","name":"大河镇"},{"code":"520201102","name":"汪家寨镇"},{"code":"520201103","name":"大湾镇"},{"code":"520201104","name":"木果镇"},{"code":"520201105","name":"保华镇"},{"code":"520201202","name":"金盆苗族彝族乡"},{"code":"520201203","name":"南开苗族彝族乡"},{"code":"520201204","name":"青林苗族彝族乡"}]},{"code":"520203","name":"六枝特区","children":[{"code":"520203001","name":"九龙街道"},{"code":"520203002","name":"银壶街道"},{"code":"520203003","name":"塔山街道"},{"code":"520203102","name":"岩脚镇"},{"code":"520203103","name":"木岗镇"},{"code":"520203104","name":"大用镇"},{"code":"520203105","name":"关寨镇"},{"code":"520203106","name":"牂牁镇"},{"code":"520203107","name":"新华镇"},{"code":"520203108","name":"龙河镇"},{"code":"520203109","name":"新窑镇"},{"code":"520203110","name":"郎岱镇"},{"code":"520203203","name":"梭戛苗族彝族回族乡"},{"code":"520203204","name":"牛场苗族彝族乡"},{"code":"520203205","name":"新场乡"},{"code":"520203208","name":"中寨苗族彝族布依族乡"},{"code":"520203213","name":"落别布依族彝族乡"},{"code":"520203214","name":"月亮河彝族布依族苗族乡"}]},{"code":"520204","name":"水城区","children":[{"code":"520204001","name":"尖山街道"},{"code":"520204002","name":"双水街道"},{"code":"520204003","name":"老鹰山街道"},{"code":"520204004","name":"董地街道"},{"code":"520204005","name":"海坪街道"},{"code":"520204006","name":"新桥街道"},{"code":"520204007","name":"以朵街道"},{"code":"520204008","name":"石龙街道"},{"code":"520204009","name":"红桥街道"},{"code":"520204100","name":"蟠龙镇"},{"code":"520204101","name":"发耳镇"},{"code":"520204102","name":"都格镇"},{"code":"520204103","name":"鸡场镇"},{"code":"520204104","name":"勺米镇"},{"code":"520204105","name":"化乐镇"},{"code":"520204106","name":"比德镇"},{"code":"520204107","name":"阿戛镇"},{"code":"520204108","name":"玉舍镇"},{"code":"520204109","name":"陡箐镇"},{"code":"520204110","name":"米箩镇"},{"code":"520204200","name":"坪寨彝族乡"},{"code":"520204201","name":"龙场苗族白族彝族乡"},{"code":"520204202","name":"营盘苗族彝族白族乡"},{"code":"520204203","name":"顺场苗族彝族布依族乡"},{"code":"520204204","name":"花戛苗族布依族彝族乡"},{"code":"520204205","name":"杨梅彝族苗族回族乡"},{"code":"520204206","name":"新街彝族苗族布依族乡"},{"code":"520204207","name":"野钟苗族彝族布依族乡"},{"code":"520204208","name":"果布戛彝族苗族布依族乡"},{"code":"520204209","name":"猴场苗族布依族乡"}]},{"code":"520281","name":"盘州市","children":[{"code":"520281001","name":"亦资街道"},{"code":"520281002","name":"翰林街道"},{"code":"520281003","name":"两河街道"},{"code":"520281004","name":"红果街道"},{"code":"520281005","name":"胜境街道"},{"code":"520281006","name":"刘官街道"},{"code":"520281104","name":"民主镇"},{"code":"520281105","name":"大山镇"},{"code":"520281106","name":"保田镇"},{"code":"520281109","name":"石桥镇"},{"code":"520281111","name":"响水镇"},{"code":"520281117","name":"柏果镇"},{"code":"520281121","name":"新民镇"},{"code":"520281123","name":"盘关镇"},{"code":"520281124","name":"竹海镇"},{"code":"520281125","name":"英武镇"},{"code":"520281126","name":"鸡场坪镇"},{"code":"520281127","name":"双凤镇"},{"code":"520281128","name":"丹霞镇"},{"code":"520281129","name":"乌蒙镇"},{"code":"520281202","name":"普田回族乡"},{"code":"520281208","name":"坪地彝族乡"},{"code":"520281210","name":"淤泥彝族乡"},{"code":"520281211","name":"普古彝族苗族乡"},{"code":"520281212","name":"旧营白族彝族苗族乡"},{"code":"520281213","name":"羊场布依族白族苗族乡"},{"code":"520281214","name":"保基苗族彝族乡"}]}]},{"code":"5203","name":"遵义市","children":[{"code":"520302","name":"红花岗区","children":[{"code":"520302001","name":"老城街道"},{"code":"520302002","name":"万里路街道"},{"code":"520302003","name":"中华路街道"},{"code":"520302004","name":"迎红街道"},{"code":"520302005","name":"延安路街道"},{"code":"520302006","name":"舟水桥街道"},{"code":"520302007","name":"中山路街道"},{"code":"520302008","name":"北京路街道"},{"code":"520302009","name":"长征街道"},{"code":"520302010","name":"礼仪街道"},{"code":"520302011","name":"南关街道"},{"code":"520302012","name":"忠庄街道"},{"code":"520302013","name":"新蒲街道"},{"code":"520302014","name":"新中街道"},{"code":"520302101","name":"巷口镇"},{"code":"520302104","name":"海龙镇"},{"code":"520302105","name":"深溪镇"},{"code":"520302106","name":"金鼎山镇"},{"code":"520302108","name":"新舟镇"},{"code":"520302109","name":"虾子镇"},{"code":"520302110","name":"三渡镇"},{"code":"520302111","name":"永乐镇"},{"code":"520302112","name":"喇叭镇"}]},{"code":"520303","name":"汇川区","children":[{"code":"520303001","name":"上海路街道"},{"code":"520303002","name":"洗马路街道"},{"code":"520303003","name":"大连路街道"},{"code":"520303004","name":"高桥街道"},{"code":"520303005","name":"董公寺街道"},{"code":"520303006","name":"高坪街道"},{"code":"520303102","name":"团泽镇"},{"code":"520303104","name":"板桥镇"},{"code":"520303105","name":"泗渡镇"},{"code":"520303106","name":"沙湾镇"},{"code":"520303107","name":"山盆镇"},{"code":"520303108","name":"芝麻镇"},{"code":"520303109","name":"松林镇"},{"code":"520303110","name":"毛石镇"}]},{"code":"520304","name":"播州区","children":[{"code":"520304001","name":"南白街道"},{"code":"520304002","name":"播南街道"},{"code":"520304003","name":"影山湖街道"},{"code":"520304004","name":"桂花桥街道"},{"code":"520304005","name":"龙坑街道"},{"code":"520304102","name":"三岔镇"},{"code":"520304103","name":"苟江镇"},{"code":"520304104","name":"三合镇"},{"code":"520304105","name":"乌江镇"},{"code":"520304106","name":"龙坪镇"},{"code":"520304107","name":"团溪镇"},{"code":"520304108","name":"铁厂镇"},{"code":"520304109","name":"西坪镇"},{"code":"520304110","name":"尚嵇镇"},{"code":"520304111","name":"茅栗镇"},{"code":"520304112","name":"新民镇"},{"code":"520304113","name":"鸭溪镇"},{"code":"520304114","name":"石板镇"},{"code":"520304115","name":"乐山镇"},{"code":"520304116","name":"枫香镇"},{"code":"520304117","name":"泮水镇"},{"code":"520304118","name":"马蹄镇"},{"code":"520304200","name":"平正仡佬族乡"},{"code":"520304201","name":"洪关苗族乡"}]},{"code":"520322","name":"桐梓县","children":[{"code":"520322001","name":"海校街道"},{"code":"520322002","name":"娄山关街道"},{"code":"520322101","name":"楚米镇"},{"code":"520322102","name":"新站镇"},{"code":"520322103","name":"松坎镇"},{"code":"520322104","name":"高桥镇"},{"code":"520322105","name":"水坝塘镇"},{"code":"520322106","name":"官仓镇"},{"code":"520322107","name":"花秋镇"},{"code":"520322108","name":"羊磴镇"},{"code":"520322109","name":"九坝镇"},{"code":"520322110","name":"大河镇"},{"code":"520322111","name":"夜郎镇"},{"code":"520322112","name":"木瓜镇"},{"code":"520322113","name":"坡渡镇"},{"code":"520322114","name":"燎原镇"},{"code":"520322115","name":"狮溪镇"},{"code":"520322116","name":"茅石镇"},{"code":"520322117","name":"尧龙山镇"},{"code":"520322118","name":"风水镇"},{"code":"520322119","name":"容光镇"},{"code":"520322120","name":"芭蕉镇"},{"code":"520322203","name":"小水乡"},{"code":"520322205","name":"黄莲乡"},{"code":"520322207","name":"马鬃苗族乡"}]},{"code":"520323","name":"绥阳县","children":[{"code":"520323001","name":"洋川街道"},{"code":"520323101","name":"郑场镇"},{"code":"520323102","name":"旺草镇"},{"code":"520323103","name":"蒲场镇"},{"code":"520323104","name":"风华镇"},{"code":"520323105","name":"茅垭镇"},{"code":"520323106","name":"枧坝镇"},{"code":"520323107","name":"宽阔镇"},{"code":"520323108","name":"黄杨镇"},{"code":"520323109","name":"青杠塘镇"},{"code":"520323110","name":"太白镇"},{"code":"520323111","name":"温泉镇"},{"code":"520323112","name":"坪乐镇"},{"code":"520323200","name":"大路槽乡"},{"code":"520323201","name":"小关乡"}]},{"code":"520324","name":"正安县","children":[{"code":"520324001","name":"凤仪街道"},{"code":"520324002","name":"瑞濠街道"},{"code":"520324101","name":"瑞溪镇"},{"code":"520324102","name":"和溪镇"},{"code":"520324103","name":"安场镇"},{"code":"520324104","name":"土坪镇"},{"code":"520324105","name":"流渡镇"},{"code":"520324106","name":"格林镇"},{"code":"520324107","name":"新州镇"},{"code":"520324108","name":"庙塘镇"},{"code":"520324109","name":"小雅镇"},{"code":"520324110","name":"中观镇"},{"code":"520324111","name":"芙蓉江镇"},{"code":"520324112","name":"班竹镇"},{"code":"520324113","name":"碧峰镇"},{"code":"520324114","name":"乐俭镇"},{"code":"520324115","name":"杨兴镇"},{"code":"520324116","name":"桴焉镇"},{"code":"520324202","name":"谢坝仡佬族苗族乡"},{"code":"520324203","name":"市坪苗族仡佬族乡"}]},{"code":"520325","name":"道真仡佬族苗族自治县","children":[{"code":"520325001","name":"道真仡佬族苗族自治县尹珍街道"},{"code":"520325100","name":"玉溪镇"},{"code":"520325101","name":"三江镇"},{"code":"520325102","name":"隆兴镇"},{"code":"520325103","name":"旧城镇"},{"code":"520325104","name":"忠信镇"},{"code":"520325105","name":"洛龙镇"},{"code":"520325106","name":"阳溪镇"},{"code":"520325107","name":"三桥镇"},{"code":"520325108","name":"大磏镇"},{"code":"520325109","name":"平模镇"},{"code":"520325110","name":"河口镇"},{"code":"520325200","name":"上坝土家族乡"},{"code":"520325201","name":"棕坪乡"},{"code":"520325202","name":"桃源乡"}]},{"code":"520326","name":"务川仡佬族苗族自治县","children":[{"code":"520326001","name":"丹砂街道"},{"code":"520326002","name":"都濡街道"},{"code":"520326003","name":"大坪街道"},{"code":"520326101","name":"丰乐镇"},{"code":"520326102","name":"黄都镇"},{"code":"520326103","name":"涪洋镇"},{"code":"520326104","name":"镇南镇"},{"code":"520326105","name":"砚山镇"},{"code":"520326106","name":"浞水镇"},{"code":"520326107","name":"茅天镇"},{"code":"520326108","name":"柏村镇"},{"code":"520326110","name":"泥高镇"},{"code":"520326111","name":"分水镇"},{"code":"520326112","name":"蕉坝镇"},{"code":"520326203","name":"红丝乡"},{"code":"520326204","name":"石朝乡"}]},{"code":"520327","name":"凤冈县","children":[{"code":"520327001","name":"龙泉街道"},{"code":"520327002","name":"何坝街道"},{"code":"520327003","name":"花坪街道"},{"code":"520327004","name":"凤岭街道"},{"code":"520327101","name":"进化镇"},{"code":"520327102","name":"琊川镇"},{"code":"520327103","name":"蜂岩镇"},{"code":"520327104","name":"永和镇"},{"code":"520327106","name":"绥阳镇"},{"code":"520327107","name":"土溪镇"},{"code":"520327108","name":"永安镇"},{"code":"520327110","name":"天桥镇"},{"code":"520327111","name":"王寨镇"},{"code":"520327112","name":"新建镇"}]},{"code":"520328","name":"湄潭县","children":[{"code":"520328004","name":"湄江街道"},{"code":"520328005","name":"黄家坝街道"},{"code":"520328006","name":"鱼泉街道"},{"code":"520328101","name":"永兴镇"},{"code":"520328102","name":"复兴镇"},{"code":"520328103","name":"马山镇"},{"code":"520328106","name":"高台镇"},{"code":"520328107","name":"茅坪镇"},{"code":"520328108","name":"兴隆镇"},{"code":"520328109","name":"新南镇"},{"code":"520328110","name":"石莲镇"},{"code":"520328111","name":"西河镇"},{"code":"520328112","name":"洗马镇"},{"code":"520328113","name":"抄乐镇"},{"code":"520328114","name":"天城镇"}]},{"code":"520329","name":"余庆县","children":[{"code":"520329001","name":"子营街道"},{"code":"520329102","name":"龙溪镇"},{"code":"520329103","name":"构皮滩镇"},{"code":"520329104","name":"大乌江镇"},{"code":"520329105","name":"敖溪镇"},{"code":"520329106","name":"龙家镇"},{"code":"520329107","name":"松烟镇"},{"code":"520329108","name":"关兴镇"},{"code":"520329109","name":"白泥镇"},{"code":"520329200","name":"花山苗族乡"}]},{"code":"520330","name":"习水县","children":[{"code":"520330001","name":"东皇街道"},{"code":"520330002","name":"九龙街道"},{"code":"520330003","name":"杉王街道"},{"code":"520330004","name":"马临街道"},{"code":"520330101","name":"土城镇"},{"code":"520330102","name":"同民镇"},{"code":"520330103","name":"醒民镇"},{"code":"520330104","name":"隆兴镇"},{"code":"520330105","name":"习酒镇"},{"code":"520330106","name":"回龙镇"},{"code":"520330107","name":"桑木镇"},{"code":"520330108","name":"永安镇"},{"code":"520330109","name":"良村镇"},{"code":"520330110","name":"温水镇"},{"code":"520330111","name":"仙源镇"},{"code":"520330112","name":"官店镇"},{"code":"520330113","name":"寨坝镇"},{"code":"520330114","name":"民化镇"},{"code":"520330115","name":"二郎镇"},{"code":"520330116","name":"二里镇"},{"code":"520330117","name":"三岔河镇"},{"code":"520330118","name":"大坡镇"},{"code":"520330119","name":"桃林镇"},{"code":"520330120","name":"程寨镇"},{"code":"520330205","name":"双龙乡"},{"code":"520330207","name":"坭坝乡"}]},{"code":"520381","name":"赤水市","children":[{"code":"520381001","name":"市中街道"},{"code":"520381002","name":"文华街道"},{"code":"520381003","name":"金华街道"},{"code":"520381100","name":"天台镇"},{"code":"520381101","name":"复兴镇"},{"code":"520381102","name":"大同镇"},{"code":"520381103","name":"旺隆镇"},{"code":"520381104","name":"葫市镇"},{"code":"520381105","name":"元厚镇"},{"code":"520381106","name":"官渡镇"},{"code":"520381107","name":"长期镇"},{"code":"520381108","name":"长沙镇"},{"code":"520381109","name":"两河口镇"},{"code":"520381110","name":"丙安镇"},{"code":"520381202","name":"宝源乡"},{"code":"520381203","name":"石堡乡"},{"code":"520381204","name":"白云乡"}]},{"code":"520382","name":"仁怀市","children":[{"code":"520382001","name":"盐津街道"},{"code":"520382002","name":"中枢街道"},{"code":"520382003","name":"苍龙街道"},{"code":"520382004","name":"坛厂街道"},{"code":"520382005","name":"鲁班街道"},{"code":"520382102","name":"长岗镇"},{"code":"520382104","name":"五马镇"},{"code":"520382105","name":"茅坝镇"},{"code":"520382106","name":"九仓镇"},{"code":"520382107","name":"喜头镇"},{"code":"520382108","name":"大坝镇"},{"code":"520382109","name":"三合镇"},{"code":"520382110","name":"合马镇"},{"code":"520382112","name":"火石镇"},{"code":"520382113","name":"学孔镇"},{"code":"520382114","name":"龙井镇"},{"code":"520382115","name":"美酒河镇"},{"code":"520382116","name":"高大坪镇"},{"code":"520382117","name":"茅台镇"},{"code":"520382201","name":"后山苗族布依族乡"}]}]},{"code":"5204","name":"安顺市","children":[{"code":"520402","name":"西秀区","children":[{"code":"520402001","name":"南街街道"},{"code":"520402002","name":"东街街道"},{"code":"520402003","name":"西街街道"},{"code":"520402004","name":"北街街道"},{"code":"520402005","name":"东关街道"},{"code":"520402006","name":"华西街道"},{"code":"520402007","name":"西航街道"},{"code":"520402008","name":"新安街道"},{"code":"520402100","name":"宋旗镇"},{"code":"520402101","name":"幺铺镇"},{"code":"520402102","name":"宁谷镇"},{"code":"520402103","name":"龙宫镇"},{"code":"520402104","name":"双堡镇"},{"code":"520402105","name":"大西桥镇"},{"code":"520402106","name":"七眼桥镇"},{"code":"520402107","name":"蔡官镇"},{"code":"520402108","name":"轿子山镇"},{"code":"520402109","name":"旧州镇"},{"code":"520402200","name":"新场布依族苗族乡"},{"code":"520402201","name":"岩腊苗族布依族乡"},{"code":"520402202","name":"鸡场布依族苗族乡"},{"code":"520402203","name":"杨武布依族苗族乡"},{"code":"520402204","name":"东屯乡"},{"code":"520402205","name":"黄腊布依族苗族乡"},{"code":"520402206","name":"刘官乡"}]},{"code":"520403","name":"平坝区","children":[{"code":"520403001","name":"安平街道"},{"code":"520403002","name":"鼓楼街道"},{"code":"520403101","name":"白云镇"},{"code":"520403102","name":"高峰镇"},{"code":"520403103","name":"天龙镇"},{"code":"520403104","name":"夏云镇"},{"code":"520403105","name":"马场镇"},{"code":"520403106","name":"乐平镇"},{"code":"520403107","name":"齐伯镇"},{"code":"520403202","name":"十字回族苗族乡"},{"code":"520403203","name":"羊昌布依族苗族乡"}]},{"code":"520422","name":"普定县","children":[{"code":"520422001","name":"定南街道"},{"code":"520422002","name":"穿洞街道"},{"code":"520422003","name":"黄桶街道"},{"code":"520422004","name":"玉秀街道"},{"code":"520422101","name":"马官镇"},{"code":"520422102","name":"化处镇"},{"code":"520422103","name":"马场镇"},{"code":"520422104","name":"白岩镇"},{"code":"520422105","name":"坪上镇"},{"code":"520422106","name":"鸡场坡镇"},{"code":"520422203","name":"补郎苗族乡"},{"code":"520422204","name":"猴场苗族仡佬族乡"},{"code":"520422205","name":"猫洞苗族仡佬族乡"}]},{"code":"520423","name":"镇宁布依族苗族自治县","children":[{"code":"520423001","name":"白马湖街道"},{"code":"520423002","name":"环翠街道"},{"code":"520423003","name":"丁旗街道"},{"code":"520423004","name":"双龙山街道"},{"code":"520423005","name":"宁西街道"},{"code":"520423102","name":"黄果树镇"},{"code":"520423105","name":"马厂镇"},{"code":"520423107","name":"良田镇"},{"code":"520423108","name":"扁担山镇"},{"code":"520423109","name":"募役镇"},{"code":"520423110","name":"江龙镇"},{"code":"520423111","name":"本寨镇"},{"code":"520423112","name":"六马镇"},{"code":"520423204","name":"沙子乡"},{"code":"520423206","name":"革利乡"},{"code":"520423210","name":"简嘎乡"}]},{"code":"520424","name":"关岭布依族苗族自治县","children":[{"code":"520424002","name":"顶云街道"},{"code":"520424003","name":"关索街道"},{"code":"520424004","name":"龙潭街道"},{"code":"520424007","name":"百合街道"},{"code":"520424102","name":"永宁镇"},{"code":"520424103","name":"岗乌镇"},{"code":"520424104","name":"上关镇"},{"code":"520424105","name":"坡贡镇"},{"code":"520424107","name":"白水镇"},{"code":"520424108","name":"新铺镇"},{"code":"520424109","name":"沙营镇"},{"code":"520424110","name":"花江镇"},{"code":"520424111","name":"断桥镇"},{"code":"520424202","name":"普利乡"}]},{"code":"520425","name":"紫云苗族布依族自治县","children":[{"code":"520425001","name":"松山街道"},{"code":"520425002","name":"五峰街道"},{"code":"520425003","name":"云岭街道"},{"code":"520425101","name":"格凸河镇"},{"code":"520425102","name":"猴场镇"},{"code":"520425103","name":"猫营镇"},{"code":"520425104","name":"板当镇"},{"code":"520425105","name":"宗地镇"},{"code":"520425106","name":"大营镇"},{"code":"520425107","name":"坝羊镇"},{"code":"520425108","name":"火花镇"},{"code":"520425200","name":"白石岩乡"},{"code":"520425203","name":"四大寨乡"}]}]},{"code":"5205","name":"毕节市","children":[{"code":"520502","name":"七星关区","children":[{"code":"520502001","name":"市西街道"},{"code":"520502002","name":"市东街道"},{"code":"520502003","name":"三板桥街道"},{"code":"520502005","name":"大新桥街道"},{"code":"520502006","name":"观音桥街道"},{"code":"520502007","name":"洪山街道"},{"code":"520502008","name":"麻园街道"},{"code":"520502009","name":"碧阳街道"},{"code":"520502010","name":"德溪街道"},{"code":"520502011","name":"碧海街道"},{"code":"520502012","name":"青龙街道"},{"code":"520502013","name":"柏杨林街道"},{"code":"520502014","name":"甘河街道"},{"code":"520502100","name":"鸭池镇"},{"code":"520502101","name":"梨树镇"},{"code":"520502102","name":"岔河镇"},{"code":"520502103","name":"朱昌镇"},{"code":"520502104","name":"田坝镇"},{"code":"520502105","name":"长春堡镇"},{"code":"520502106","name":"撒拉溪镇"},{"code":"520502107","name":"杨家湾镇"},{"code":"520502108","name":"放珠镇"},{"code":"520502109","name":"青场镇"},{"code":"520502110","name":"水箐镇"},{"code":"520502111","name":"何官屯镇"},{"code":"520502112","name":"对坡镇"},{"code":"520502113","name":"大银镇"},{"code":"520502114","name":"林口镇"},{"code":"520502115","name":"生机镇"},{"code":"520502116","name":"清水铺镇"},{"code":"520502117","name":"亮岩镇"},{"code":"520502118","name":"燕子口镇"},{"code":"520502119","name":"八寨镇"},{"code":"520502120","name":"田坝桥镇"},{"code":"520502121","name":"海子街镇"},{"code":"520502122","name":"小坝镇"},{"code":"520502123","name":"层台镇"},{"code":"520502124","name":"小吉场镇"},{"code":"520502125","name":"普宜镇"},{"code":"520502126","name":"龙场营镇"},{"code":"520502200","name":"千溪彝族苗族白族乡"},{"code":"520502201","name":"阴底彝族苗族白族乡"},{"code":"520502202","name":"野角乡"},{"code":"520502203","name":"大河乡"},{"code":"520502204","name":"团结彝族苗族乡"},{"code":"520502205","name":"阿市苗族彝族乡"},{"code":"520502206","name":"大屯彝族乡"},{"code":"520502207","name":"田坎彝族乡"}]},{"code":"520521","name":"大方县","children":[{"code":"520521001","name":"红旗街道"},{"code":"520521002","name":"顺德街道"},{"code":"520521003","name":"慕俄格古城街道"},{"code":"520521004","name":"九驿街道"},{"code":"520521005","name":"归化街道"},{"code":"520521006","name":"鹏程街道"},{"code":"520521101","name":"双山镇"},{"code":"520521102","name":"猫场镇"},{"code":"520521103","name":"马场镇"},{"code":"520521104","name":"羊场镇"},{"code":"520521105","name":"黄泥塘镇"},{"code":"520521106","name":"六龙镇"},{"code":"520521107","name":"达溪镇"},{"code":"520521108","name":"瓢井镇"},{"code":"520521109","name":"长石镇"},{"code":"520521110","name":"对江镇"},{"code":"520521200","name":"东关乡"},{"code":"520521201","name":"竹园彝族苗族乡"},{"code":"520521202","name":"响水白族彝族仡佬族乡"},{"code":"520521203","name":"文阁乡"},{"code":"520521204","name":"绿塘乡"},{"code":"520521205","name":"鼎新彝族苗族乡"},{"code":"520521206","name":"牛场苗族彝族乡"},{"code":"520521208","name":"小屯乡"},{"code":"520521209","name":"理化苗族彝族乡"},{"code":"520521211","name":"凤山彝族蒙古族乡"},{"code":"520521212","name":"安乐彝族仡佬族乡"},{"code":"520521213","name":"核桃彝族白族乡"},{"code":"520521214","name":"八堡彝族苗族乡"},{"code":"520521215","name":"兴隆苗族乡"},{"code":"520521216","name":"果瓦乡"},{"code":"520521217","name":"大山苗族彝族乡"},{"code":"520521218","name":"雨冲乡"},{"code":"520521219","name":"黄泥彝族苗族满族乡"},{"code":"520521220","name":"大水彝族苗族布依族乡"},{"code":"520521221","name":"沙厂彝族乡"},{"code":"520521222","name":"普底彝族苗族白族乡"},{"code":"520521223","name":"百纳彝族乡"},{"code":"520521224","name":"三元彝族苗族白族乡"},{"code":"520521225","name":"星宿苗族彝族仡佬族乡"}]},{"code":"520523","name":"金沙县","children":[{"code":"520523001","name":"西洛街道"},{"code":"520523002","name":"岩孔街道"},{"code":"520523003","name":"五龙街道"},{"code":"520523004","name":"鼓场街道"},{"code":"520523005","name":"民兴街道"},{"code":"520523101","name":"安底镇"},{"code":"520523102","name":"沙土镇"},{"code":"520523104","name":"禹谟镇"},{"code":"520523105","name":"岚头镇"},{"code":"520523106","name":"清池镇"},{"code":"520523107","name":"柳塘镇"},{"code":"520523108","name":"平坝镇"},{"code":"520523109","name":"源村镇"},{"code":"520523110","name":"高坪镇"},{"code":"520523111","name":"化觉镇"},{"code":"520523112","name":"茶园镇"},{"code":"520523113","name":"木孔镇"},{"code":"520523114","name":"长坝镇"},{"code":"520523115","name":"后山镇"},{"code":"520523202","name":"石场苗族彝族乡"},{"code":"520523203","name":"桂花乡"},{"code":"520523204","name":"太平彝族苗族乡"},{"code":"520523215","name":"安洛苗族彝族满族乡"},{"code":"520523216","name":"新化苗族彝族满族乡"},{"code":"520523217","name":"大田彝族苗族布依族乡"},{"code":"520523218","name":"马路彝族苗族乡"}]},{"code":"520524","name":"织金县","children":[{"code":"520524001","name":"双堰街道"},{"code":"520524002","name":"文腾街道"},{"code":"520524003","name":"金凤街道"},{"code":"520524004","name":"三甲街道"},{"code":"520524005","name":"绮陌街道"},{"code":"520524006","name":"八步街道"},{"code":"520524007","name":"惠民街道"},{"code":"520524101","name":"桂果镇"},{"code":"520524102","name":"牛场镇"},{"code":"520524103","name":"猫场镇"},{"code":"520524104","name":"化起镇"},{"code":"520524105","name":"龙场镇"},{"code":"520524107","name":"以那镇"},{"code":"520524108","name":"三塘镇"},{"code":"520524109","name":"阿弓镇"},{"code":"520524110","name":"珠藏镇"},{"code":"520524111","name":"中寨镇"},{"code":"520524112","name":"马场镇"},{"code":"520524113","name":"板桥镇"},{"code":"520524114","name":"白泥镇"},{"code":"520524115","name":"少普镇"},{"code":"520524116","name":"熊家场镇"},{"code":"520524117","name":"黑土镇"},{"code":"520524201","name":"自强苗族乡"},{"code":"520524202","name":"大平苗族彝族乡"},{"code":"520524203","name":"官寨苗族乡"},{"code":"520524204","name":"茶店布依族苗族彝族乡"},{"code":"520524205","name":"金龙苗族彝族布依族乡"},{"code":"520524206","name":"后寨苗族乡"},{"code":"520524207","name":"鸡场苗族彝族乡"},{"code":"520524211","name":"实兴乡"},{"code":"520524213","name":"上坪寨乡"},{"code":"520524215","name":"纳雍乡"}]},{"code":"520525","name":"纳雍县","children":[{"code":"520525001","name":"雍熙街道"},{"code":"520525002","name":"文昌街道"},{"code":"520525003","name":"居仁街道"},{"code":"520525004","name":"宣慰街道"},{"code":"520525005","name":"利园街道"},{"code":"520525006","name":"珙桐街道"},{"code":"520525101","name":"中岭镇"},{"code":"520525102","name":"阳长镇"},{"code":"520525103","name":"维新镇"},{"code":"520525104","name":"龙场镇"},{"code":"520525105","name":"乐治镇"},{"code":"520525107","name":"百兴镇"},{"code":"520525108","name":"张家湾镇"},{"code":"520525114","name":"勺窝镇"},{"code":"520525115","name":"寨乐镇"},{"code":"520525116","name":"玉龙坝镇"},{"code":"520525117","name":"沙包镇"},{"code":"520525118","name":"水东镇"},{"code":"520525119","name":"曙光镇"},{"code":"520525201","name":"新房彝族苗族乡"},{"code":"520525202","name":"厍东关彝族白族苗族乡"},{"code":"520525203","name":"董地苗族彝族乡"},{"code":"520525205","name":"化作苗族彝族乡"},{"code":"520525210","name":"姑开苗族彝族乡"},{"code":"520525211","name":"羊场苗族彝族乡"},{"code":"520525212","name":"锅圈岩苗族彝族乡"},{"code":"520525213","name":"昆寨苗族彝族白族乡"},{"code":"520525214","name":"左鸠戛彝族苗族乡"},{"code":"520525215","name":"猪场苗族彝族乡"}]},{"code":"520526","name":"威宁彝族回族苗族自治县","children":[{"code":"520526001","name":"海边街道"},{"code":"520526002","name":"五里岗街道"},{"code":"520526003","name":"六桥街道"},{"code":"520526004","name":"陕桥街道"},{"code":"520526005","name":"开华街道"},{"code":"520526006","name":"雄山街道"},{"code":"520526100","name":"草海镇"},{"code":"520526101","name":"么站镇"},{"code":"520526102","name":"金钟镇"},{"code":"520526103","name":"炉山镇"},{"code":"520526104","name":"龙场镇"},{"code":"520526105","name":"黑石头镇"},{"code":"520526106","name":"哲觉镇"},{"code":"520526107","name":"观风海镇"},{"code":"520526108","name":"牛棚镇"},{"code":"520526109","name":"迤那镇"},{"code":"520526110","name":"中水镇"},{"code":"520526111","name":"龙街镇"},{"code":"520526112","name":"雪山镇"},{"code":"520526113","name":"羊街镇"},{"code":"520526114","name":"小海镇"},{"code":"520526115","name":"盐仓镇"},{"code":"520526116","name":"东风镇"},{"code":"520526117","name":"二塘镇"},{"code":"520526118","name":"猴场镇"},{"code":"520526119","name":"秀水镇"},{"code":"520526120","name":"双龙镇"},{"code":"520526121","name":"麻乍镇"},{"code":"520526122","name":"兔街镇"},{"code":"520526123","name":"海拉镇"},{"code":"520526124","name":"玉龙镇"},{"code":"520526125","name":"哈喇河镇"},{"code":"520526126","name":"斗古镇"},{"code":"520526127","name":"金斗镇"},{"code":"520526128","name":"岔河镇"},{"code":"520526129","name":"黑土河镇"},{"code":"520526201","name":"新发布依族乡"},{"code":"520526210","name":"石门乡"},{"code":"520526211","name":"云贵乡"},{"code":"520526214","name":"板底乡"},{"code":"520526215","name":"大街乡"}]},{"code":"520527","name":"赫章县","children":[{"code":"520527001","name":"双河街道"},{"code":"520527002","name":"白果街道"},{"code":"520527003","name":"汉阳街道"},{"code":"520527004","name":"金银山街道"},{"code":"520527005","name":"七家湾街道"},{"code":"520527102","name":"妈姑镇"},{"code":"520527103","name":"财神镇"},{"code":"520527104","name":"六曲河镇"},{"code":"520527105","name":"野马川镇"},{"code":"520527106","name":"罗州镇"},{"code":"520527107","name":"平山镇"},{"code":"520527108","name":"哲庄镇"},{"code":"520527109","name":"古基镇"},{"code":"520527110","name":"朱明镇"},{"code":"520527111","name":"德卓镇"},{"code":"520527200","name":"达依乡"},{"code":"520527201","name":"水塘堡彝族苗族乡"},{"code":"520527202","name":"兴发苗族彝族回族乡"},{"code":"520527203","name":"松林坡白族彝族苗族乡"},{"code":"520527204","name":"雉街彝族苗族乡"},{"code":"520527205","name":"珠市彝族乡"},{"code":"520527207","name":"双坪彝族苗族乡"},{"code":"520527208","name":"铁匠苗族乡"},{"code":"520527209","name":"辅处彝族苗族乡"},{"code":"520527210","name":"可乐彝族苗族乡"},{"code":"520527211","name":"河镇彝族苗族乡"},{"code":"520527213","name":"安乐溪乡"},{"code":"520527215","name":"结构彝族苗族乡"},{"code":"520527219","name":"古达苗族彝族乡"},{"code":"520527220","name":"威奢乡"}]},{"code":"520581","name":"黔西市","children":[{"code":"520581001","name":"水西街道"},{"code":"520581002","name":"莲城街道"},{"code":"520581003","name":"文峰街道"},{"code":"520581004","name":"杜鹃街道"},{"code":"520581005","name":"锦绣街道"},{"code":"520581100","name":"金碧镇"},{"code":"520581101","name":"雨朵镇"},{"code":"520581102","name":"大关镇"},{"code":"520581103","name":"谷里镇"},{"code":"520581104","name":"素朴镇"},{"code":"520581105","name":"中坪镇"},{"code":"520581106","name":"重新镇"},{"code":"520581107","name":"林泉镇"},{"code":"520581108","name":"金兰镇"},{"code":"520581109","name":"锦星镇"},{"code":"520581110","name":"洪水镇"},{"code":"520581111","name":"甘棠镇"},{"code":"520581112","name":"钟山镇"},{"code":"520581113","name":"协和镇"},{"code":"520581114","name":"观音洞镇"},{"code":"520581200","name":"五里布依族苗族乡"},{"code":"520581201","name":"绿化白族彝族乡"},{"code":"520581202","name":"新仁苗族乡"},{"code":"520581203","name":"铁石苗族彝族乡"},{"code":"520581204","name":"太来彝族苗族乡"},{"code":"520581205","name":"永燊彝族苗族乡"},{"code":"520581206","name":"中建苗族彝族乡"},{"code":"520581207","name":"花溪彝族苗族乡"},{"code":"520581208","name":"定新彝族苗族乡"},{"code":"520581209","name":"金坡苗族彝族满族乡"},{"code":"520581210","name":"仁和彝族苗族乡"},{"code":"520581211","name":"红林彝族苗族乡"}]}]},{"code":"5206","name":"铜仁市","children":[{"code":"520602","name":"碧江区","children":[{"code":"520602002","name":"环北街道"},{"code":"520602003","name":"河西街道"},{"code":"520602005","name":"灯塔街道"},{"code":"520602006","name":"川硐街道"},{"code":"520602007","name":"锦江街道"},{"code":"520602008","name":"铜兴街道"},{"code":"520602009","name":"正光街道"},{"code":"520602101","name":"坝黄镇"},{"code":"520602102","name":"云场坪镇"},{"code":"520602103","name":"漾头镇"},{"code":"520602200","name":"桐木坪侗族乡"},{"code":"520602201","name":"滑石侗族苗族土家族乡"},{"code":"520602202","name":"和平土家族侗族乡"},{"code":"520602203","name":"瓦屋侗族乡"},{"code":"520602204","name":"六龙山侗族土家族乡"}]},{"code":"520603","name":"万山区","children":[{"code":"520603001","name":"谢桥街道"},{"code":"520603002","name":"茶店街道"},{"code":"520603003","name":"仁山街道"},{"code":"520603004","name":"丹都街道"},{"code":"520603100","name":"万山镇"},{"code":"520603200","name":"高楼坪侗族乡"},{"code":"520603201","name":"黄道侗族乡"},{"code":"520603202","name":"敖寨侗族乡"},{"code":"520603203","name":"下溪侗族乡"},{"code":"520603204","name":"鱼塘侗族苗族乡"},{"code":"520603205","name":"大坪侗族土家族苗族乡"}]},{"code":"520621","name":"江口县","children":[{"code":"520621001","name":"双江街道"},{"code":"520621002","name":"凯德街道"},{"code":"520621101","name":"闵孝镇"},{"code":"520621102","name":"太平镇"},{"code":"520621103","name":"坝盘镇"},{"code":"520621104","name":"民和镇"},{"code":"520621105","name":"桃映镇"},{"code":"520621106","name":"怒溪镇"},{"code":"520621202","name":"德旺土家族苗族乡"},{"code":"520621204","name":"官和侗族土家族苗族乡"}]},{"code":"520622","name":"玉屏侗族自治县","children":[{"code":"520622001","name":"皂角坪街道"},{"code":"520622002","name":"平溪街道"},{"code":"520622003","name":"大龙街道"},{"code":"520622004","name":"麻音塘街道"},{"code":"520622100","name":"新店镇"},{"code":"520622102","name":"朱家场镇"},{"code":"520622103","name":"田坪镇"},{"code":"520622200","name":"亚鱼乡"}]},{"code":"520623","name":"石阡县","children":[{"code":"520623001","name":"汤山街道"},{"code":"520623002","name":"泉都街道"},{"code":"520623003","name":"中坝街道"},{"code":"520623101","name":"本庄镇"},{"code":"520623102","name":"白沙镇"},{"code":"520623103","name":"龙塘镇"},{"code":"520623104","name":"花桥镇"},{"code":"520623105","name":"五德镇"},{"code":"520623107","name":"河坝镇"},{"code":"520623201","name":"国荣乡"},{"code":"520623202","name":"聚凤仡佬族侗族乡"},{"code":"520623203","name":"龙井仡佬族侗族乡"},{"code":"520623204","name":"大沙坝仡佬族侗族乡"},{"code":"520623205","name":"枫香仡佬族侗族乡"},{"code":"520623206","name":"青阳苗族仡佬族侗族乡"},{"code":"520623207","name":"石固仡佬族侗族乡"},{"code":"520623208","name":"坪地场仡佬族侗族乡"},{"code":"520623209","name":"甘溪仡佬族侗族乡"},{"code":"520623210","name":"坪山仡佬族侗族乡"}]},{"code":"520624","name":"思南县","children":[{"code":"520624001","name":"思唐街道"},{"code":"520624002","name":"关中坝街道"},{"code":"520624003","name":"双塘街道"},{"code":"520624101","name":"塘头镇"},{"code":"520624102","name":"许家坝镇"},{"code":"520624103","name":"大坝场镇"},{"code":"520624104","name":"文家店镇"},{"code":"520624105","name":"鹦鹉溪镇"},{"code":"520624106","name":"合朋溪镇"},{"code":"520624107","name":"张家寨镇"},{"code":"520624108","name":"孙家坝镇"},{"code":"520624109","name":"青杠坡镇"},{"code":"520624110","name":"瓮溪镇"},{"code":"520624111","name":"凉水井镇"},{"code":"520624112","name":"邵家桥镇"},{"code":"520624113","name":"大河坝镇"},{"code":"520624114","name":"亭子坝镇"},{"code":"520624115","name":"香坝镇"},{"code":"520624116","name":"长坝镇"},{"code":"520624117","name":"板桥镇"},{"code":"520624201","name":"思林土家族苗族乡"},{"code":"520624203","name":"胡家湾苗族土家族乡"},{"code":"520624204","name":"宽坪苗族土家族乡"},{"code":"520624206","name":"枫芸土家族苗族乡"},{"code":"520624210","name":"三道水土家族苗族乡"},{"code":"520624211","name":"天桥土家族苗族乡"},{"code":"520624212","name":"兴隆土家族苗族乡"},{"code":"520624213","name":"杨家坳苗族土家族乡"}]},{"code":"520625","name":"印江土家族苗族自治县","children":[{"code":"520625001","name":"峨岭街道"},{"code":"520625002","name":"龙津街道"},{"code":"520625003","name":"中兴街道"},{"code":"520625101","name":"板溪镇"},{"code":"520625102","name":"沙子坡镇"},{"code":"520625103","name":"天堂镇"},{"code":"520625104","name":"木黄镇"},{"code":"520625105","name":"合水镇"},{"code":"520625106","name":"朗溪镇"},{"code":"520625107","name":"缠溪镇"},{"code":"520625108","name":"洋溪镇"},{"code":"520625109","name":"新寨镇"},{"code":"520625110","name":"杉树镇"},{"code":"520625111","name":"刀坝镇"},{"code":"520625112","name":"紫薇镇"},{"code":"520625113","name":"杨柳镇"},{"code":"520625206","name":"罗场乡"}]},{"code":"520626","name":"德江县","children":[{"code":"520626001","name":"青龙街道"},{"code":"520626002","name":"玉水街道"},{"code":"520626003","name":"安化街道"},{"code":"520626101","name":"煎茶镇"},{"code":"520626102","name":"潮砥镇"},{"code":"520626103","name":"枫香溪镇"},{"code":"520626104","name":"稳坪镇"},{"code":"520626105","name":"复兴镇"},{"code":"520626106","name":"合兴镇"},{"code":"520626107","name":"高山镇"},{"code":"520626108","name":"泉口镇"},{"code":"520626109","name":"长堡镇"},{"code":"520626110","name":"共和镇"},{"code":"520626111","name":"平原镇"},{"code":"520626200","name":"荆角土家族乡"},{"code":"520626201","name":"堰塘土家族乡"},{"code":"520626202","name":"龙泉土家族乡"},{"code":"520626203","name":"钱家土家族乡"},{"code":"520626204","name":"沙溪土家族乡"},{"code":"520626205","name":"楠杆土家族乡"},{"code":"520626206","name":"长丰土家族乡"},{"code":"520626207","name":"桶井土家族乡"}]},{"code":"520627","name":"沿河土家族自治县","children":[{"code":"520627001","name":"团结街道"},{"code":"520627002","name":"和平街道"},{"code":"520627003","name":"沙子街道"},{"code":"520627004","name":"祐溪街道"},{"code":"520627101","name":"黑水镇"},{"code":"520627102","name":"谯家镇"},{"code":"520627103","name":"夹石镇"},{"code":"520627104","name":"淇滩镇"},{"code":"520627105","name":"官舟镇"},{"code":"520627106","name":"土地坳镇"},{"code":"520627107","name":"思渠镇"},{"code":"520627108","name":"客田镇"},{"code":"520627109","name":"洪渡镇"},{"code":"520627110","name":"中界镇"},{"code":"520627111","name":"甘溪镇"},{"code":"520627112","name":"板场镇"},{"code":"520627113","name":"泉坝镇"},{"code":"520627114","name":"中寨镇"},{"code":"520627115","name":"黄土镇"},{"code":"520627116","name":"新景镇"},{"code":"520627117","name":"塘坝镇"},{"code":"520627203","name":"晓景乡"},{"code":"520627211","name":"后坪乡"}]},{"code":"520628","name":"松桃苗族自治县","children":[{"code":"520628001","name":"大兴街道"},{"code":"520628002","name":"蓼皋街道"},{"code":"520628003","name":"世昌街道"},{"code":"520628004","name":"太平营街道"},{"code":"520628005","name":"九江街道"},{"code":"520628101","name":"盘石镇"},{"code":"520628102","name":"盘信镇"},{"code":"520628103","name":"大坪场镇"},{"code":"520628104","name":"普觉镇"},{"code":"520628105","name":"寨英镇"},{"code":"520628106","name":"孟溪镇"},{"code":"520628107","name":"乌罗镇"},{"code":"520628108","name":"甘龙镇"},{"code":"520628109","name":"长兴堡镇"},{"code":"520628110","name":"迓驾镇"},{"code":"520628112","name":"牛郎镇"},{"code":"520628113","name":"黄板镇"},{"code":"520628114","name":"平头镇"},{"code":"520628115","name":"大路镇"},{"code":"520628116","name":"木树镇"},{"code":"520628117","name":"冷水溪镇"},{"code":"520628118","name":"正大镇"},{"code":"520628203","name":"长坪乡"},{"code":"520628207","name":"妙隘乡"},{"code":"520628209","name":"石梁乡"},{"code":"520628210","name":"瓦溪乡"},{"code":"520628211","name":"永安乡"},{"code":"520628214","name":"沙坝河乡"}]}]},{"code":"5223","name":"黔西南布依族苗族自治州","children":[{"code":"522301","name":"兴义市","children":[{"code":"522301001","name":"黄草街道"},{"code":"522301002","name":"兴泰街道"},{"code":"522301003","name":"桔山街道"},{"code":"522301004","name":"丰都街道"},{"code":"522301005","name":"坪东街道"},{"code":"522301006","name":"木贾街道"},{"code":"522301007","name":"下五屯街道"},{"code":"522301008","name":"万峰林街道"},{"code":"522301009","name":"洒金街道"},{"code":"522301010","name":"马岭街道"},{"code":"522301011","name":"顶效街道"},{"code":"522301012","name":"木陇街道"},{"code":"522301100","name":"敬南镇"},{"code":"522301101","name":"泥凼镇"},{"code":"522301102","name":"南盘江镇"},{"code":"522301103","name":"捧乍镇"},{"code":"522301104","name":"鲁布格镇"},{"code":"522301105","name":"三江口镇"},{"code":"522301106","name":"乌沙镇"},{"code":"522301107","name":"白碗窑镇"},{"code":"522301109","name":"威舍镇"},{"code":"522301110","name":"清水河镇"},{"code":"522301112","name":"郑屯镇"},{"code":"522301113","name":"万屯镇"},{"code":"522301114","name":"鲁屯镇"},{"code":"522301115","name":"仓更镇"},{"code":"522301116","name":"七舍镇"},{"code":"522301117","name":"则戎镇"},{"code":"522301118","name":"猪场坪镇"},{"code":"522301201","name":"沧江乡"},{"code":"522301202","name":"洛万乡"},{"code":"522301204","name":"雄武乡"}]},{"code":"522302","name":"兴仁市","children":[{"code":"522302001","name":"东湖街道"},{"code":"522302002","name":"城南街道"},{"code":"522302003","name":"真武山街道"},{"code":"522302004","name":"城北街道"},{"code":"522302005","name":"陆官街道"},{"code":"522302006","name":"薏品田园街道"},{"code":"522302101","name":"屯脚镇"},{"code":"522302102","name":"巴铃镇"},{"code":"522302103","name":"百德镇"},{"code":"522302104","name":"雨樟镇"},{"code":"522302105","name":"潘家庄镇"},{"code":"522302106","name":"回龙镇"},{"code":"522302107","name":"下山镇"},{"code":"522302108","name":"新龙场镇"},{"code":"522302109","name":"大山镇"},{"code":"522302110","name":"马马崖镇"},{"code":"522302111","name":"波阳镇"},{"code":"522302200","name":"鲁础营回族乡"}]},{"code":"522323","name":"普安县","children":[{"code":"522323001","name":"盘水街道"},{"code":"522323002","name":"南湖街道"},{"code":"522323003","name":"茶源街道"},{"code":"522323004","name":"九峰街道"},{"code":"522323101","name":"龙吟镇"},{"code":"522323103","name":"江西坡镇"},{"code":"522323105","name":"地瓜镇"},{"code":"522323107","name":"楼下镇"},{"code":"522323108","name":"兴中镇"},{"code":"522323109","name":"青山镇"},{"code":"522323110","name":"罗汉镇"},{"code":"522323111","name":"新店镇"},{"code":"522323200","name":"白沙乡"},{"code":"522323201","name":"高棉乡"}]},{"code":"522324","name":"晴隆县","children":[{"code":"522324001","name":"东观街道"},{"code":"522324002","name":"莲城街道"},{"code":"522324003","name":"三宝街道"},{"code":"522324004","name":"腾龙街道"},{"code":"522324101","name":"沙子镇"},{"code":"522324102","name":"碧痕镇"},{"code":"522324103","name":"大厂镇"},{"code":"522324104","name":"鸡场镇"},{"code":"522324105","name":"花贡镇"},{"code":"522324106","name":"中营镇"},{"code":"522324107","name":"光照镇"},{"code":"522324108","name":"茶马镇"},{"code":"522324200","name":"长流乡"},{"code":"522324204","name":"紫马乡"},{"code":"522324205","name":"安谷乡"},{"code":"522324206","name":"三宝彝族乡"}]},{"code":"522325","name":"贞丰县","children":[{"code":"522325001","name":"永丰街道"},{"code":"522325002","name":"珉谷街道"},{"code":"522325003","name":"丰茂街道"},{"code":"522325004","name":"龙兴街道"},{"code":"522325005","name":"双峰街道"},{"code":"522325101","name":"龙场镇"},{"code":"522325102","name":"者相镇"},{"code":"522325103","name":"北盘江镇"},{"code":"522325104","name":"白层镇"},{"code":"522325105","name":"鲁贡镇"},{"code":"522325106","name":"小屯镇"},{"code":"522325107","name":"长田镇"},{"code":"522325108","name":"沙坪镇"},{"code":"522325109","name":"挽澜镇"},{"code":"522325200","name":"连环乡"},{"code":"522325204","name":"平街乡"},{"code":"522325205","name":"鲁容乡"}]},{"code":"522326","name":"望谟县","children":[{"code":"522326001","name":"王母街道"},{"code":"522326002","name":"平洞街道"},{"code":"522326003","name":"新屯街道"},{"code":"522326004","name":"蟠桃街道"},{"code":"522326101","name":"乐元镇"},{"code":"522326102","name":"打易镇"},{"code":"522326103","name":"乐旺镇"},{"code":"522326104","name":"桑郎镇"},{"code":"522326105","name":"麻山镇"},{"code":"522326107","name":"石屯镇"},{"code":"522326108","name":"蔗香镇"},{"code":"522326109","name":"郊纳镇"},{"code":"522326110","name":"大观镇"},{"code":"522326111","name":"边饶镇"},{"code":"522326112","name":"昂武镇"},{"code":"522326206","name":"油迈瑶族乡"}]},{"code":"522327","name":"册亨县","children":[{"code":"522327001","name":"者楼街道"},{"code":"522327002","name":"纳福街道"},{"code":"522327003","name":"高洛街道"},{"code":"522327103","name":"丫他镇"},{"code":"522327104","name":"巧马镇"},{"code":"522327105","name":"秧坝镇"},{"code":"522327107","name":"岩架镇"},{"code":"522327108","name":"八渡镇"},{"code":"522327109","name":"冗渡镇"},{"code":"522327110","name":"坡妹镇"},{"code":"522327111","name":"双江镇"},{"code":"522327112","name":"弼佑镇"},{"code":"522327204","name":"百口乡"}]},{"code":"522328","name":"安龙县","children":[{"code":"522328001","name":"招堤街道"},{"code":"522328002","name":"栖凤街道"},{"code":"522328003","name":"钱相街道"},{"code":"522328004","name":"五福街道"},{"code":"522328005","name":"春潭街道"},{"code":"522328101","name":"龙广镇"},{"code":"522328102","name":"德卧镇"},{"code":"522328103","name":"万峰湖镇"},{"code":"522328104","name":"木咱镇"},{"code":"522328105","name":"洒雨镇"},{"code":"522328106","name":"普坪镇"},{"code":"522328107","name":"龙山镇"},{"code":"522328110","name":"新桥镇"},{"code":"522328111","name":"海子镇"},{"code":"522328112","name":"笃山镇"}]}]},{"code":"5226","name":"黔东南苗族侗族自治州","children":[{"code":"522601","name":"凯里市","children":[{"code":"522601001","name":"城西街道"},{"code":"522601002","name":"大十字街道"},{"code":"522601003","name":"西门街道"},{"code":"522601004","name":"洗马河街道"},{"code":"522601005","name":"湾溪街道"},{"code":"522601006","name":"鸭塘街道"},{"code":"522601007","name":"开怀街道"},{"code":"522601008","name":"白午街道"},{"code":"522601009","name":"白果井街道"},{"code":"522601100","name":"三棵树镇"},{"code":"522601101","name":"舟溪镇"},{"code":"522601103","name":"旁海镇"},{"code":"522601104","name":"湾水镇"},{"code":"522601105","name":"炉山镇"},{"code":"522601106","name":"万潮镇"},{"code":"522601107","name":"龙场镇"},{"code":"522601108","name":"碧波镇"},{"code":"522601109","name":"下司镇"},{"code":"522601110","name":"凯棠镇"},{"code":"522601111","name":"大风洞镇"}]},{"code":"522622","name":"黄平县","children":[{"code":"522622100","name":"新州镇"},{"code":"522622101","name":"旧州镇"},{"code":"522622102","name":"重安镇"},{"code":"522622103","name":"谷陇镇"},{"code":"522622104","name":"平溪镇"},{"code":"522622105","name":"野洞河镇"},{"code":"522622106","name":"浪洞镇"},{"code":"522622107","name":"上塘镇"},{"code":"522622203","name":"一碗水乡"},{"code":"522622204","name":"纸房乡"},{"code":"522622206","name":"翁坪乡"}]},{"code":"522623","name":"施秉县","children":[{"code":"522623100","name":"城关镇"},{"code":"522623101","name":"杨柳塘镇"},{"code":"522623102","name":"双井镇"},{"code":"522623103","name":"牛大场镇"},{"code":"522623104","name":"马号镇"},{"code":"522623200","name":"白垛乡"},{"code":"522623201","name":"甘溪乡"},{"code":"522623203","name":"马溪乡"}]},{"code":"522624","name":"三穗县","children":[{"code":"522624001","name":"文笔街道"},{"code":"522624002","name":"武笔街道"},{"code":"522624100","name":"八弓镇"},{"code":"522624101","name":"台烈镇"},{"code":"522624102","name":"瓦寨镇"},{"code":"522624103","name":"桐林镇"},{"code":"522624104","name":"雪洞镇"},{"code":"522624105","name":"长吉镇"},{"code":"522624106","name":"良上镇"},{"code":"522624200","name":"滚马乡"},{"code":"522624202","name":"款场乡"}]},{"code":"522625","name":"镇远县","children":[{"code":"522625100","name":"舞阳镇"},{"code":"522625101","name":"蕉溪镇"},{"code":"522625102","name":"青溪镇"},{"code":"522625103","name":"羊坪镇"},{"code":"522625104","name":"羊场镇"},{"code":"522625105","name":"都坪镇"},{"code":"522625106","name":"金堡镇"},{"code":"522625107","name":"江古镇"},{"code":"522625201","name":"涌溪乡"},{"code":"522625203","name":"报京乡"},{"code":"522625204","name":"大地乡"},{"code":"522625205","name":"尚寨土家族乡"}]},{"code":"522626","name":"岑巩县","children":[{"code":"522626001","name":"?水街道"},{"code":"522626100","name":"思旸镇"},{"code":"522626101","name":"水尾镇"},{"code":"522626102","name":"天马镇"},{"code":"522626103","name":"龙田镇"},{"code":"522626104","name":"大有镇"},{"code":"522626105","name":"注溪镇"},{"code":"522626106","name":"凯本镇"},{"code":"522626107","name":"平庄镇"},{"code":"522626108","name":"客楼镇"},{"code":"522626202","name":"天星乡"},{"code":"522626203","name":"羊桥土家族乡"}]},{"code":"522627","name":"天柱县","children":[{"code":"522627001","name":"凤城街道"},{"code":"522627002","name":"邦洞街道"},{"code":"522627003","name":"社学街道"},{"code":"522627004","name":"联山街道"},{"code":"522627102","name":"坪地镇"},{"code":"522627103","name":"蓝田镇"},{"code":"522627104","name":"瓮洞镇"},{"code":"522627105","name":"高酿镇"},{"code":"522627106","name":"石洞镇"},{"code":"522627107","name":"远口镇"},{"code":"522627108","name":"坌处镇"},{"code":"522627109","name":"白市镇"},{"code":"522627110","name":"渡马镇"},{"code":"522627111","name":"江东镇"},{"code":"522627112","name":"竹林镇"},{"code":"522627202","name":"注溪乡"},{"code":"522627203","name":"地湖乡"}]},{"code":"522628","name":"锦屏县","children":[{"code":"522628100","name":"三江镇"},{"code":"522628101","name":"茅坪镇"},{"code":"522628102","name":"敦寨镇"},{"code":"522628103","name":"启蒙镇"},{"code":"522628104","name":"平秋镇"},{"code":"522628105","name":"铜鼓镇"},{"code":"522628106","name":"平略镇"},{"code":"522628200","name":"大同乡"},{"code":"522628201","name":"新化乡"},{"code":"522628202","name":"隆里乡"},{"code":"522628203","name":"钟灵乡"},{"code":"522628204","name":"偶里乡"},{"code":"522628205","name":"固本乡"},{"code":"522628206","name":"河口乡"},{"code":"522628207","name":"彦洞乡"}]},{"code":"522629","name":"剑河县","children":[{"code":"522629001","name":"仰阿莎街道"},{"code":"522629100","name":"柳川镇"},{"code":"522629101","name":"岑松镇"},{"code":"522629102","name":"南加镇"},{"code":"522629103","name":"南明镇"},{"code":"522629104","name":"革东镇"},{"code":"522629105","name":"太拥镇"},{"code":"522629106","name":"磻溪镇"},{"code":"522629107","name":"久仰镇"},{"code":"522629108","name":"南哨镇"},{"code":"522629109","name":"南寨镇"},{"code":"522629110","name":"观么镇"},{"code":"522629205","name":"敏洞乡"}]},{"code":"522630","name":"台江县","children":[{"code":"522630001","name":"台拱街道"},{"code":"522630002","name":"萃文街道"},{"code":"522630101","name":"施洞镇"},{"code":"522630102","name":"南宫镇"},{"code":"522630103","name":"革一镇"},{"code":"522630104","name":"方召镇"},{"code":"522630201","name":"排羊乡"},{"code":"522630202","name":"台盘乡"},{"code":"522630204","name":"老屯乡"}]},{"code":"522631","name":"黎平县","children":[{"code":"522631001","name":"德凤街道"},{"code":"522631002","name":"高屯街道"},{"code":"522631003","name":"龙形街道"},{"code":"522631102","name":"中潮镇"},{"code":"522631103","name":"孟彦镇"},{"code":"522631104","name":"敖市镇"},{"code":"522631105","name":"九潮镇"},{"code":"522631106","name":"岩洞镇"},{"code":"522631107","name":"水口镇"},{"code":"522631108","name":"洪州镇"},{"code":"522631109","name":"尚重镇"},{"code":"522631110","name":"双江镇"},{"code":"522631111","name":"肇兴镇"},{"code":"522631112","name":"龙额镇"},{"code":"522631113","name":"永从镇"},{"code":"522631114","name":"茅贡镇"},{"code":"522631115","name":"地坪镇"},{"code":"522631200","name":"顺化瑶族乡"},{"code":"522631201","name":"雷洞瑶族水族乡"},{"code":"522631203","name":"罗里乡"},{"code":"522631205","name":"坝寨乡"},{"code":"522631206","name":"口江乡"},{"code":"522631211","name":"德顺乡"},{"code":"522631212","name":"大稼乡"},{"code":"522631213","name":"平寨乡"},{"code":"522631214","name":"德化乡"}]},{"code":"522632","name":"榕江县","children":[{"code":"522632001","name":"车民街道"},{"code":"522632100","name":"古州镇"},{"code":"522632101","name":"忠诚镇"},{"code":"522632102","name":"寨蒿镇"},{"code":"522632103","name":"平永镇"},{"code":"522632104","name":"乐里镇"},{"code":"522632105","name":"朗洞镇"},{"code":"522632106","name":"栽麻镇"},{"code":"522632107","name":"平江镇"},{"code":"522632108","name":"八开镇"},{"code":"522632202","name":"崇义乡"},{"code":"522632204","name":"三江水族乡"},{"code":"522632205","name":"仁里水族乡"},{"code":"522632206","name":"塔石瑶族水族乡"},{"code":"522632208","name":"定威水族乡"},{"code":"522632209","name":"兴华水族乡"},{"code":"522632210","name":"计划乡"},{"code":"522632211","name":"水尾水族乡"},{"code":"522632212","name":"平阳乡"},{"code":"522632213","name":"两汪乡"}]},{"code":"522633","name":"从江县","children":[{"code":"522633001","name":"丙梅街道"},{"code":"522633100","name":"丙妹镇"},{"code":"522633101","name":"贯洞镇"},{"code":"522633102","name":"洛香镇"},{"code":"522633103","name":"下江镇"},{"code":"522633104","name":"宰便镇"},{"code":"522633105","name":"西山镇"},{"code":"522633106","name":"停洞镇"},{"code":"522633107","name":"往洞镇"},{"code":"522633108","name":"庆云镇"},{"code":"522633109","name":"斗里镇"},{"code":"522633110","name":"东朗镇"},{"code":"522633111","name":"加鸠镇"},{"code":"522633200","name":"高增乡"},{"code":"522633201","name":"谷坪乡"},{"code":"522633204","name":"刚边壮族乡"},{"code":"522633205","name":"加榜乡"},{"code":"522633206","name":"秀塘壮族乡"},{"code":"522633208","name":"翠里瑶族壮族乡"},{"code":"522633212","name":"加勉乡"}]},{"code":"522634","name":"雷山县","children":[{"code":"522634001","name":"龙头街道"},{"code":"522634100","name":"丹江镇"},{"code":"522634101","name":"西江镇"},{"code":"522634102","name":"永乐镇"},{"code":"522634103","name":"郎德镇"},{"code":"522634104","name":"大塘镇"},{"code":"522634200","name":"望丰乡"},{"code":"522634203","name":"达地水族乡"},{"code":"522634204","name":"方祥乡"}]},{"code":"522635","name":"麻江县","children":[{"code":"522635001","name":"杏山街道"},{"code":"522635002","name":"金竹街道"},{"code":"522635101","name":"谷硐镇"},{"code":"522635103","name":"宣威镇"},{"code":"522635105","name":"龙山镇"},{"code":"522635106","name":"贤昌镇"},{"code":"522635203","name":"坝芒布依族乡"}]},{"code":"522636","name":"丹寨县","children":[{"code":"522636001","name":"金泉街道"},{"code":"522636100","name":"龙泉镇"},{"code":"522636101","name":"兴仁镇"},{"code":"522636102","name":"排调镇"},{"code":"522636103","name":"扬武镇"},{"code":"522636202","name":"雅灰乡"},{"code":"522636203","name":"南皋乡"}]}]},{"code":"5227","name":"黔南布依族苗族自治州","children":[{"code":"522701","name":"都匀市","children":[{"code":"522701001","name":"广惠街道"},{"code":"522701002","name":"文峰街道"},{"code":"522701004","name":"小围寨街道"},{"code":"522701005","name":"沙包堡街道"},{"code":"522701006","name":"绿茵湖街道"},{"code":"522701106","name":"墨冲镇"},{"code":"522701107","name":"平浪镇"},{"code":"522701110","name":"毛尖镇"},{"code":"522701111","name":"匀东镇"},{"code":"522701208","name":"归兰水族乡"}]},{"code":"522702","name":"福泉市","children":[{"code":"522702001","name":"金山街道"},{"code":"522702002","name":"马场坪街道"},{"code":"522702102","name":"凤山镇"},{"code":"522702103","name":"陆坪镇"},{"code":"522702105","name":"龙昌镇"},{"code":"522702106","name":"牛场镇"},{"code":"522702107","name":"道坪镇"},{"code":"522702203","name":"仙桥乡"}]},{"code":"522722","name":"荔波县","children":[{"code":"522722001","name":"玉屏街道"},{"code":"522722101","name":"朝阳镇"},{"code":"522722102","name":"茂兰镇"},{"code":"522722104","name":"甲良镇"},{"code":"522722105","name":"佳荣镇"},{"code":"522722107","name":"小七孔镇"},{"code":"522722211","name":"瑶山瑶族乡"},{"code":"522722212","name":"黎明关水族乡"}]},{"code":"522723","name":"贵定县","children":[{"code":"522723001","name":"金南街道"},{"code":"522723002","name":"宝山街道"},{"code":"522723102","name":"新巴镇"},{"code":"522723108","name":"德新镇"},{"code":"522723109","name":"盘江镇"},{"code":"522723110","name":"沿山镇"},{"code":"522723111","name":"昌明镇"},{"code":"522723112","name":"云雾镇"}]},{"code":"522725","name":"瓮安县","children":[{"code":"522725001","name":"雍阳街道"},{"code":"522725002","name":"瓮水街道"},{"code":"522725101","name":"平定营镇"},{"code":"522725103","name":"中坪镇"},{"code":"522725104","name":"建中镇"},{"code":"522725105","name":"永和镇"},{"code":"522725106","name":"珠藏镇"},{"code":"522725107","name":"玉山镇"},{"code":"522725108","name":"天文镇"},{"code":"522725109","name":"银盏镇"},{"code":"522725110","name":"猴场镇"},{"code":"522725111","name":"江界河镇"},{"code":"522725205","name":"岚关乡"}]},{"code":"522726","name":"独山县","children":[{"code":"522726001","name":"井城街道"},{"code":"522726108","name":"百泉镇"},{"code":"522726109","name":"影山镇"},{"code":"522726110","name":"基长镇"},{"code":"522726111","name":"下司镇"},{"code":"522726112","name":"麻尾镇"},{"code":"522726113","name":"麻万镇"},{"code":"522726114","name":"上司镇"},{"code":"522726115","name":"玉水镇"}]},{"code":"522727","name":"平塘县","children":[{"code":"522727001","name":"金盆街道"},{"code":"522727100","name":"平舟镇"},{"code":"522727101","name":"牙舟镇"},{"code":"522727102","name":"通州镇"},{"code":"522727103","name":"大塘镇"},{"code":"522727104","name":"克度镇"},{"code":"522727105","name":"塘边镇"},{"code":"522727106","name":"甲茶镇"},{"code":"522727107","name":"者密镇"},{"code":"522727108","name":"掌布镇"},{"code":"522727200","name":"卡蒲毛南族乡"}]},{"code":"522728","name":"罗甸县","children":[{"code":"522728001","name":"斛兴街道"},{"code":"522728107","name":"龙坪镇"},{"code":"522728108","name":"边阳镇"},{"code":"522728109","name":"沫阳镇"},{"code":"522728110","name":"逢亭镇"},{"code":"522728111","name":"罗悃镇"},{"code":"522728112","name":"茂井镇"},{"code":"522728113","name":"红水河镇"},{"code":"522728114","name":"木引镇"},{"code":"522728219","name":"凤亭乡"}]},{"code":"522729","name":"长顺县","children":[{"code":"522729001","name":"长寨街道"},{"code":"522729101","name":"广顺镇"},{"code":"522729103","name":"摆所镇"},{"code":"522729104","name":"代化镇"},{"code":"522729105","name":"白云山镇"},{"code":"522729106","name":"鼓扬镇"},{"code":"522729209","name":"敦操乡"}]},{"code":"522730","name":"龙里县","children":[{"code":"522730001","name":"冠山街道"},{"code":"522730100","name":"龙山镇"},{"code":"522730102","name":"醒狮镇"},{"code":"522730103","name":"谷脚镇"},{"code":"522730104","name":"湾滩河镇"},{"code":"522730105","name":"洗马镇"}]},{"code":"522731","name":"惠水县","children":[{"code":"522731001","name":"涟江街道"},{"code":"522731002","name":"濛江街道"},{"code":"522731003","name":"明田街道"},{"code":"522731102","name":"好花红镇"},{"code":"522731103","name":"摆金镇"},{"code":"522731104","name":"雅水镇"},{"code":"522731105","name":"断杉镇"},{"code":"522731106","name":"芦山镇"},{"code":"522731107","name":"王佑镇"},{"code":"522731108","name":"羡塘镇"},{"code":"522731109","name":"岗度镇"}]},{"code":"522732","name":"三都水族自治县","children":[{"code":"522732001","name":"三合街道"},{"code":"522732002","name":"凤羽街道"},{"code":"522732111","name":"大河镇"},{"code":"522732112","name":"普安镇"},{"code":"522732113","name":"都江镇"},{"code":"522732114","name":"中和镇"},{"code":"522732115","name":"周覃镇"},{"code":"522732116","name":"九阡镇"}]}]}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市","children":[{"code":"530102","name":"五华区","children":[{"code":"530102001","name":"华山街道"},{"code":"530102002","name":"护国街道"},{"code":"530102003","name":"大观街道"},{"code":"530102004","name":"龙翔街道"},{"code":"530102005","name":"丰宁街道"},{"code":"530102006","name":"莲华街道"},{"code":"530102007","name":"红云街道"},{"code":"530102008","name":"黑林铺街道"},{"code":"530102009","name":"普吉街道"},{"code":"530102010","name":"西翥街道"},{"code":"530102401","name":"昆明国家高新技术产业开发区"}]},{"code":"530103","name":"盘龙区","children":[{"code":"530103001","name":"拓东街道"},{"code":"530103002","name":"鼓楼街道"},{"code":"530103003","name":"东华街道"},{"code":"530103004","name":"联盟街道"},{"code":"530103005","name":"金辰街道"},{"code":"530103006","name":"青云街道"},{"code":"530103007","name":"龙泉街道"},{"code":"530103008","name":"茨坝街道"},{"code":"530103009","name":"双龙街道"},{"code":"530103010","name":"松华街道"},{"code":"530103011","name":"滇源街道"},{"code":"530103012","name":"阿子营街道"}]},{"code":"530111","name":"官渡区","children":[{"code":"530111001","name":"关上街道"},{"code":"530111002","name":"太和街道"},{"code":"530111003","name":"吴井街道"},{"code":"530111004","name":"金马街道"},{"code":"530111005","name":"小板桥街道"},{"code":"530111006","name":"官渡街道"},{"code":"530111007","name":"矣六街道"},{"code":"530111008","name":"六甲街道"},{"code":"530111009","name":"大板桥街道"},{"code":"530111010","name":"阿拉街道"},{"code":"530111402","name":"昆明经济技术开发区"}]},{"code":"530112","name":"西山区","children":[{"code":"530112001","name":"西苑街道"},{"code":"530112002","name":"马街街道"},{"code":"530112003","name":"金碧街道"},{"code":"530112004","name":"永昌街道"},{"code":"530112005","name":"前卫街道"},{"code":"530112006","name":"福海街道"},{"code":"530112007","name":"棕树营街道"},{"code":"530112008","name":"碧鸡街道"},{"code":"530112009","name":"海口街道"},{"code":"530112010","name":"团结街道"},{"code":"530112403","name":"昆明滇池国家旅游度假区"}]},{"code":"530113","name":"东川区","children":[{"code":"530113001","name":"铜都街道"},{"code":"530113002","name":"碧谷街道"},{"code":"530113102","name":"汤丹镇"},{"code":"530113103","name":"因民镇"},{"code":"530113104","name":"阿旺镇"},{"code":"530113105","name":"乌龙镇"},{"code":"530113106","name":"红土地镇"},{"code":"530113107","name":"拖布卡镇"},{"code":"530113201","name":"舍块乡"}]},{"code":"530114","name":"呈贡区","children":[{"code":"530114001","name":"龙城街道"},{"code":"530114002","name":"洛龙街道"},{"code":"530114003","name":"斗南街道"},{"code":"530114004","name":"乌龙街道"},{"code":"530114005","name":"吴家营街道"},{"code":"530114006","name":"雨花街道"},{"code":"530114007","name":"七甸街道"},{"code":"530114008","name":"洛羊街道"},{"code":"530114009","name":"大渔街道"},{"code":"530114010","name":"马金铺街道"}]},{"code":"530115","name":"晋宁区","children":[{"code":"530115001","name":"昆阳街道"},{"code":"530115002","name":"宝峰街道"},{"code":"530115003","name":"晋城街道"},{"code":"530115101","name":"二街镇"},{"code":"530115102","name":"上蒜镇"},{"code":"530115103","name":"六街镇"},{"code":"530115200","name":"双河彝族乡"},{"code":"530115201","name":"夕阳彝族乡"}]},{"code":"530124","name":"富民县","children":[{"code":"530124001","name":"永定街道"},{"code":"530124002","name":"大营街道"},{"code":"530124103","name":"罗免镇"},{"code":"530124104","name":"赤鹫镇"},{"code":"530124105","name":"东村镇"},{"code":"530124106","name":"款庄镇"},{"code":"530124107","name":"散旦镇"}]},{"code":"530125","name":"宜良县","children":[{"code":"530125001","name":"匡远街道"},{"code":"530125002","name":"汤池街道"},{"code":"530125003","name":"南羊街道"},{"code":"530125102","name":"北古城镇"},{"code":"530125103","name":"狗街镇"},{"code":"530125105","name":"竹山镇"},{"code":"530125106","name":"马街镇"},{"code":"530125201","name":"耿家营彝族苗族乡"},{"code":"530125202","name":"九乡彝族回族乡"},{"code":"530125404","name":"昆明阳宗海风景名胜区"}]},{"code":"530126","name":"石林彝族自治县","children":[{"code":"530126001","name":"鹿阜街道"},{"code":"530126002","name":"石林街道"},{"code":"530126003","name":"板桥街道"},{"code":"530126105","name":"西街口镇"},{"code":"530126106","name":"长湖镇"},{"code":"530126107","name":"圭山镇"},{"code":"530126201","name":"大可乡"}]},{"code":"530127","name":"嵩明县","children":[{"code":"530127001","name":"嵩阳街道"},{"code":"530127002","name":"杨桥街道"},{"code":"530127102","name":"小街镇"},{"code":"530127103","name":"杨林镇"},{"code":"530127104","name":"牛栏江镇"},{"code":"530127401","name":"嵩明杨林经济技术开发区"},{"code":"530127402","name":"云南省嵩明职业教育基地"}]},{"code":"530128","name":"禄劝彝族苗族自治县","children":[{"code":"530128001","name":"屏山街道"},{"code":"530128002","name":"崇德街道"},{"code":"530128102","name":"撒营盘镇"},{"code":"530128103","name":"转龙镇"},{"code":"530128104","name":"茂山镇"},{"code":"530128105","name":"团街镇"},{"code":"530128106","name":"中屏镇"},{"code":"530128107","name":"皎平渡镇"},{"code":"530128108","name":"乌东德镇"},{"code":"530128109","name":"翠华镇"},{"code":"530128110","name":"九龙镇"},{"code":"530128204","name":"云龙乡"},{"code":"530128207","name":"汤郎乡"},{"code":"530128208","name":"马鹿塘乡"},{"code":"530128211","name":"则黑乡"},{"code":"530128212","name":"乌蒙乡"},{"code":"530128213","name":"雪山乡"},{"code":"530128401","name":"禄劝工业园区"}]},{"code":"530129","name":"寻甸回族彝族自治县","children":[{"code":"530129001","name":"仁德街道"},{"code":"530129002","name":"塘子街道"},{"code":"530129003","name":"金所街道"},{"code":"530129103","name":"羊街镇"},{"code":"530129104","name":"柯渡镇"},{"code":"530129105","name":"倘甸镇"},{"code":"530129106","name":"功山镇"},{"code":"530129107","name":"河口镇"},{"code":"530129108","name":"七星镇"},{"code":"530129109","name":"先锋镇"},{"code":"530129110","name":"鸡街镇"},{"code":"530129111","name":"凤合镇"},{"code":"530129205","name":"六哨乡"},{"code":"530129208","name":"联合乡"},{"code":"530129209","name":"金源乡"},{"code":"530129210","name":"甸沙乡"},{"code":"530129405","name":"昆明倘甸产业园区轿子山旅游开发区"}]},{"code":"530181","name":"安宁市","children":[{"code":"530181001","name":"连然街道"},{"code":"530181002","name":"金方街道"},{"code":"530181003","name":"八街街道"},{"code":"530181004","name":"温泉街道"},{"code":"530181005","name":"青龙街道"},{"code":"530181006","name":"禄脿街道"},{"code":"530181007","name":"草铺街道"},{"code":"530181008","name":"太平新城街道"},{"code":"530181009","name":"县街街道"}]}]},{"code":"5303","name":"曲靖市","children":[{"code":"530302","name":"麒麟区","children":[{"code":"530302001","name":"南宁街道"},{"code":"530302002","name":"建宁街道"},{"code":"530302003","name":"白石江街道"},{"code":"530302004","name":"寥廓街道"},{"code":"530302005","name":"西城街道"},{"code":"530302006","name":"益宁街道"},{"code":"530302007","name":"文华街道"},{"code":"530302008","name":"太和街道"},{"code":"530302009","name":"潇湘街道"},{"code":"530302010","name":"翠峰街道"},{"code":"530302011","name":"三宝街道"},{"code":"530302012","name":"沿江街道"},{"code":"530302013","name":"珠街街道"},{"code":"530302102","name":"越州镇"},{"code":"530302103","name":"东山镇"},{"code":"530302104","name":"茨营镇"}]},{"code":"530303","name":"沾益区","children":[{"code":"530303001","name":"西平街道"},{"code":"530303002","name":"龙华街道"},{"code":"530303003","name":"金龙街道"},{"code":"530303004","name":"花山街道"},{"code":"530303101","name":"白水镇"},{"code":"530303102","name":"盘江镇"},{"code":"530303201","name":"炎方乡"},{"code":"530303202","name":"播乐乡"},{"code":"530303203","name":"大坡乡"},{"code":"530303204","name":"菱角乡"},{"code":"530303205","name":"德泽乡"}]},{"code":"530304","name":"马龙区","children":[{"code":"530304001","name":"通泉街道"},{"code":"530304002","name":"鸡头村街道"},{"code":"530304003","name":"王家庄街道"},{"code":"530304004","name":"张安屯街道"},{"code":"530304005","name":"旧县街道"},{"code":"530304100","name":"马过河镇"},{"code":"530304101","name":"纳章镇"},{"code":"530304200","name":"马鸣乡"},{"code":"530304201","name":"大庄乡"},{"code":"530304202","name":"月望乡"}]},{"code":"530322","name":"陆良县","children":[{"code":"530322001","name":"中枢街道"},{"code":"530322002","name":"同乐街道"},{"code":"530322102","name":"板桥镇"},{"code":"530322103","name":"三岔河镇"},{"code":"530322104","name":"马街镇"},{"code":"530322105","name":"召夸镇"},{"code":"530322106","name":"大莫古镇"},{"code":"530322107","name":"芳华镇"},{"code":"530322108","name":"小百户镇"},{"code":"530322201","name":"活水乡"},{"code":"530322202","name":"龙海乡"},{"code":"530322501","name":"陆良华侨管理区"}]},{"code":"530323","name":"师宗县","children":[{"code":"530323001","name":"丹凤街道"},{"code":"530323002","name":"漾月街道"},{"code":"530323003","name":"大同街道"},{"code":"530323102","name":"雄壁镇"},{"code":"530323103","name":"葵山镇"},{"code":"530323104","name":"彩云镇"},{"code":"530323105","name":"竹基镇"},{"code":"530323202","name":"龙庆彝族壮族乡"},{"code":"530323203","name":"五龙壮族乡"},{"code":"530323204","name":"高良壮族苗族瑶族乡"}]},{"code":"530324","name":"罗平县","children":[{"code":"530324001","name":"罗雄街道"},{"code":"530324002","name":"腊山街道"},{"code":"530324003","name":"九龙街道"},{"code":"530324102","name":"板桥镇"},{"code":"530324103","name":"马街镇"},{"code":"530324104","name":"富乐镇"},{"code":"530324106","name":"阿岗镇"},{"code":"530324201","name":"大水井乡"},{"code":"530324202","name":"鲁布革布依族苗族乡"},{"code":"530324203","name":"旧屋基彝族乡"},{"code":"530324204","name":"钟山乡"},{"code":"530324205","name":"长底布依族乡"},{"code":"530324206","name":"老厂乡"}]},{"code":"530325","name":"富源县","children":[{"code":"530325001","name":"中安街道"},{"code":"530325002","name":"胜境街道"},{"code":"530325102","name":"营上镇"},{"code":"530325103","name":"黄泥河镇"},{"code":"530325104","name":"竹园镇"},{"code":"530325105","name":"后所镇"},{"code":"530325106","name":"大河镇"},{"code":"530325107","name":"墨红镇"},{"code":"530325108","name":"富村镇"},{"code":"530325109","name":"十八连山镇"},{"code":"530325110","name":"老厂镇"},{"code":"530325201","name":"古敢水族乡"}]},{"code":"530326","name":"会泽县","children":[{"code":"530326001","name":"古城街道"},{"code":"530326002","name":"宝云街道"},{"code":"530326003","name":"金钟街道"},{"code":"530326004","name":"以礼街道"},{"code":"530326005","name":"钟屏街道"},{"code":"530326102","name":"娜姑镇"},{"code":"530326103","name":"迤车镇"},{"code":"530326104","name":"乐业镇"},{"code":"530326105","name":"矿山镇"},{"code":"530326106","name":"者海镇"},{"code":"530326107","name":"大井镇"},{"code":"530326108","name":"待补镇"},{"code":"530326201","name":"大海乡"},{"code":"530326202","name":"老厂乡"},{"code":"530326203","name":"五星乡"},{"code":"530326204","name":"大桥乡"},{"code":"530326205","name":"纸厂乡"},{"code":"530326206","name":"马路乡"},{"code":"530326207","name":"火红乡"},{"code":"530326208","name":"新街回族乡"},{"code":"530326209","name":"雨碌乡"},{"code":"530326210","name":"鲁纳乡"},{"code":"530326211","name":"上村乡"},{"code":"530326212","name":"驾车乡"},{"code":"530326213","name":"田坝乡"}]},{"code":"530381","name":"宣威市","children":[{"code":"530381001","name":"宛水街道"},{"code":"530381002","name":"西宁街道"},{"code":"530381003","name":"双龙街道"},{"code":"530381004","name":"虹桥街道"},{"code":"530381005","name":"丰华街道"},{"code":"530381006","name":"板桥街道"},{"code":"530381007","name":"来宾街道"},{"code":"530381008","name":"凤凰街道"},{"code":"530381009","name":"复兴街道"},{"code":"530381102","name":"格宜镇"},{"code":"530381103","name":"田坝镇"},{"code":"530381104","name":"羊场镇"},{"code":"530381106","name":"倘塘镇"},{"code":"530381107","name":"落水镇"},{"code":"530381108","name":"务德镇"},{"code":"530381109","name":"海岱镇"},{"code":"530381110","name":"龙场镇"},{"code":"530381111","name":"龙潭镇"},{"code":"530381112","name":"热水镇"},{"code":"530381113","name":"宝山镇"},{"code":"530381114","name":"东山镇"},{"code":"530381115","name":"杨柳镇"},{"code":"530381201","name":"普立乡"},{"code":"530381202","name":"西泽乡"},{"code":"530381203","name":"得禄乡"},{"code":"530381205","name":"双河乡"},{"code":"530381206","name":"乐丰乡"},{"code":"530381207","name":"文兴乡"},{"code":"530381208","name":"阿都乡"}]}]},{"code":"5304","name":"玉溪市","children":[{"code":"530402","name":"红塔区","children":[{"code":"530402001","name":"玉兴街道"},{"code":"530402002","name":"凤凰街道"},{"code":"530402003","name":"玉带街道"},{"code":"530402004","name":"北城街道"},{"code":"530402005","name":"春和街道"},{"code":"530402006","name":"李棋街道"},{"code":"530402007","name":"大营街街道"},{"code":"530402008","name":"研和街道"},{"code":"530402009","name":"高仓街道"},{"code":"530402201","name":"小石桥彝族乡"},{"code":"530402202","name":"洛河彝族乡"}]},{"code":"530403","name":"江川区","children":[{"code":"530403001","name":"大街街道"},{"code":"530403101","name":"江城镇"},{"code":"530403102","name":"前卫镇"},{"code":"530403103","name":"九溪镇"},{"code":"530403104","name":"路居镇"},{"code":"530403201","name":"安化彝族乡"},{"code":"530403202","name":"雄关乡"}]},{"code":"530423","name":"通海县","children":[{"code":"530423001","name":"秀山街道"},{"code":"530423002","name":"九龙街道"},{"code":"530423101","name":"杨广镇"},{"code":"530423102","name":"河西镇"},{"code":"530423103","name":"四街镇"},{"code":"530423104","name":"纳古镇"},{"code":"530423201","name":"里山彝族乡"},{"code":"530423202","name":"高大傣族彝族乡"},{"code":"530423203","name":"兴蒙蒙古族乡"}]},{"code":"530424","name":"华宁县","children":[{"code":"530424001","name":"宁州街道"},{"code":"530424102","name":"盘溪镇"},{"code":"530424103","name":"华溪镇"},{"code":"530424104","name":"青龙镇"},{"code":"530424201","name":"通红甸彝族苗族乡"}]},{"code":"530425","name":"易门县","children":[{"code":"530425001","name":"龙泉街道"},{"code":"530425002","name":"六街街道"},{"code":"530425100","name":"绿汁镇"},{"code":"530425201","name":"浦贝彝族乡"},{"code":"530425202","name":"十街彝族乡"},{"code":"530425203","name":"铜厂彝族乡"},{"code":"530425204","name":"小街乡"}]},{"code":"530426","name":"峨山彝族自治县","children":[{"code":"530426001","name":"双江街道"},{"code":"530426002","name":"小街街道"},{"code":"530426103","name":"甸中镇"},{"code":"530426104","name":"化念镇"},{"code":"530426105","name":"塔甸镇"},{"code":"530426201","name":"岔河乡"},{"code":"530426202","name":"大龙潭乡"},{"code":"530426203","name":"富良棚乡"}]},{"code":"530427","name":"新平彝族傣族自治县","children":[{"code":"530427001","name":"桂山街道"},{"code":"530427002","name":"古城街道"},{"code":"530427100","name":"扬武镇"},{"code":"530427101","name":"漠沙镇"},{"code":"530427102","name":"戛洒镇"},{"code":"530427103","name":"水塘镇"},{"code":"530427200","name":"平甸乡"},{"code":"530427201","name":"新化乡"},{"code":"530427202","name":"建兴乡"},{"code":"530427203","name":"老厂乡"},{"code":"530427204","name":"者竜乡"},{"code":"530427205","name":"平掌乡"}]},{"code":"530428","name":"元江哈尼族彝族傣族自治县","children":[{"code":"530428001","name":"红河街道"},{"code":"530428002","name":"澧江街道"},{"code":"530428003","name":"甘庄街道"},{"code":"530428101","name":"曼来镇"},{"code":"530428102","name":"因远镇"},{"code":"530428201","name":"龙潭乡"},{"code":"530428202","name":"羊街乡"},{"code":"530428203","name":"那诺乡"},{"code":"530428204","name":"洼垤乡"},{"code":"530428205","name":"咪哩乡"}]},{"code":"530481","name":"澄江市","children":[{"code":"530481001","name":"凤麓街道"},{"code":"530481002","name":"龙街街道"},{"code":"530481101","name":"右所镇"},{"code":"530481102","name":"阳宗镇"},{"code":"530481103","name":"海口镇"},{"code":"530481104","name":"九村镇"}]}]},{"code":"5305","name":"保山市","children":[{"code":"530502","name":"隆阳区","children":[{"code":"530502001","name":"兰城街道"},{"code":"530502002","name":"永昌街道"},{"code":"530502003","name":"九隆街道"},{"code":"530502004","name":"青华街道"},{"code":"530502005","name":"河图街道"},{"code":"530502006","name":"永盛街道"},{"code":"530502101","name":"板桥镇"},{"code":"530502103","name":"汉庄镇"},{"code":"530502104","name":"蒲缥镇"},{"code":"530502105","name":"瓦窑镇"},{"code":"530502106","name":"潞江镇"},{"code":"530502201","name":"金鸡乡"},{"code":"530502202","name":"辛街乡"},{"code":"530502203","name":"西邑乡"},{"code":"530502204","name":"丙麻乡"},{"code":"530502205","name":"瓦渡乡"},{"code":"530502206","name":"水寨乡"},{"code":"530502207","name":"瓦马彝族白族乡"},{"code":"530502208","name":"瓦房彝族苗族乡"},{"code":"530502209","name":"杨柳白族彝族乡"},{"code":"530502210","name":"芒宽彝族傣族乡"},{"code":"530502401","name":"保山工贸园区"}]},{"code":"530521","name":"施甸县","children":[{"code":"530521101","name":"甸阳镇"},{"code":"530521102","name":"由旺镇"},{"code":"530521103","name":"姚关镇"},{"code":"530521104","name":"仁和镇"},{"code":"530521105","name":"太平镇"},{"code":"530521201","name":"万兴乡"},{"code":"530521202","name":"摆榔彝族布朗族乡"},{"code":"530521203","name":"酒房乡"},{"code":"530521204","name":"旧城乡"},{"code":"530521205","name":"木老元布朗族彝族乡"},{"code":"530521206","name":"老麦乡"},{"code":"530521207","name":"何元乡"},{"code":"530521208","name":"水长乡"}]},{"code":"530523","name":"龙陵县","children":[{"code":"530523101","name":"龙山镇"},{"code":"530523102","name":"镇安镇"},{"code":"530523103","name":"勐糯镇"},{"code":"530523104","name":"腊勐镇"},{"code":"530523105","name":"象达镇"},{"code":"530523201","name":"龙江乡"},{"code":"530523203","name":"碧寨乡"},{"code":"530523204","name":"龙新乡"},{"code":"530523206","name":"平达乡"},{"code":"530523207","name":"木城彝族傈僳族乡"}]},{"code":"530524","name":"昌宁县","children":[{"code":"530524101","name":"田园镇"},{"code":"530524102","name":"漭水镇"},{"code":"530524103","name":"柯街镇"},{"code":"530524104","name":"卡斯镇"},{"code":"530524105","name":"勐统镇"},{"code":"530524106","name":"温泉镇"},{"code":"530524107","name":"大田坝镇"},{"code":"530524108","name":"鸡飞镇"},{"code":"530524109","name":"翁堵镇"},{"code":"530524205","name":"湾甸傣族乡"},{"code":"530524206","name":"更戛乡"},{"code":"530524207","name":"珠街彝族乡"},{"code":"530524208","name":"耈街彝族苗族乡"}]},{"code":"530581","name":"腾冲市","children":[{"code":"530581001","name":"腾越街道"},{"code":"530581102","name":"固东镇"},{"code":"530581103","name":"滇滩镇"},{"code":"530581104","name":"猴桥镇"},{"code":"530581105","name":"和顺镇"},{"code":"530581106","name":"界头镇"},{"code":"530581107","name":"曲石镇"},{"code":"530581108","name":"明光镇"},{"code":"530581109","name":"中和镇"},{"code":"530581110","name":"芒棒镇"},{"code":"530581111","name":"荷花镇"},{"code":"530581201","name":"马站乡"},{"code":"530581202","name":"北海乡"},{"code":"530581203","name":"清水乡"},{"code":"530581204","name":"五合乡"},{"code":"530581205","name":"新华乡"},{"code":"530581206","name":"蒲川乡"},{"code":"530581207","name":"团田乡"}]}]},{"code":"5306","name":"昭通市","children":[{"code":"530602","name":"昭阳区","children":[{"code":"530602001","name":"凤凰街道"},{"code":"530602002","name":"龙泉街道"},{"code":"530602003","name":"太平街道"},{"code":"530602004","name":"北闸街道"},{"code":"530602101","name":"旧圃镇"},{"code":"530602102","name":"永丰镇"},{"code":"530602104","name":"盘河镇"},{"code":"530602105","name":"靖安镇"},{"code":"530602106","name":"洒渔镇"},{"code":"530602107","name":"乐居镇"},{"code":"530602108","name":"苏家院镇"},{"code":"530602109","name":"大山包镇"},{"code":"530602110","name":"炎山镇"},{"code":"530602201","name":"布嘎回族乡"},{"code":"530602202","name":"守望回族乡"},{"code":"530602203","name":"小龙洞回族彝族乡"},{"code":"530602206","name":"青岗岭回族彝族乡"},{"code":"530602210","name":"苏甲乡"},{"code":"530602212","name":"大寨子乡"},{"code":"530602214","name":"田坝乡"}]},{"code":"530621","name":"鲁甸县","children":[{"code":"530621001","name":"文屏街道"},{"code":"530621002","name":"砚池街道"},{"code":"530621102","name":"水磨镇"},{"code":"530621103","name":"龙头山镇"},{"code":"530621104","name":"小寨镇"},{"code":"530621105","name":"江底镇"},{"code":"530621106","name":"火德红镇"},{"code":"530621107","name":"龙树镇"},{"code":"530621108","name":"新街镇"},{"code":"530621109","name":"梭山镇"},{"code":"530621110","name":"乐红镇"},{"code":"530621201","name":"桃源回族乡"},{"code":"530621202","name":"茨院回族乡"}]},{"code":"530622","name":"巧家县","children":[{"code":"530622001","name":"玉屏街道"},{"code":"530622002","name":"白鹤滩街道"},{"code":"530622102","name":"大寨镇"},{"code":"530622103","name":"小河镇"},{"code":"530622104","name":"药山镇"},{"code":"530622105","name":"马树镇"},{"code":"530622106","name":"老店镇"},{"code":"530622107","name":"茂租镇"},{"code":"530622108","name":"东坪镇"},{"code":"530622109","name":"新店镇"},{"code":"530622110","name":"崇溪镇"},{"code":"530622111","name":"金塘镇"},{"code":"530622112","name":"蒙姑镇"},{"code":"530622203","name":"红山乡"},{"code":"530622205","name":"包谷垴乡"},{"code":"530622206","name":"中寨乡"},{"code":"530622209","name":"炉房乡"}]},{"code":"530623","name":"盐津县","children":[{"code":"530623101","name":"盐井镇"},{"code":"530623102","name":"普洱镇"},{"code":"530623103","name":"豆沙镇"},{"code":"530623104","name":"中和镇"},{"code":"530623105","name":"庙坝镇"},{"code":"530623106","name":"柿子镇"},{"code":"530623201","name":"兴隆乡"},{"code":"530623202","name":"落雁乡"},{"code":"530623203","name":"滩头乡"},{"code":"530623204","name":"牛寨乡"}]},{"code":"530624","name":"大关县","children":[{"code":"530624101","name":"翠华镇"},{"code":"530624102","name":"玉碗镇"},{"code":"530624103","name":"吉利镇"},{"code":"530624104","name":"天星镇"},{"code":"530624105","name":"木杆镇"},{"code":"530624106","name":"悦乐镇"},{"code":"530624107","name":"寿山镇"},{"code":"530624108","name":"高桥镇"},{"code":"530624201","name":"上高桥回族彝族苗族乡"}]},{"code":"530625","name":"永善县","children":[{"code":"530625001","name":"溪洛渡街道"},{"code":"530625002","name":"永兴街道"},{"code":"530625102","name":"桧溪镇"},{"code":"530625103","name":"黄华镇"},{"code":"530625104","name":"茂林镇"},{"code":"530625105","name":"大兴镇"},{"code":"530625106","name":"莲峰镇"},{"code":"530625107","name":"务基镇"},{"code":"530625108","name":"码口镇"},{"code":"530625201","name":"团结乡"},{"code":"530625202","name":"细沙乡"},{"code":"530625203","name":"青胜乡"},{"code":"530625205","name":"马楠苗族彝族乡"},{"code":"530625206","name":"水竹乡"},{"code":"530625207","name":"墨翰乡"},{"code":"530625208","name":"伍寨彝族苗族乡"}]},{"code":"530626","name":"绥江县","children":[{"code":"530626101","name":"中城镇"},{"code":"530626102","name":"南岸镇"},{"code":"530626103","name":"新滩镇"},{"code":"530626104","name":"会仪镇"},{"code":"530626105","name":"板栗镇"}]},{"code":"530627","name":"镇雄县","children":[{"code":"530627001","name":"乌峰街道"},{"code":"530627002","name":"南台街道"},{"code":"530627003","name":"旧府街道"},{"code":"530627102","name":"泼机镇"},{"code":"530627103","name":"黑树镇"},{"code":"530627104","name":"母享镇"},{"code":"530627105","name":"大湾镇"},{"code":"530627106","name":"以勒镇"},{"code":"530627107","name":"赤水源镇"},{"code":"530627108","name":"芒部镇"},{"code":"530627109","name":"雨河镇"},{"code":"530627110","name":"罗坎镇"},{"code":"530627111","name":"牛场镇"},{"code":"530627112","name":"五德镇"},{"code":"530627113","name":"坡头镇"},{"code":"530627114","name":"以古镇"},{"code":"530627115","name":"场坝镇"},{"code":"530627116","name":"塘房镇"},{"code":"530627117","name":"中屯镇"},{"code":"530627118","name":"木卓镇"},{"code":"530627119","name":"盐源镇"},{"code":"530627120","name":"碗厂镇"},{"code":"530627121","name":"坪上镇"},{"code":"530627202","name":"鱼洞乡"},{"code":"530627203","name":"花朗乡"},{"code":"530627204","name":"尖山乡"},{"code":"530627208","name":"杉树乡"},{"code":"530627209","name":"花山乡"},{"code":"530627211","name":"果珠彝族乡"},{"code":"530627212","name":"林口彝族苗族乡"}]},{"code":"530628","name":"彝良县","children":[{"code":"530628001","name":"角奎街道"},{"code":"530628002","name":"发界街道"},{"code":"530628102","name":"洛泽河镇"},{"code":"530628103","name":"牛街镇"},{"code":"530628104","name":"海子镇"},{"code":"530628105","name":"荞山镇"},{"code":"530628106","name":"龙安镇"},{"code":"530628107","name":"钟鸣镇"},{"code":"530628108","name":"两河镇"},{"code":"530628109","name":"小草坝镇"},{"code":"530628110","name":"龙海镇"},{"code":"530628201","name":"龙街苗族彝族乡"},{"code":"530628202","name":"奎香苗族彝族乡"},{"code":"530628203","name":"树林彝族苗族乡"},{"code":"530628211","name":"柳溪苗族乡"},{"code":"530628212","name":"洛旺苗族乡"}]},{"code":"530629","name":"威信县","children":[{"code":"530629101","name":"扎西镇"},{"code":"530629102","name":"旧城镇"},{"code":"530629103","name":"罗布镇"},{"code":"530629104","name":"麟凤镇"},{"code":"530629105","name":"长安镇"},{"code":"530629106","name":"庙沟镇"},{"code":"530629107","name":"水田镇"},{"code":"530629201","name":"双河苗族彝族乡"},{"code":"530629202","name":"高田乡"},{"code":"530629207","name":"三桃乡"}]},{"code":"530681","name":"水富市","children":[{"code":"530681001","name":"云富街道"},{"code":"530681101","name":"向家坝镇"},{"code":"530681102","name":"太平镇"},{"code":"530681103","name":"两碗镇"}]}]},{"code":"5307","name":"丽江市","children":[{"code":"530702","name":"古城区","children":[{"code":"530702001","name":"西安街道"},{"code":"530702002","name":"大研街道"},{"code":"530702003","name":"祥和街道"},{"code":"530702004","name":"束河街道"},{"code":"530702005","name":"金山街道"},{"code":"530702006","name":"开南街道"},{"code":"530702007","name":"文化街道"},{"code":"530702101","name":"金安镇"},{"code":"530702102","name":"七河镇"},{"code":"530702203","name":"大东乡"},{"code":"530702205","name":"金江白族乡"}]},{"code":"530721","name":"玉龙纳西族自治县","children":[{"code":"530721101","name":"黄山镇"},{"code":"530721102","name":"石鼓镇"},{"code":"530721103","name":"巨甸镇"},{"code":"530721104","name":"白沙镇"},{"code":"530721105","name":"拉市镇"},{"code":"530721106","name":"奉科镇"},{"code":"530721107","name":"鸣音镇"},{"code":"530721203","name":"太安乡"},{"code":"530721204","name":"龙蟠乡"},{"code":"530721205","name":"黎明傈僳族乡"},{"code":"530721206","name":"鲁甸乡"},{"code":"530721207","name":"塔城乡"},{"code":"530721208","name":"大具乡"},{"code":"530721209","name":"宝山乡"},{"code":"530721212","name":"石头白族乡"},{"code":"530721213","name":"九河白族乡"}]},{"code":"530722","name":"永胜县","children":[{"code":"530722101","name":"永北镇"},{"code":"530722102","name":"仁和镇"},{"code":"530722103","name":"期纳镇"},{"code":"530722104","name":"三川镇"},{"code":"530722105","name":"程海镇"},{"code":"530722106","name":"涛源镇"},{"code":"530722107","name":"鲁地拉镇"},{"code":"530722108","name":"片角镇"},{"code":"530722109","name":"顺州镇"},{"code":"530722201","name":"羊坪彝族乡"},{"code":"530722202","name":"六德傈僳族彝族乡"},{"code":"530722203","name":"东山傈僳族彝族乡"},{"code":"530722207","name":"光华傈僳族彝族乡"},{"code":"530722208","name":"松坪傈僳族彝族乡"},{"code":"530722209","name":"大安彝族纳西族乡"}]},{"code":"530723","name":"华坪县","children":[{"code":"530723101","name":"中心镇"},{"code":"530723102","name":"荣将镇"},{"code":"530723103","name":"兴泉镇"},{"code":"530723104","name":"石龙坝镇"},{"code":"530723202","name":"新庄傈僳族傣族乡"},{"code":"530723203","name":"通达傈僳族乡"},{"code":"530723204","name":"永兴傈僳族乡"},{"code":"530723205","name":"船房傈僳族傣族乡"}]},{"code":"530724","name":"宁蒗彝族自治县","children":[{"code":"530724001","name":"大兴街道"},{"code":"530724002","name":"紫玛街道"},{"code":"530724102","name":"永宁镇"},{"code":"530724103","name":"红桥镇"},{"code":"530724104","name":"战河镇"},{"code":"530724201","name":"拉伯乡"},{"code":"530724203","name":"翠玉傈僳族普米族乡"},{"code":"530724205","name":"宁利乡"},{"code":"530724206","name":"金棉乡"},{"code":"530724207","name":"西川乡"},{"code":"530724208","name":"西布河乡"},{"code":"530724210","name":"永宁坪乡"},{"code":"530724211","name":"跑马坪乡"},{"code":"530724212","name":"蝉战河乡"},{"code":"530724213","name":"新营盘乡"},{"code":"530724214","name":"烂泥箐乡"}]}]},{"code":"5308","name":"普洱市","children":[{"code":"530802","name":"思茅区","children":[{"code":"530802001","name":"思茅街道"},{"code":"530802102","name":"南屏镇"},{"code":"530802103","name":"倚象镇"},{"code":"530802104","name":"思茅港镇"},{"code":"530802105","name":"六顺镇"},{"code":"530802201","name":"龙潭彝族傣族乡"},{"code":"530802202","name":"云仙彝族乡"}]},{"code":"530821","name":"宁洱哈尼族彝族自治县","children":[{"code":"530821101","name":"宁洱镇"},{"code":"530821102","name":"磨黑镇"},{"code":"530821103","name":"德化镇"},{"code":"530821104","name":"同心镇"},{"code":"530821105","name":"勐先镇"},{"code":"530821106","name":"梅子镇"},{"code":"530821201","name":"德安乡"},{"code":"530821205","name":"普义乡"},{"code":"530821206","name":"黎明乡"}]},{"code":"530822","name":"墨江哈尼族自治县","children":[{"code":"530822101","name":"联珠镇"},{"code":"530822102","name":"通关镇"},{"code":"530822103","name":"龙坝镇"},{"code":"530822104","name":"新安镇"},{"code":"530822105","name":"团田镇"},{"code":"530822106","name":"新抚镇"},{"code":"530822107","name":"景星镇"},{"code":"530822108","name":"鱼塘镇"},{"code":"530822109","name":"文武镇"},{"code":"530822110","name":"坝溜镇"},{"code":"530822111","name":"泗南江镇"},{"code":"530822112","name":"雅邑镇"},{"code":"530822203","name":"孟弄彝族乡"},{"code":"530822208","name":"龙潭乡"},{"code":"530822212","name":"那哈乡"}]},{"code":"530823","name":"景东彝族自治县","children":[{"code":"530823101","name":"锦屏镇"},{"code":"530823102","name":"文井镇"},{"code":"530823103","name":"漫湾镇"},{"code":"530823104","name":"大朝山东镇"},{"code":"530823105","name":"花山镇"},{"code":"530823106","name":"大街镇"},{"code":"530823107","name":"太忠镇"},{"code":"530823108","name":"文龙镇"},{"code":"530823109","name":"安定镇"},{"code":"530823110","name":"景福镇"},{"code":"530823201","name":"曼等乡"},{"code":"530823205","name":"龙街乡"},{"code":"530823208","name":"林街乡"}]},{"code":"530824","name":"景谷傣族彝族自治县","children":[{"code":"530824101","name":"威远镇"},{"code":"530824102","name":"永平镇"},{"code":"530824103","name":"正兴镇"},{"code":"530824104","name":"民乐镇"},{"code":"530824105","name":"凤山镇"},{"code":"530824106","name":"景谷镇"},{"code":"530824201","name":"碧安乡"},{"code":"530824204","name":"益智乡"},{"code":"530824205","name":"半坡乡"},{"code":"530824206","name":"勐班乡"}]},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县","children":[{"code":"530825101","name":"恩乐镇"},{"code":"530825102","name":"按板镇"},{"code":"530825103","name":"勐大镇"},{"code":"530825104","name":"者东镇"},{"code":"530825105","name":"九甲镇"},{"code":"530825106","name":"古城镇"},{"code":"530825107","name":"振太镇"},{"code":"530825108","name":"和平镇"},{"code":"530825201","name":"田坝乡"}]},{"code":"530826","name":"江城哈尼族彝族自治县","children":[{"code":"530826101","name":"勐烈镇"},{"code":"530826102","name":"整董镇"},{"code":"530826103","name":"曲水镇"},{"code":"530826104","name":"宝藏镇"},{"code":"530826105","name":"康平镇"},{"code":"530826202","name":"国庆乡"},{"code":"530826203","name":"嘉禾乡"}]},{"code":"530827","name":"孟连傣族拉祜族佤族自治县","children":[{"code":"530827101","name":"娜允镇"},{"code":"530827102","name":"勐马镇"},{"code":"530827103","name":"芒信镇"},{"code":"530827104","name":"富岩镇"},{"code":"530827201","name":"景信乡"},{"code":"530827202","name":"公信乡"}]},{"code":"530828","name":"澜沧拉祜族自治县","children":[{"code":"530828101","name":"勐朗镇"},{"code":"530828102","name":"上允镇"},{"code":"530828103","name":"糯扎渡镇"},{"code":"530828104","name":"惠民镇"},{"code":"530828105","name":"东回镇"},{"code":"530828201","name":"发展河哈尼族乡"},{"code":"530828202","name":"谦六彝族乡"},{"code":"530828203","name":"糯福乡"},{"code":"530828204","name":"东河乡"},{"code":"530828205","name":"大山乡"},{"code":"530828206","name":"南岭乡"},{"code":"530828207","name":"雪林佤族乡"},{"code":"530828208","name":"木戛乡"},{"code":"530828209","name":"酒井哈尼族乡"},{"code":"530828212","name":"拉巴乡"},{"code":"530828213","name":"竹塘乡"},{"code":"530828214","name":"富邦乡"},{"code":"530828215","name":"安康佤族乡"},{"code":"530828216","name":"文东佤族乡"},{"code":"530828217","name":"富东乡"}]},{"code":"530829","name":"西盟佤族自治县","children":[{"code":"530829101","name":"勐梭镇"},{"code":"530829102","name":"勐卡镇"},{"code":"530829103","name":"翁嘎科镇"},{"code":"530829104","name":"中课镇"},{"code":"530829105","name":"新厂镇"},{"code":"530829202","name":"力所拉祜族乡"},{"code":"530829203","name":"岳宋乡"}]}]},{"code":"5309","name":"临沧市","children":[{"code":"530902","name":"临翔区","children":[{"code":"530902001","name":"凤翔街道"},{"code":"530902002","name":"忙畔街道"},{"code":"530902102","name":"博尚镇"},{"code":"530902202","name":"南美拉祜族乡"},{"code":"530902203","name":"蚂蚁堆乡"},{"code":"530902204","name":"章驮乡"},{"code":"530902206","name":"圈内乡"},{"code":"530902207","name":"马台乡"},{"code":"530902208","name":"邦东乡"},{"code":"530902209","name":"平村彝族傣族乡"}]},{"code":"530921","name":"凤庆县","children":[{"code":"530921101","name":"凤山镇"},{"code":"530921102","name":"鲁史镇"},{"code":"530921103","name":"小湾镇"},{"code":"530921104","name":"营盘镇"},{"code":"530921105","name":"三岔河镇"},{"code":"530921106","name":"勐佑镇"},{"code":"530921107","name":"雪山镇"},{"code":"530921108","name":"洛党镇"},{"code":"530921201","name":"诗礼乡"},{"code":"530921202","name":"新华彝族苗族乡"},{"code":"530921204","name":"大寺乡"},{"code":"530921206","name":"腰街彝族乡"},{"code":"530921207","name":"郭大寨彝族白族乡"}]},{"code":"530922","name":"云县","children":[{"code":"530922101","name":"爱华镇"},{"code":"530922102","name":"漫湾镇"},{"code":"530922103","name":"大朝山西镇"},{"code":"530922104","name":"涌宝镇"},{"code":"530922105","name":"茂兰镇"},{"code":"530922106","name":"幸福镇"},{"code":"530922107","name":"大寨镇"},{"code":"530922201","name":"忙怀彝族布朗族乡"},{"code":"530922202","name":"晓街乡"},{"code":"530922203","name":"茶房乡"},{"code":"530922204","name":"栗树彝族傣族乡"},{"code":"530922205","name":"后箐彝族乡"},{"code":"530922501","name":"幸福农场"},{"code":"530922502","name":"新城农场"}]},{"code":"530923","name":"永德县","children":[{"code":"530923101","name":"德党镇"},{"code":"530923102","name":"小勐统镇"},{"code":"530923103","name":"永康镇"},{"code":"530923203","name":"勐板乡"},{"code":"530923204","name":"亚练乡"},{"code":"530923205","name":"乌木龙彝族乡"},{"code":"530923206","name":"大雪山彝族拉祜族傣族乡"},{"code":"530923207","name":"班卡乡"},{"code":"530923208","name":"崇岗乡"},{"code":"530923209","name":"大山乡"},{"code":"530923401","name":"勐底农场"}]},{"code":"530924","name":"镇康县","children":[{"code":"530924101","name":"凤尾镇"},{"code":"530924102","name":"勐捧镇"},{"code":"530924103","name":"南伞镇"},{"code":"530924201","name":"忙丙乡"},{"code":"530924202","name":"勐堆乡"},{"code":"530924204","name":"木场乡"},{"code":"530924205","name":"军赛佤族拉祜族傈僳族德昂族乡"}]},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县","children":[{"code":"530925101","name":"勐勐镇"},{"code":"530925102","name":"勐库镇"},{"code":"530925201","name":"沙河乡"},{"code":"530925202","name":"大文乡"},{"code":"530925203","name":"忙糯乡"},{"code":"530925205","name":"邦丙乡"}]},{"code":"530926","name":"耿马傣族佤族自治县","children":[{"code":"530926100","name":"耿马镇"},{"code":"530926101","name":"勐永镇"},{"code":"530926102","name":"勐撒镇"},{"code":"530926103","name":"孟定镇"},{"code":"530926200","name":"大兴乡"},{"code":"530926201","name":"芒洪拉祜族布朗族乡"},{"code":"530926202","name":"四排山乡"},{"code":"530926203","name":"贺派乡"},{"code":"530926204","name":"勐简乡"},{"code":"530926401","name":"耿马华侨农场"},{"code":"530926402","name":"勐撒农场"},{"code":"530926403","name":"孟定农场"}]},{"code":"530927","name":"沧源佤族自治县","children":[{"code":"530927101","name":"勐董镇"},{"code":"530927102","name":"岩帅镇"},{"code":"530927103","name":"勐省镇"},{"code":"530927104","name":"芒卡镇"},{"code":"530927202","name":"单甲乡"},{"code":"530927203","name":"糯良乡"},{"code":"530927204","name":"勐来乡"},{"code":"530927205","name":"勐角傣族彝族拉祜族乡"},{"code":"530927206","name":"班洪乡"},{"code":"530927207","name":"班老乡"},{"code":"530927401","name":"勐省农场"}]}]},{"code":"5323","name":"楚雄彝族自治州","children":[{"code":"532301","name":"楚雄市","children":[{"code":"532301101","name":"鹿城镇"},{"code":"532301102","name":"东瓜镇"},{"code":"532301103","name":"吕合镇"},{"code":"532301104","name":"紫溪镇"},{"code":"532301105","name":"东华镇"},{"code":"532301106","name":"子午镇"},{"code":"532301107","name":"苍岭镇"},{"code":"532301108","name":"三街镇"},{"code":"532301109","name":"八角镇"},{"code":"532301110","name":"中山镇"},{"code":"532301111","name":"新村镇"},{"code":"532301112","name":"西舍路镇"},{"code":"532301201","name":"树苴乡"},{"code":"532301202","name":"大过口乡"},{"code":"532301203","name":"大地基乡"}]},{"code":"532302","name":"禄丰市","children":[{"code":"532302101","name":"金山镇"},{"code":"532302102","name":"仁兴镇"},{"code":"532302103","name":"碧城镇"},{"code":"532302104","name":"勤丰镇"},{"code":"532302105","name":"一平浪镇"},{"code":"532302106","name":"广通镇"},{"code":"532302107","name":"黑井镇"},{"code":"532302108","name":"土官镇"},{"code":"532302109","name":"彩云镇"},{"code":"532302110","name":"和平镇"},{"code":"532302111","name":"恐龙山镇"},{"code":"532302201","name":"中村乡"},{"code":"532302202","name":"高峰乡"},{"code":"532302203","name":"妥安乡"}]},{"code":"532322","name":"双柏县","children":[{"code":"532322101","name":"妥甸镇"},{"code":"532322102","name":"大庄镇"},{"code":"532322103","name":"法脿镇"},{"code":"532322104","name":"鄂嘉镇"},{"code":"532322105","name":"大麦地镇"},{"code":"532322201","name":"安龙堡乡"},{"code":"532322202","name":"爱尼山乡"},{"code":"532322203","name":"独田乡"}]},{"code":"532323","name":"牟定县","children":[{"code":"532323101","name":"共和镇"},{"code":"532323102","name":"新桥镇"},{"code":"532323103","name":"江坡镇"},{"code":"532323104","name":"凤屯镇"},{"code":"532323201","name":"蟠猫乡"},{"code":"532323202","name":"戌街乡"},{"code":"532323203","name":"安乐乡"}]},{"code":"532324","name":"南华县","children":[{"code":"532324101","name":"龙川镇"},{"code":"532324102","name":"沙桥镇"},{"code":"532324103","name":"五街镇"},{"code":"532324104","name":"红土坡镇"},{"code":"532324105","name":"马街镇"},{"code":"532324106","name":"兔街镇"},{"code":"532324201","name":"雨露白族乡"},{"code":"532324202","name":"一街乡"},{"code":"532324203","name":"罗武庄乡"},{"code":"532324204","name":"五顶山乡"}]},{"code":"532325","name":"姚安县","children":[{"code":"532325101","name":"栋川镇"},{"code":"532325102","name":"光禄镇"},{"code":"532325103","name":"前场镇"},{"code":"532325104","name":"弥兴镇"},{"code":"532325105","name":"太平镇"},{"code":"532325106","name":"官屯镇"},{"code":"532325201","name":"适中乡"},{"code":"532325202","name":"左门乡"},{"code":"532325204","name":"大河口乡"}]},{"code":"532326","name":"大姚县","children":[{"code":"532326101","name":"金碧镇"},{"code":"532326102","name":"石羊镇"},{"code":"532326103","name":"六苴镇"},{"code":"532326104","name":"龙街镇"},{"code":"532326105","name":"新街镇"},{"code":"532326106","name":"赵家店镇"},{"code":"532326107","name":"三岔河镇"},{"code":"532326108","name":"桂花镇"},{"code":"532326204","name":"昙华乡"},{"code":"532326206","name":"湾碧傣族傈僳族乡"},{"code":"532326207","name":"铁锁乡"},{"code":"532326208","name":"三台乡"}]},{"code":"532327","name":"永仁县","children":[{"code":"532327101","name":"永定镇"},{"code":"532327102","name":"宜就镇"},{"code":"532327103","name":"中和镇"},{"code":"532327201","name":"莲池乡"},{"code":"532327202","name":"维的乡"},{"code":"532327203","name":"猛虎乡"},{"code":"532327204","name":"永兴傣族乡"}]},{"code":"532328","name":"元谋县","children":[{"code":"532328101","name":"元马镇"},{"code":"532328103","name":"黄瓜园镇"},{"code":"532328104","name":"羊街镇"},{"code":"532328202","name":"老城乡"},{"code":"532328203","name":"物茂乡"},{"code":"532328204","name":"江边乡"},{"code":"532328205","name":"新华乡"},{"code":"532328206","name":"平田乡"},{"code":"532328209","name":"凉山乡"},{"code":"532328210","name":"姜驿乡"}]},{"code":"532329","name":"武定县","children":[{"code":"532329101","name":"狮山镇"},{"code":"532329102","name":"高桥镇"},{"code":"532329103","name":"猫街镇"},{"code":"532329104","name":"插甸镇"},{"code":"532329105","name":"白路镇"},{"code":"532329106","name":"万德镇"},{"code":"532329107","name":"己衣镇"},{"code":"532329202","name":"田心乡"},{"code":"532329203","name":"发窝乡"},{"code":"532329207","name":"环州乡"},{"code":"532329208","name":"东坡傣族乡"}]}]},{"code":"5325","name":"红河哈尼族彝族自治州","children":[{"code":"532501","name":"个旧市","children":[{"code":"532501001","name":"城区街道"},{"code":"532501002","name":"沙甸街道"},{"code":"532501003","name":"大屯街道"},{"code":"532501004","name":"锡城街道"},{"code":"532501103","name":"鸡街镇"},{"code":"532501106","name":"老厂镇"},{"code":"532501107","name":"卡房镇"},{"code":"532501108","name":"蔓耗镇"},{"code":"532501202","name":"贾沙乡"},{"code":"532501203","name":"保和乡"}]},{"code":"532502","name":"开远市","children":[{"code":"532502001","name":"乐白道街道"},{"code":"532502002","name":"灵泉街道"},{"code":"532502101","name":"中和营镇"},{"code":"532502102","name":"小龙潭镇"},{"code":"532502201","name":"大庄回族乡"},{"code":"532502202","name":"羊街乡"},{"code":"532502203","name":"碑格乡"}]},{"code":"532503","name":"蒙自市","children":[{"code":"532503001","name":"文澜街道"},{"code":"532503002","name":"雨过铺街道"},{"code":"532503003","name":"观澜街道"},{"code":"532503004","name":"文萃街道"},{"code":"532503005","name":"新安所街道"},{"code":"532503102","name":"草坝镇"},{"code":"532503105","name":"芷村镇"},{"code":"532503106","name":"鸣鹫镇"},{"code":"532503107","name":"冷泉镇"},{"code":"532503201","name":"期路白苗族乡"},{"code":"532503202","name":"老寨苗族乡"},{"code":"532503203","name":"水田乡"},{"code":"532503204","name":"西北勒乡"}]},{"code":"532504","name":"弥勒市","children":[{"code":"532504001","name":"弥阳街道"},{"code":"532504102","name":"新哨镇"},{"code":"532504103","name":"虹溪镇"},{"code":"532504104","name":"竹园镇"},{"code":"532504105","name":"朋普镇"},{"code":"532504106","name":"巡检司镇"},{"code":"532504107","name":"西一镇"},{"code":"532504108","name":"西二镇"},{"code":"532504109","name":"西三镇"},{"code":"532504110","name":"东山镇"},{"code":"532504202","name":"五山乡"},{"code":"532504203","name":"江边乡"}]},{"code":"532523","name":"屏边苗族自治县","children":[{"code":"532523101","name":"玉屏镇"},{"code":"532523102","name":"新现镇"},{"code":"532523103","name":"和平镇"},{"code":"532523104","name":"白河镇"},{"code":"532523204","name":"白云乡"},{"code":"532523205","name":"新华乡"},{"code":"532523206","name":"湾塘乡"}]},{"code":"532524","name":"建水县","children":[{"code":"532524101","name":"临安镇"},{"code":"532524102","name":"官厅镇"},{"code":"532524103","name":"西庄镇"},{"code":"532524104","name":"青龙镇"},{"code":"532524105","name":"南庄镇"},{"code":"532524106","name":"岔科镇"},{"code":"532524107","name":"曲江镇"},{"code":"532524108","name":"面甸镇"},{"code":"532524201","name":"普雄乡"},{"code":"532524202","name":"李浩寨乡"},{"code":"532524203","name":"坡头乡"},{"code":"532524204","name":"盘江乡"},{"code":"532524205","name":"利民乡"},{"code":"532524206","name":"甸尾乡"}]},{"code":"532525","name":"石屏县","children":[{"code":"532525101","name":"异龙镇"},{"code":"532525102","name":"宝秀镇"},{"code":"532525103","name":"坝心镇"},{"code":"532525104","name":"龙朋镇"},{"code":"532525105","name":"龙武镇"},{"code":"532525106","name":"哨冲镇"},{"code":"532525107","name":"牛街镇"},{"code":"532525201","name":"新城乡"},{"code":"532525202","name":"大桥乡"}]},{"code":"532527","name":"泸西县","children":[{"code":"532527101","name":"中枢镇"},{"code":"532527102","name":"金马镇"},{"code":"532527104","name":"旧城镇"},{"code":"532527106","name":"午街铺镇"},{"code":"532527107","name":"白水镇"},{"code":"532527201","name":"向阳乡"},{"code":"532527202","name":"三塘乡"},{"code":"532527203","name":"永宁乡"}]},{"code":"532528","name":"元阳县","children":[{"code":"532528101","name":"南沙镇"},{"code":"532528102","name":"新街镇"},{"code":"532528103","name":"牛角寨镇"},{"code":"532528203","name":"沙拉托乡"},{"code":"532528204","name":"嘎娘乡"},{"code":"532528205","name":"上新城乡"},{"code":"532528206","name":"小新街乡"},{"code":"532528207","name":"逢春岭乡"},{"code":"532528208","name":"大坪乡"},{"code":"532528209","name":"攀枝花乡"},{"code":"532528210","name":"黄茅岭乡"},{"code":"532528211","name":"黄草岭乡"},{"code":"532528212","name":"俄扎乡"},{"code":"532528213","name":"马街乡"}]},{"code":"532529","name":"红河县","children":[{"code":"532529101","name":"迤萨镇"},{"code":"532529102","name":"甲寅镇"},{"code":"532529103","name":"宝华镇"},{"code":"532529104","name":"乐育镇"},{"code":"532529105","name":"浪堤镇"},{"code":"532529203","name":"洛恩乡"},{"code":"532529204","name":"石头寨乡"},{"code":"532529205","name":"阿扎河乡"},{"code":"532529208","name":"大羊街乡"},{"code":"532529209","name":"车古乡"},{"code":"532529210","name":"架车乡"},{"code":"532529211","name":"垤玛乡"},{"code":"532529212","name":"三村乡"}]},{"code":"532530","name":"金平苗族瑶族傣族自治县","children":[{"code":"532530101","name":"金河镇"},{"code":"532530102","name":"金水河镇"},{"code":"532530103","name":"勐拉镇"},{"code":"532530104","name":"老勐镇"},{"code":"532530202","name":"铜厂乡"},{"code":"532530204","name":"老集寨乡"},{"code":"532530205","name":"者米拉祜族乡"},{"code":"532530206","name":"阿得博乡"},{"code":"532530207","name":"沙依坡乡"},{"code":"532530208","name":"大寨乡"},{"code":"532530209","name":"马鞍底乡"},{"code":"532530210","name":"勐桥乡"},{"code":"532530211","name":"营盘乡"}]},{"code":"532531","name":"绿春县","children":[{"code":"532531101","name":"大兴镇"},{"code":"532531102","name":"牛孔镇"},{"code":"532531103","name":"大黑山镇"},{"code":"532531104","name":"平河镇"},{"code":"532531201","name":"戈奎乡"},{"code":"532531203","name":"大水沟乡"},{"code":"532531205","name":"半坡乡"},{"code":"532531206","name":"骑马坝乡"},{"code":"532531207","name":"三猛乡"}]},{"code":"532532","name":"河口瑶族自治县","children":[{"code":"532532101","name":"河口镇"},{"code":"532532102","name":"南溪镇"},{"code":"532532201","name":"老范寨乡"},{"code":"532532202","name":"桥头苗族壮族乡"},{"code":"532532203","name":"瑶山乡"},{"code":"532532204","name":"莲花滩乡"}]}]},{"code":"5326","name":"文山壮族苗族自治州","children":[{"code":"532601","name":"文山市","children":[{"code":"532601001","name":"开化街道"},{"code":"532601002","name":"卧龙街道"},{"code":"532601003","name":"新平街道"},{"code":"532601102","name":"古木镇"},{"code":"532601103","name":"平坝镇"},{"code":"532601104","name":"马塘镇"},{"code":"532601105","name":"德厚镇"},{"code":"532601106","name":"小街镇"},{"code":"532601107","name":"薄竹镇"},{"code":"532601108","name":"追栗街镇"},{"code":"532601201","name":"东山彝族乡"},{"code":"532601202","name":"柳井彝族乡"},{"code":"532601203","name":"新街乡"},{"code":"532601204","name":"喜古乡"},{"code":"532601205","name":"坝心彝族乡"},{"code":"532601206","name":"秉烈彝族乡"},{"code":"532601207","name":"红甸回族乡"},{"code":"532601401","name":"文山市三七产业园区管理委员会"},{"code":"532601402","name":"文山市马塘工业园区管理委员会"}]},{"code":"532622","name":"砚山县","children":[{"code":"532622101","name":"江那镇"},{"code":"532622102","name":"平远镇"},{"code":"532622103","name":"稼依镇"},{"code":"532622104","name":"阿猛镇"},{"code":"532622201","name":"阿舍彝族乡"},{"code":"532622202","name":"维摩彝族乡"},{"code":"532622203","name":"盘龙彝族乡"},{"code":"532622204","name":"八嘎乡"},{"code":"532622205","name":"者腊乡"},{"code":"532622206","name":"蚌峨乡"},{"code":"532622207","name":"干河彝族乡"}]},{"code":"532623","name":"西畴县","children":[{"code":"532623101","name":"西洒镇"},{"code":"532623102","name":"兴街镇"},{"code":"532623201","name":"蚌谷乡"},{"code":"532623202","name":"莲花塘乡"},{"code":"532623203","name":"新马街乡"},{"code":"532623204","name":"柏林乡"},{"code":"532623205","name":"法斗乡"},{"code":"532623206","name":"董马乡"},{"code":"532623207","name":"鸡街乡"}]},{"code":"532624","name":"麻栗坡县","children":[{"code":"532624101","name":"麻栗镇"},{"code":"532624102","name":"大坪镇"},{"code":"532624103","name":"董干镇"},{"code":"532624104","name":"天保镇"},{"code":"532624201","name":"猛硐瑶族乡"},{"code":"532624202","name":"下金厂乡"},{"code":"532624203","name":"八布乡"},{"code":"532624204","name":"六河乡"},{"code":"532624205","name":"杨万乡"},{"code":"532624206","name":"铁厂乡"},{"code":"532624207","name":"马街乡"}]},{"code":"532625","name":"马关县","children":[{"code":"532625101","name":"马白镇"},{"code":"532625102","name":"八寨镇"},{"code":"532625103","name":"仁和镇"},{"code":"532625104","name":"木厂镇"},{"code":"532625105","name":"夹寒箐镇"},{"code":"532625106","name":"小坝子镇"},{"code":"532625107","name":"都龙镇"},{"code":"532625108","name":"金厂镇"},{"code":"532625109","name":"坡脚镇"},{"code":"532625201","name":"南捞乡"},{"code":"532625202","name":"大栗树乡"},{"code":"532625203","name":"篾厂乡"},{"code":"532625204","name":"古林箐乡"},{"code":"532625501","name":"健康农场管理区管理委员会"}]},{"code":"532626","name":"丘北县","children":[{"code":"532626101","name":"锦屏镇"},{"code":"532626102","name":"曰者镇"},{"code":"532626103","name":"双龙营镇"},{"code":"532626201","name":"八道哨彝族乡"},{"code":"532626202","name":"天星乡"},{"code":"532626203","name":"平寨乡"},{"code":"532626204","name":"树皮彝族乡"},{"code":"532626205","name":"腻脚彝族乡"},{"code":"532626206","name":"新店彝族乡"},{"code":"532626207","name":"舍得彝族乡"},{"code":"532626208","name":"官寨乡"},{"code":"532626209","name":"温浏乡"}]},{"code":"532627","name":"广南县","children":[{"code":"532627101","name":"莲城镇"},{"code":"532627102","name":"八宝镇"},{"code":"532627103","name":"南屏镇"},{"code":"532627104","name":"珠街镇"},{"code":"532627105","name":"那洒镇"},{"code":"532627106","name":"珠琳镇"},{"code":"532627107","name":"坝美镇"},{"code":"532627201","name":"董堡乡"},{"code":"532627202","name":"旧莫乡"},{"code":"532627203","name":"杨柳井乡"},{"code":"532627204","name":"板蚌乡"},{"code":"532627205","name":"曙光乡"},{"code":"532627206","name":"黑支果乡"},{"code":"532627207","name":"篆角乡"},{"code":"532627208","name":"五珠乡"},{"code":"532627209","name":"者兔乡"},{"code":"532627210","name":"者太乡"},{"code":"532627211","name":"底圩乡"}]},{"code":"532628","name":"富宁县","children":[{"code":"532628101","name":"新华镇"},{"code":"532628102","name":"归朝镇"},{"code":"532628103","name":"剥隘镇"},{"code":"532628104","name":"里达镇"},{"code":"532628105","name":"田蓬镇"},{"code":"532628106","name":"木央镇"},{"code":"532628201","name":"板仑乡"},{"code":"532628202","name":"谷拉乡"},{"code":"532628203","name":"者桑乡"},{"code":"532628204","name":"那能乡"},{"code":"532628205","name":"洞波瑶族乡"},{"code":"532628206","name":"阿用乡"},{"code":"532628207","name":"花甲乡"}]}]},{"code":"5328","name":"西双版纳傣族自治州","children":[{"code":"532801","name":"景洪市","children":[{"code":"532801001","name":"允景洪街道"},{"code":"532801002","name":"江北街道"},{"code":"532801102","name":"嘎洒镇"},{"code":"532801103","name":"勐龙镇"},{"code":"532801104","name":"勐罕镇"},{"code":"532801105","name":"勐养镇"},{"code":"532801106","name":"普文镇"},{"code":"532801202","name":"景哈哈尼族乡"},{"code":"532801203","name":"景讷乡"},{"code":"532801204","name":"大渡岗乡"},{"code":"532801205","name":"勐旺乡"},{"code":"532801206","name":"基诺山基诺族乡"},{"code":"532801401","name":"景洪农场"},{"code":"532801402","name":"东风农场"},{"code":"532801403","name":"橄榄坝农场"},{"code":"532801404","name":"勐养农场"},{"code":"532801405","name":"大渡岗农场"},{"code":"532801406","name":"西双版纳州旅游度假区管理委员会"},{"code":"532801407","name":"景洪工业园区"},{"code":"532801408","name":"西双版纳监狱"}]},{"code":"532822","name":"勐海县","children":[{"code":"532822101","name":"勐海镇"},{"code":"532822102","name":"打洛镇"},{"code":"532822103","name":"勐混镇"},{"code":"532822104","name":"勐遮镇"},{"code":"532822105","name":"勐满镇"},{"code":"532822106","name":"勐阿镇"},{"code":"532822201","name":"勐宋乡"},{"code":"532822202","name":"勐往乡"},{"code":"532822203","name":"格朗和哈尼族乡"},{"code":"532822204","name":"布朗山布朗族乡"},{"code":"532822205","name":"西定哈尼族布朗族乡"},{"code":"532822401","name":"黎明农场"}]},{"code":"532823","name":"勐腊县","children":[{"code":"532823101","name":"勐腊镇"},{"code":"532823102","name":"勐捧镇"},{"code":"532823103","name":"勐满镇"},{"code":"532823104","name":"勐仑镇"},{"code":"532823105","name":"磨憨镇"},{"code":"532823106","name":"勐伴镇"},{"code":"532823107","name":"关累镇"},{"code":"532823108","name":"易武镇"},{"code":"532823202","name":"象明彝族乡"},{"code":"532823203","name":"瑶区瑶族乡"},{"code":"532823401","name":"勐腊农场"},{"code":"532823402","name":"勐捧农场"},{"code":"532823403","name":"勐满农场"},{"code":"532823404","name":"勐醒农场"}]}]},{"code":"5329","name":"大理白族自治州","children":[{"code":"532901","name":"大理市","children":[{"code":"532901003","name":"下关街道"},{"code":"532901004","name":"太和街道"},{"code":"532901005","name":"满江街道"},{"code":"532901102","name":"大理镇"},{"code":"532901103","name":"凤仪镇"},{"code":"532901104","name":"喜洲镇"},{"code":"532901105","name":"海东镇"},{"code":"532901106","name":"挖色镇"},{"code":"532901107","name":"湾桥镇"},{"code":"532901108","name":"银桥镇"},{"code":"532901109","name":"双廊镇"},{"code":"532901110","name":"上关镇"},{"code":"532901201","name":"太邑彝族乡"}]},{"code":"532922","name":"漾濞彝族自治县","children":[{"code":"532922101","name":"苍山西镇"},{"code":"532922102","name":"漾江镇"},{"code":"532922103","name":"平坡镇"},{"code":"532922104","name":"顺濞镇"},{"code":"532922201","name":"富恒乡"},{"code":"532922202","name":"太平乡"},{"code":"532922204","name":"瓦厂乡"},{"code":"532922205","name":"龙潭乡"},{"code":"532922206","name":"鸡街乡"}]},{"code":"532923","name":"祥云县","children":[{"code":"532923101","name":"祥城镇"},{"code":"532923102","name":"沙龙镇"},{"code":"532923103","name":"云南驿镇"},{"code":"532923104","name":"下庄镇"},{"code":"532923105","name":"普棚镇"},{"code":"532923106","name":"刘厂镇"},{"code":"532923107","name":"禾甸镇"},{"code":"532923108","name":"米甸镇"},{"code":"532923201","name":"鹿鸣乡"},{"code":"532923202","name":"东山彝族乡"}]},{"code":"532924","name":"宾川县","children":[{"code":"532924101","name":"金牛镇"},{"code":"532924102","name":"宾居镇"},{"code":"532924103","name":"州城镇"},{"code":"532924104","name":"大营镇"},{"code":"532924105","name":"鸡足山镇"},{"code":"532924106","name":"力角镇"},{"code":"532924107","name":"平川镇"},{"code":"532924108","name":"乔甸镇"},{"code":"532924201","name":"钟英傈僳族彝族乡"},{"code":"532924202","name":"拉乌彝族乡"}]},{"code":"532925","name":"弥渡县","children":[{"code":"532925101","name":"弥城镇"},{"code":"532925102","name":"红岩镇"},{"code":"532925103","name":"新街镇"},{"code":"532925104","name":"寅街镇"},{"code":"532925105","name":"苴力镇"},{"code":"532925106","name":"密祉镇"},{"code":"532925203","name":"德苴乡"},{"code":"532925204","name":"牛街彝族乡"}]},{"code":"532926","name":"南涧彝族自治县","children":[{"code":"532926101","name":"南涧镇"},{"code":"532926102","name":"小湾东镇"},{"code":"532926103","name":"公郎镇"},{"code":"532926104","name":"宝华镇"},{"code":"532926105","name":"无量山镇"},{"code":"532926201","name":"拥翠乡"},{"code":"532926202","name":"乐秋乡"},{"code":"532926203","name":"碧溪乡"}]},{"code":"532927","name":"巍山彝族回族自治县","children":[{"code":"532927101","name":"南诏镇"},{"code":"532927102","name":"庙街镇"},{"code":"532927103","name":"大仓镇"},{"code":"532927104","name":"永建镇"},{"code":"532927201","name":"巍宝山乡"},{"code":"532927202","name":"马鞍山乡"},{"code":"532927203","name":"紫金乡"},{"code":"532927204","name":"五印乡"},{"code":"532927205","name":"牛街乡"},{"code":"532927206","name":"青华乡"}]},{"code":"532928","name":"永平县","children":[{"code":"532928101","name":"博南镇"},{"code":"532928102","name":"杉阳镇"},{"code":"532928103","name":"龙街镇"},{"code":"532928201","name":"龙门乡"},{"code":"532928202","name":"北斗彝族乡"},{"code":"532928203","name":"厂街彝族乡"},{"code":"532928204","name":"水泄彝族乡"}]},{"code":"532929","name":"云龙县","children":[{"code":"532929101","name":"诺邓镇"},{"code":"532929102","name":"功果桥镇"},{"code":"532929103","name":"漕涧镇"},{"code":"532929104","name":"白石镇"},{"code":"532929201","name":"宝丰乡"},{"code":"532929202","name":"关坪乡"},{"code":"532929203","name":"团结彝族乡"},{"code":"532929204","name":"长新乡"},{"code":"532929205","name":"检槽乡"},{"code":"532929206","name":"苗尾傈僳族乡"},{"code":"532929207","name":"民建乡"}]},{"code":"532930","name":"洱源县","children":[{"code":"532930101","name":"茈碧湖镇"},{"code":"532930102","name":"邓川镇"},{"code":"532930103","name":"右所镇"},{"code":"532930104","name":"三营镇"},{"code":"532930105","name":"凤羽镇"},{"code":"532930106","name":"乔后镇"},{"code":"532930201","name":"牛街乡"},{"code":"532930202","name":"炼铁乡"},{"code":"532930203","name":"西山乡"}]},{"code":"532931","name":"剑川县","children":[{"code":"532931101","name":"金华镇"},{"code":"532931102","name":"老君山镇"},{"code":"532931103","name":"甸南镇"},{"code":"532931104","name":"沙溪镇"},{"code":"532931105","name":"马登镇"},{"code":"532931201","name":"羊岑乡"},{"code":"532931202","name":"弥沙乡"},{"code":"532931203","name":"象图乡"}]},{"code":"532932","name":"鹤庆县","children":[{"code":"532932101","name":"云鹤镇"},{"code":"532932102","name":"辛屯镇"},{"code":"532932103","name":"松桂镇"},{"code":"532932104","name":"黄坪镇"},{"code":"532932105","name":"草海镇"},{"code":"532932106","name":"西邑镇"},{"code":"532932107","name":"龙开口镇"},{"code":"532932201","name":"金墩乡"},{"code":"532932203","name":"六合彝族乡"}]}]},{"code":"5331","name":"德宏傣族景颇族自治州","children":[{"code":"533102","name":"瑞丽市","children":[{"code":"533102001","name":"勐卯街道"},{"code":"533102102","name":"畹町镇"},{"code":"533102103","name":"弄岛镇"},{"code":"533102104","name":"姐相镇"},{"code":"533102202","name":"户育乡"},{"code":"533102203","name":"勐秀乡"},{"code":"533102400","name":"瑞丽农场管理委员会"},{"code":"533102401","name":"畹町农场管理委员会"}]},{"code":"533103","name":"芒市","children":[{"code":"533103001","name":"芒市勐焕街道"},{"code":"533103101","name":"芒市镇"},{"code":"533103102","name":"遮放镇"},{"code":"533103103","name":"勐戛镇"},{"code":"533103104","name":"芒海镇"},{"code":"533103105","name":"风平镇"},{"code":"533103201","name":"轩岗乡"},{"code":"533103202","name":"江东乡"},{"code":"533103203","name":"西山乡"},{"code":"533103204","name":"中山乡"},{"code":"533103205","name":"三台山德昂族乡"},{"code":"533103206","name":"五岔路乡"},{"code":"533103400","name":"芒市遮放农场管理委员会"}]},{"code":"533122","name":"梁河县","children":[{"code":"533122101","name":"遮岛镇"},{"code":"533122102","name":"芒东镇"},{"code":"533122103","name":"勐养镇"},{"code":"533122201","name":"平山乡"},{"code":"533122202","name":"小厂乡"},{"code":"533122203","name":"大厂乡"},{"code":"533122204","name":"九保阿昌族乡"},{"code":"533122205","name":"曩宋阿昌族乡"},{"code":"533122206","name":"河西乡"}]},{"code":"533123","name":"盈江县","children":[{"code":"533123101","name":"平原镇"},{"code":"533123102","name":"旧城镇"},{"code":"533123103","name":"那邦镇"},{"code":"533123104","name":"弄璋镇"},{"code":"533123105","name":"盏西镇"},{"code":"533123106","name":"卡场镇"},{"code":"533123107","name":"昔马镇"},{"code":"533123108","name":"太平镇"},{"code":"533123201","name":"新城乡"},{"code":"533123202","name":"油松岭乡"},{"code":"533123203","name":"芒章乡"},{"code":"533123204","name":"支那乡"},{"code":"533123205","name":"苏典傈僳族乡"},{"code":"533123206","name":"勐弄乡"},{"code":"533123207","name":"铜壁关乡"},{"code":"533123400","name":"盈江县农场管理委员会"}]},{"code":"533124","name":"陇川县","children":[{"code":"533124101","name":"章凤镇"},{"code":"533124102","name":"陇把镇"},{"code":"533124103","name":"景罕镇"},{"code":"533124104","name":"城子镇"},{"code":"533124201","name":"户撒阿昌族乡"},{"code":"533124202","name":"护国乡"},{"code":"533124203","name":"清平乡"},{"code":"533124204","name":"王子树乡"},{"code":"533124205","name":"勐约乡"},{"code":"533124400","name":"陇川农场管理委员会"}]}]},{"code":"5333","name":"怒江傈僳族自治州","children":[{"code":"533301","name":"泸水市","children":[{"code":"533301001","name":"大练地街道"},{"code":"533301002","name":"六库街道"},{"code":"533301102","name":"鲁掌镇"},{"code":"533301103","name":"片马镇"},{"code":"533301104","name":"上江镇"},{"code":"533301105","name":"老窝镇"},{"code":"533301106","name":"大兴地镇"},{"code":"533301204","name":"称杆乡"},{"code":"533301205","name":"古登乡"},{"code":"533301206","name":"洛本卓白族乡"}]},{"code":"533323","name":"福贡县","children":[{"code":"533323101","name":"上帕镇"},{"code":"533323201","name":"匹河怒族乡"},{"code":"533323202","name":"子里甲乡"},{"code":"533323203","name":"架科底乡"},{"code":"533323204","name":"鹿马登乡"},{"code":"533323205","name":"石月亮乡"},{"code":"533323206","name":"马吉乡"}]},{"code":"533324","name":"贡山独龙族怒族自治县","children":[{"code":"533324101","name":"茨开镇"},{"code":"533324102","name":"丙中洛镇"},{"code":"533324202","name":"捧当乡"},{"code":"533324203","name":"普拉底乡"},{"code":"533324204","name":"独龙江乡"}]},{"code":"533325","name":"兰坪白族普米族自治县","children":[{"code":"533325101","name":"金顶镇"},{"code":"533325102","name":"啦井镇"},{"code":"533325103","name":"营盘镇"},{"code":"533325104","name":"通甸镇"},{"code":"533325201","name":"河西乡"},{"code":"533325202","name":"中排乡"},{"code":"533325203","name":"石登乡"},{"code":"533325204","name":"兔峨乡"}]}]},{"code":"5334","name":"迪庆藏族自治州","children":[{"code":"533401","name":"香格里拉市","children":[{"code":"533401101","name":"建塘镇"},{"code":"533401102","name":"小中甸镇"},{"code":"533401103","name":"虎跳峡镇"},{"code":"533401104","name":"金江镇"},{"code":"533401201","name":"上江乡"},{"code":"533401202","name":"三坝纳西族乡"},{"code":"533401203","name":"洛吉乡"},{"code":"533401204","name":"尼西乡"},{"code":"533401205","name":"格咱乡"},{"code":"533401206","name":"东旺乡"},{"code":"533401207","name":"五境乡"},{"code":"533401501","name":"迪庆扶贫民族经济开发区"}]},{"code":"533422","name":"德钦县","children":[{"code":"533422101","name":"升平镇"},{"code":"533422102","name":"奔子栏镇"},{"code":"533422201","name":"佛山乡"},{"code":"533422202","name":"云岭乡"},{"code":"533422203","name":"燕门乡"},{"code":"533422204","name":"拖顶傈僳族乡"},{"code":"533422205","name":"霞若傈僳族乡"},{"code":"533422206","name":"羊拉乡"}]},{"code":"533423","name":"维西傈僳族自治县","children":[{"code":"533423101","name":"保和镇"},{"code":"533423102","name":"叶枝镇"},{"code":"533423103","name":"塔城镇"},{"code":"533423201","name":"永春乡"},{"code":"533423202","name":"攀天阁乡"},{"code":"533423203","name":"白济汛乡"},{"code":"533423204","name":"康普乡"},{"code":"533423205","name":"巴迪乡"},{"code":"533423206","name":"中路乡"},{"code":"533423207","name":"维登乡"}]}]}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市","children":[{"code":"540102","name":"城关区","children":[{"code":"540102002","name":"八廓街道"},{"code":"540102003","name":"吉日街道"},{"code":"540102004","name":"吉崩岗街道"},{"code":"540102005","name":"扎细街道"},{"code":"540102006","name":"公德林街道"},{"code":"540102007","name":"嘎玛贡桑街道"},{"code":"540102008","name":"两岛街道"},{"code":"540102009","name":"金珠西路街道"},{"code":"540102010","name":"蔡公堂街道"},{"code":"540102011","name":"夺底街道"},{"code":"540102012","name":"娘热街道"},{"code":"540102013","name":"纳金街道"}]},{"code":"540103","name":"堆龙德庆区","children":[{"code":"540103001","name":"东嘎街道"},{"code":"540103002","name":"乃琼街道"},{"code":"540103003","name":"羊达街道"},{"code":"540103004","name":"柳梧街道"},{"code":"540103102","name":"古荣镇"},{"code":"540103103","name":"马镇"},{"code":"540103104","name":"德庆镇"}]},{"code":"540104","name":"达孜区","children":[{"code":"540104100","name":"德庆镇"},{"code":"540104200","name":"塔杰乡"},{"code":"540104201","name":"章多乡"},{"code":"540104202","name":"唐嘎乡"},{"code":"540104203","name":"雪乡"},{"code":"540104204","name":"帮堆乡"}]},{"code":"540121","name":"林周县","children":[{"code":"540121100","name":"甘丹曲果镇"},{"code":"540121200","name":"春堆乡"},{"code":"540121201","name":"松盘乡"},{"code":"540121202","name":"强嘎乡"},{"code":"540121203","name":"卡孜乡"},{"code":"540121204","name":"边交林乡"},{"code":"540121205","name":"江热夏乡"},{"code":"540121206","name":"阿朗乡"},{"code":"540121207","name":"唐古乡"},{"code":"540121208","name":"旁多乡"}]},{"code":"540122","name":"当雄县","children":[{"code":"540122100","name":"当曲卡镇"},{"code":"540122101","name":"羊八井镇"},{"code":"540122200","name":"格达乡"},{"code":"540122201","name":"宁中乡"},{"code":"540122202","name":"公塘乡"},{"code":"540122203","name":"龙仁乡"},{"code":"540122204","name":"乌玛塘乡"},{"code":"540122205","name":"纳木湖乡"}]},{"code":"540123","name":"尼木县","children":[{"code":"540123100","name":"塔荣镇"},{"code":"540123101","name":"吞巴镇"},{"code":"540123200","name":"麻江乡"},{"code":"540123201","name":"普松乡"},{"code":"540123202","name":"卡如乡"},{"code":"540123203","name":"尼木乡"},{"code":"540123204","name":"续迈乡"},{"code":"540123205","name":"帕古乡"}]},{"code":"540124","name":"曲水县","children":[{"code":"540124100","name":"曲水镇"},{"code":"540124101","name":"达嘎镇"},{"code":"540124201","name":"才纳乡"},{"code":"540124202","name":"南木乡"},{"code":"540124203","name":"聂当乡"},{"code":"540124204","name":"茶巴拉乡"}]},{"code":"540127","name":"墨竹工卡县","children":[{"code":"540127100","name":"工卡镇"},{"code":"540127200","name":"扎雪乡"},{"code":"540127201","name":"门巴乡"},{"code":"540127202","name":"扎西岗乡"},{"code":"540127203","name":"日多乡"},{"code":"540127204","name":"尼玛江热乡"},{"code":"540127205","name":"甲玛乡"},{"code":"540127206","name":"唐加乡"}]},{"code":"540171","name":"格尔木藏青工业园区","children":[{"code":"540171400","name":"藏青工业园乡"}]},{"code":"540172","name":"拉萨经济技术开发区","children":[{"code":"540172400","name":"拉萨市经济技术开发区管委会"}]},{"code":"540173","name":"西藏文化旅游创意园区","children":[{"code":"540173400","name":"西藏文化旅游创意园区"}]},{"code":"540174","name":"达孜工业园区","children":[{"code":"540174400","name":"达孜县工业园区"}]}]},{"code":"5402","name":"日喀则市","children":[{"code":"540202","name":"桑珠孜区","children":[{"code":"540202001","name":"城南街道"},{"code":"540202002","name":"城北街道"},{"code":"540202200","name":"曲布雄乡"},{"code":"540202201","name":"曲美乡"},{"code":"540202202","name":"聂日雄乡"},{"code":"540202203","name":"甲措雄乡"},{"code":"540202204","name":"纳尔乡"},{"code":"540202205","name":"东嘎乡"},{"code":"540202206","name":"边雄乡"},{"code":"540202207","name":"江当乡"},{"code":"540202208","name":"年木乡"},{"code":"540202209","name":"联乡"}]},{"code":"540221","name":"南木林县","children":[{"code":"540221100","name":"南木林镇"},{"code":"540221200","name":"达那乡"},{"code":"540221201","name":"卡孜乡"},{"code":"540221202","name":"多角乡"},{"code":"540221203","name":"秋木乡"},{"code":"540221204","name":"艾玛乡"},{"code":"540221205","name":"土布加乡"},{"code":"540221206","name":"查尔乡"},{"code":"540221207","name":"索金乡"},{"code":"540221208","name":"达孜乡"},{"code":"540221209","name":"奴玛乡"},{"code":"540221210","name":"热当乡"},{"code":"540221211","name":"拉布普乡"},{"code":"540221212","name":"普当乡"},{"code":"540221213","name":"仁堆乡"},{"code":"540221214","name":"芒热乡"},{"code":"540221215","name":"甲措乡"}]},{"code":"540222","name":"江孜县","children":[{"code":"540222100","name":"江孜镇"},{"code":"540222200","name":"纳如乡"},{"code":"540222201","name":"卡麦乡"},{"code":"540222202","name":"卡堆乡"},{"code":"540222203","name":"藏改乡"},{"code":"540222204","name":"日朗乡"},{"code":"540222205","name":"达孜乡"},{"code":"540222206","name":"热索乡"},{"code":"540222207","name":"重孜乡"},{"code":"540222208","name":"龙马乡"},{"code":"540222209","name":"加克西乡"},{"code":"540222210","name":"紫金乡"},{"code":"540222211","name":"江热乡"},{"code":"540222212","name":"年雄乡"},{"code":"540222213","name":"康卓乡"},{"code":"540222214","name":"金嘎乡"},{"code":"540222215","name":"日星乡"},{"code":"540222216","name":"车仁乡"},{"code":"540222217","name":"热龙乡"}]},{"code":"540223","name":"定日县","children":[{"code":"540223100","name":"协格尔镇"},{"code":"540223101","name":"岗嘎镇"},{"code":"540223200","name":"扎西宗乡"},{"code":"540223201","name":"绒辖乡"},{"code":"540223202","name":"曲当乡"},{"code":"540223203","name":"措果乡"},{"code":"540223204","name":"曲洛乡"},{"code":"540223205","name":"长所乡"},{"code":"540223206","name":"尼辖乡"},{"code":"540223207","name":"扎果乡"},{"code":"540223208","name":"克玛乡"},{"code":"540223209","name":"盆吉乡"},{"code":"540223210","name":"加措乡"}]},{"code":"540224","name":"萨迦县","children":[{"code":"540224100","name":"萨迦镇"},{"code":"540224101","name":"吉定镇"},{"code":"540224200","name":"雄麦乡"},{"code":"540224201","name":"麻布加乡"},{"code":"540224202","name":"雄玛乡"},{"code":"540224203","name":"扎西岗乡"},{"code":"540224204","name":"扯休乡"},{"code":"540224205","name":"赛乡"},{"code":"540224206","name":"拉洛乡"},{"code":"540224207","name":"查荣乡"},{"code":"540224208","name":"木拉乡"}]},{"code":"540225","name":"拉孜县","children":[{"code":"540225100","name":"曲下镇"},{"code":"540225101","name":"拉孜镇"},{"code":"540225200","name":"扎西宗乡"},{"code":"540225201","name":"曲玛乡"},{"code":"540225202","name":"彭措林乡"},{"code":"540225203","name":"扎西岗乡"},{"code":"540225204","name":"柳乡"},{"code":"540225205","name":"热萨乡"},{"code":"540225206","name":"锡钦乡"},{"code":"540225207","name":"芒普乡"},{"code":"540225208","name":"查务乡"}]},{"code":"540226","name":"昂仁县","children":[{"code":"540226100","name":"卡嘎镇"},{"code":"540226101","name":"桑桑镇"},{"code":"540226200","name":"达若乡"},{"code":"540226201","name":"贡久布乡"},{"code":"540226202","name":"措迈乡"},{"code":"540226203","name":"雄巴乡"},{"code":"540226204","name":"查孜乡"},{"code":"540226205","name":"阿木雄乡"},{"code":"540226206","name":"如萨乡"},{"code":"540226207","name":"孔隆乡"},{"code":"540226208","name":"尼果乡"},{"code":"540226209","name":"日吾其乡"},{"code":"540226210","name":"多白乡"},{"code":"540226211","name":"切热乡"},{"code":"540226212","name":"秋窝乡"},{"code":"540226213","name":"达居乡"},{"code":"540226214","name":"亚木乡"}]},{"code":"540227","name":"谢通门县","children":[{"code":"540227100","name":"卡嘎镇"},{"code":"540227200","name":"达木夏乡"},{"code":"540227201","name":"查布乡"},{"code":"540227202","name":"春哲乡"},{"code":"540227203","name":"则许乡"},{"code":"540227204","name":"娘热乡"},{"code":"540227205","name":"措布西乡"},{"code":"540227206","name":"纳当乡"},{"code":"540227207","name":"青都乡"},{"code":"540227208","name":"切琼乡"},{"code":"540227209","name":"美巴切勤乡"},{"code":"540227210","name":"列巴乡"},{"code":"540227211","name":"塔丁乡"},{"code":"540227212","name":"荣玛乡"},{"code":"540227213","name":"通门乡"},{"code":"540227214","name":"达那普乡"},{"code":"540227215","name":"达那答乡"},{"code":"540227216","name":"南木切乡"},{"code":"540227217","name":"仁钦则乡"}]},{"code":"540228","name":"白朗县","children":[{"code":"540228100","name":"洛江镇"},{"code":"540228101","name":"嘎东镇"},{"code":"540228200","name":"巴扎乡"},{"code":"540228201","name":"玛乡"},{"code":"540228202","name":"旺丹乡"},{"code":"540228203","name":"曲奴乡"},{"code":"540228204","name":"杜琼乡"},{"code":"540228205","name":"强堆乡"},{"code":"540228206","name":"嘎普乡"},{"code":"540228207","name":"者下乡"},{"code":"540228208","name":"东喜乡"}]},{"code":"540229","name":"仁布县","children":[{"code":"540229100","name":"德吉林镇"},{"code":"540229200","name":"康雄乡"},{"code":"540229201","name":"普松乡"},{"code":"540229202","name":"帕当乡"},{"code":"540229203","name":"然巴乡"},{"code":"540229204","name":"查巴乡"},{"code":"540229205","name":"切娃乡"},{"code":"540229206","name":"姆乡"},{"code":"540229207","name":"仁布乡"}]},{"code":"540230","name":"康马县","children":[{"code":"540230100","name":"康马镇"},{"code":"540230200","name":"南尼乡"},{"code":"540230201","name":"少岗乡"},{"code":"540230202","name":"康如乡"},{"code":"540230203","name":"萨玛达乡"},{"code":"540230204","name":"嘎拉乡"},{"code":"540230205","name":"涅如堆乡"},{"code":"540230206","name":"涅如麦乡"},{"code":"540230207","name":"雄章乡"}]},{"code":"540231","name":"定结县","children":[{"code":"540231100","name":"江嘎镇"},{"code":"540231101","name":"陈塘镇"},{"code":"540231102","name":"日屋镇"},{"code":"540231201","name":"确布乡"},{"code":"540231202","name":"定结乡"},{"code":"540231203","name":"多布扎乡"},{"code":"540231204","name":"扎西岗乡"},{"code":"540231205","name":"琼孜乡"},{"code":"540231206","name":"萨尔乡"},{"code":"540231207","name":"郭加乡"}]},{"code":"540232","name":"仲巴县","children":[{"code":"540232100","name":"帕羊镇"},{"code":"540232200","name":"拉让乡"},{"code":"540232201","name":"琼果乡"},{"code":"540232202","name":"亚热乡"},{"code":"540232203","name":"布多乡"},{"code":"540232204","name":"偏吉乡"},{"code":"540232205","name":"纳久乡"},{"code":"540232206","name":"吉拉乡"},{"code":"540232207","name":"霍尔巴乡"},{"code":"540232208","name":"隆格尔乡"},{"code":"540232209","name":"吉玛乡"},{"code":"540232210","name":"仁多乡"},{"code":"540232211","name":"帕江乡"}]},{"code":"540233","name":"亚东县","children":[{"code":"540233100","name":"下司马镇"},{"code":"540233101","name":"帕里镇"},{"code":"540233200","name":"下亚东乡"},{"code":"540233201","name":"上亚东乡"},{"code":"540233202","name":"康布乡"},{"code":"540233203","name":"堆纳乡"},{"code":"540233204","name":"吉汝乡"}]},{"code":"540234","name":"吉隆县","children":[{"code":"540234100","name":"宗嘎镇"},{"code":"540234101","name":"吉隆镇"},{"code":"540234200","name":"差那乡"},{"code":"540234201","name":"折巴乡"},{"code":"540234202","name":"贡当乡"},{"code":"540234203","name":"萨勒乡"}]},{"code":"540235","name":"聂拉木县","children":[{"code":"540235100","name":"聂拉木镇"},{"code":"540235101","name":"樟木镇"},{"code":"540235200","name":"亚来乡"},{"code":"540235201","name":"锁作乡"},{"code":"540235202","name":"乃龙乡"},{"code":"540235203","name":"门布乡"},{"code":"540235204","name":"波绒乡"}]},{"code":"540236","name":"萨嘎县","children":[{"code":"540236100","name":"加加镇"},{"code":"540236200","name":"昌果乡"},{"code":"540236201","name":"雄如乡"},{"code":"540236202","name":"拉藏乡"},{"code":"540236203","name":"如角乡"},{"code":"540236204","name":"达吉岭乡"},{"code":"540236205","name":"旦嘎乡"},{"code":"540236206","name":"夏如乡"}]},{"code":"540237","name":"岗巴县","children":[{"code":"540237100","name":"岗巴镇"},{"code":"540237200","name":"昌龙乡"},{"code":"540237201","name":"直克乡"},{"code":"540237202","name":"孔玛乡"},{"code":"540237203","name":"龙中乡"}]}]},{"code":"5403","name":"昌都市","children":[{"code":"540302","name":"卡若区","children":[{"code":"540302100","name":"城关镇"},{"code":"540302101","name":"俄洛镇"},{"code":"540302102","name":"卡若镇"},{"code":"540302200","name":"芒达乡"},{"code":"540302201","name":"约巴乡"},{"code":"540302202","name":"妥坝乡"},{"code":"540302203","name":"拉多乡"},{"code":"540302204","name":"面达乡"},{"code":"540302205","name":"嘎玛乡"},{"code":"540302206","name":"柴维乡"},{"code":"540302207","name":"日通乡"},{"code":"540302208","name":"如意乡"},{"code":"540302209","name":"埃西乡"},{"code":"540302210","name":"若巴乡"},{"code":"540302211","name":"沙贡乡"}]},{"code":"540321","name":"江达县","children":[{"code":"540321100","name":"江达镇"},{"code":"540321101","name":"岗托镇"},{"code":"540321200","name":"卡贡乡"},{"code":"540321201","name":"岩比乡"},{"code":"540321202","name":"邓柯乡"},{"code":"540321203","name":"生达乡"},{"code":"540321204","name":"娘西乡"},{"code":"540321205","name":"字嘎乡"},{"code":"540321206","name":"青泥洞乡"},{"code":"540321207","name":"汪布顶乡"},{"code":"540321208","name":"德登乡"},{"code":"540321209","name":"同普乡"},{"code":"540321210","name":"波罗乡"}]},{"code":"540322","name":"贡觉县","children":[{"code":"540322100","name":"莫洛镇"},{"code":"540322200","name":"相皮乡"},{"code":"540322201","name":"哈加乡"},{"code":"540322202","name":"雄松乡"},{"code":"540322203","name":"拉妥乡"},{"code":"540322204","name":"阿旺乡"},{"code":"540322205","name":"木协乡"},{"code":"540322206","name":"罗麦乡"},{"code":"540322207","name":"沙东乡"},{"code":"540322208","name":"克日乡"},{"code":"540322209","name":"则巴乡"},{"code":"540322210","name":"敏都乡"}]},{"code":"540323","name":"类乌齐县","children":[{"code":"540323100","name":"类乌齐镇"},{"code":"540323101","name":"桑多镇"},{"code":"540323200","name":"甲桑卡乡"},{"code":"540323201","name":"长毛岭乡"},{"code":"540323202","name":"岗色乡"},{"code":"540323203","name":"吉多乡"},{"code":"540323204","name":"宾达乡"},{"code":"540323205","name":"卡玛多乡"},{"code":"540323206","name":"尚卡乡"},{"code":"540323207","name":"伊日乡"}]},{"code":"540324","name":"丁青县","children":[{"code":"540324100","name":"丁青镇"},{"code":"540324101","name":"尺犊镇"},{"code":"540324200","name":"觉恩乡"},{"code":"540324201","name":"沙贡乡"},{"code":"540324202","name":"当堆乡"},{"code":"540324203","name":"桑多乡"},{"code":"540324204","name":"木塔乡"},{"code":"540324205","name":"布塔乡"},{"code":"540324206","name":"巴达乡"},{"code":"540324207","name":"甘岩乡"},{"code":"540324208","name":"嘎塔乡"},{"code":"540324209","name":"色扎乡"},{"code":"540324210","name":"协雄乡"}]},{"code":"540325","name":"察雅县","children":[{"code":"540325100","name":"烟多镇"},{"code":"540325101","name":"香堆镇"},{"code":"540325102","name":"吉塘镇"},{"code":"540325200","name":"宗沙乡"},{"code":"540325201","name":"卡贡乡"},{"code":"540325202","name":"荣周乡"},{"code":"540325203","name":"巴日乡"},{"code":"540325204","name":"阿孜乡"},{"code":"540325205","name":"王卡乡"},{"code":"540325206","name":"新卡乡"},{"code":"540325207","name":"肯通乡"},{"code":"540325208","name":"扩达乡"},{"code":"540325209","name":"察拉乡"}]},{"code":"540326","name":"八宿县","children":[{"code":"540326100","name":"白玛镇"},{"code":"540326101","name":"帮达镇"},{"code":"540326102","name":"然乌镇"},{"code":"540326103","name":"同卡镇"},{"code":"540326202","name":"郭庆乡"},{"code":"540326203","name":"拉根乡"},{"code":"540326204","name":"益庆乡"},{"code":"540326205","name":"吉中乡"},{"code":"540326206","name":"卡瓦白庆乡"},{"code":"540326207","name":"吉达乡"},{"code":"540326208","name":"夏里乡"},{"code":"540326209","name":"拥乡"},{"code":"540326210","name":"瓦乡"},{"code":"540326211","name":"林卡乡"}]},{"code":"540327","name":"左贡县","children":[{"code":"540327100","name":"旺达镇"},{"code":"540327101","name":"田妥镇"},{"code":"540327102","name":"扎玉镇"},{"code":"540327203","name":"东坝乡"},{"code":"540327204","name":"仁果乡"},{"code":"540327207","name":"绕金乡"},{"code":"540327208","name":"碧土乡"},{"code":"540327210","name":"美玉乡"},{"code":"540327211","name":"中林卡乡"},{"code":"540327212","name":"下林卡乡"}]},{"code":"540328","name":"芒康县","children":[{"code":"540328100","name":"嘎托镇"},{"code":"540328101","name":"如美镇"},{"code":"540328200","name":"索多西乡"},{"code":"540328201","name":"莽岭乡"},{"code":"540328202","name":"宗西乡"},{"code":"540328203","name":"昂多乡"},{"code":"540328204","name":"措瓦乡"},{"code":"540328205","name":"洛尼乡"},{"code":"540328206","name":"戈波乡"},{"code":"540328207","name":"帮达乡"},{"code":"540328208","name":"徐中乡"},{"code":"540328209","name":"曲登乡"},{"code":"540328210","name":"木许乡"},{"code":"540328211","name":"纳西民族乡"},{"code":"540328212","name":"竹巴龙乡"},{"code":"540328213","name":"曲孜卡乡"}]},{"code":"540329","name":"洛隆县","children":[{"code":"540329100","name":"孜托镇"},{"code":"540329101","name":"硕督镇"},{"code":"540329111","name":"康沙镇"},{"code":"540329112","name":"马利镇"},{"code":"540329200","name":"达龙乡"},{"code":"540329201","name":"新荣乡"},{"code":"540329202","name":"白达乡"},{"code":"540329203","name":"玉西乡"},{"code":"540329204","name":"腊久乡"},{"code":"540329205","name":"俄西乡"},{"code":"540329206","name":"中亦乡"}]},{"code":"540330","name":"边坝县","children":[{"code":"540330100","name":"边坝镇"},{"code":"540330101","name":"草卡镇"},{"code":"540330201","name":"沙丁乡"},{"code":"540330202","name":"金岭乡"},{"code":"540330203","name":"加贡乡"},{"code":"540330204","name":"马武乡"},{"code":"540330205","name":"热玉乡"},{"code":"540330206","name":"尼木乡"},{"code":"540330207","name":"马秀乡"},{"code":"540330208","name":"拉孜乡"},{"code":"540330209","name":"都瓦乡"}]}]},{"code":"5404","name":"林芝市","children":[{"code":"540402","name":"巴宜区","children":[{"code":"540402001","name":"白玛岗街道"},{"code":"540402002","name":"觉木街道"},{"code":"540402100","name":"林芝镇"},{"code":"540402101","name":"百巴镇"},{"code":"540402102","name":"八一镇"},{"code":"540402103","name":"鲁朗镇"},{"code":"540402200","name":"更章门巴民族乡"},{"code":"540402202","name":"布久乡"},{"code":"540402203","name":"米瑞乡"}]},{"code":"540421","name":"工布江达县","children":[{"code":"540421100","name":"工布江达镇"},{"code":"540421101","name":"金达镇"},{"code":"540421102","name":"巴河镇"},{"code":"540421200","name":"朱拉乡"},{"code":"540421201","name":"错高乡"},{"code":"540421202","name":"仲萨乡"},{"code":"540421203","name":"江达乡"},{"code":"540421204","name":"娘蒲乡"},{"code":"540421205","name":"加兴乡"}]},{"code":"540422","name":"米林县","children":[{"code":"540422100","name":"米林镇"},{"code":"540422101","name":"派镇"},{"code":"540422102","name":"卧龙镇"},{"code":"540422200","name":"丹娘乡"},{"code":"540422201","name":"南伊珞巴民族乡"},{"code":"540422202","name":"扎西绕登乡"},{"code":"540422203","name":"里龙乡"},{"code":"540422204","name":"羌纳乡"}]},{"code":"540423","name":"墨脱县","children":[{"code":"540423100","name":"墨脱镇"},{"code":"540423200","name":"加热萨乡"},{"code":"540423201","name":"甘登乡"},{"code":"540423202","name":"达木珞巴民族乡"},{"code":"540423203","name":"帮辛乡"},{"code":"540423204","name":"格当乡"},{"code":"540423205","name":"德兴乡"},{"code":"540423206","name":"背崩乡"}]},{"code":"540424","name":"波密县","children":[{"code":"540424100","name":"扎木镇"},{"code":"540424101","name":"倾多镇"},{"code":"540424102","name":"松宗镇"},{"code":"540424200","name":"易贡乡"},{"code":"540424201","name":"玉普乡"},{"code":"540424202","name":"康玉乡"},{"code":"540424203","name":"多吉乡"},{"code":"540424204","name":"玉许乡"},{"code":"540424205","name":"八盖乡"},{"code":"540424207","name":"古乡"}]},{"code":"540425","name":"察隅县","children":[{"code":"540425100","name":"竹瓦根镇"},{"code":"540425101","name":"上察隅镇"},{"code":"540425102","name":"下察隅镇"},{"code":"540425200","name":"察瓦龙乡"},{"code":"540425201","name":"古拉乡"},{"code":"540425202","name":"古玉乡"}]},{"code":"540426","name":"朗县","children":[{"code":"540426100","name":"朗镇"},{"code":"540426101","name":"仲达镇"},{"code":"540426102","name":"洞嘎镇"},{"code":"540426200","name":"拉多乡"},{"code":"540426201","name":"金东乡"},{"code":"540426202","name":"登木乡"}]}]},{"code":"5405","name":"山南市","children":[{"code":"540502","name":"乃东区","children":[{"code":"540502001","name":"泽当街道"},{"code":"540502101","name":"昌珠镇"},{"code":"540502200","name":"亚堆乡"},{"code":"540502201","name":"索珠乡"},{"code":"540502202","name":"多颇章乡"},{"code":"540502203","name":"结巴乡"},{"code":"540502204","name":"颇章乡"}]},{"code":"540521","name":"扎囊县","children":[{"code":"540521100","name":"扎塘镇"},{"code":"540521101","name":"桑耶镇"},{"code":"540521200","name":"扎其乡"},{"code":"540521201","name":"阿扎乡"},{"code":"540521202","name":"吉汝乡"}]},{"code":"540522","name":"贡嘎县","children":[{"code":"540522100","name":"吉雄镇"},{"code":"540522101","name":"甲竹林镇"},{"code":"540522102","name":"杰德秀镇"},{"code":"540522103","name":"岗堆镇"},{"code":"540522104","name":"江塘镇"},{"code":"540522200","name":"朗杰学乡"},{"code":"540522201","name":"昌果乡"},{"code":"540522205","name":"东拉乡"},{"code":"540522206","name":"克西乡"}]},{"code":"540523","name":"桑日县","children":[{"code":"540523100","name":"桑日镇"},{"code":"540523200","name":"增期乡"},{"code":"540523201","name":"白堆乡"},{"code":"540523202","name":"绒乡"}]},{"code":"540524","name":"琼结县","children":[{"code":"540524100","name":"琼结镇"},{"code":"540524200","name":"加麻乡"},{"code":"540524201","name":"下水乡"},{"code":"540524202","name":"拉玉乡"}]},{"code":"540525","name":"曲松县","children":[{"code":"540525100","name":"曲松镇"},{"code":"540525101","name":"罗布沙镇"},{"code":"540525200","name":"下江乡"},{"code":"540525201","name":"邱多江乡"},{"code":"540525202","name":"堆随乡"}]},{"code":"540526","name":"措美县","children":[{"code":"540526100","name":"措美镇"},{"code":"540526101","name":"哲古镇"},{"code":"540526200","name":"乃西乡"},{"code":"540526201","name":"古堆乡"}]},{"code":"540527","name":"洛扎县","children":[{"code":"540527100","name":"洛扎镇"},{"code":"540527101","name":"拉康镇"},{"code":"540527201","name":"扎日乡"},{"code":"540527202","name":"色乡"},{"code":"540527203","name":"生格乡"},{"code":"540527204","name":"边巴乡"},{"code":"540527205","name":"拉郊乡"}]},{"code":"540528","name":"加查县","children":[{"code":"540528100","name":"加查镇"},{"code":"540528101","name":"安绕镇"},{"code":"540528200","name":"拉绥乡"},{"code":"540528201","name":"崔久乡"},{"code":"540528202","name":"坝乡"},{"code":"540528203","name":"冷达乡"},{"code":"540528204","name":"洛林乡"}]},{"code":"540529","name":"隆子县","children":[{"code":"540529100","name":"隆子镇"},{"code":"540529101","name":"日当镇"},{"code":"540529200","name":"列麦乡"},{"code":"540529201","name":"热荣乡"},{"code":"540529202","name":"三安曲林乡"},{"code":"540529203","name":"准巴乡"},{"code":"540529204","name":"雪萨乡"},{"code":"540529205","name":"扎日乡"},{"code":"540529206","name":"玉麦乡"},{"code":"540529207","name":"加玉乡"},{"code":"540529208","name":"斗玉珞巴民族乡"}]},{"code":"540530","name":"错那县","children":[{"code":"540530100","name":"错那镇"},{"code":"540530200","name":"卡达乡"},{"code":"540530201","name":"觉拉乡"},{"code":"540530202","name":"浪坡乡"},{"code":"540530203","name":"曲卓木乡"},{"code":"540530204","name":"库局乡"},{"code":"540530205","name":"麻麻门巴民族乡"},{"code":"540530206","name":"贡日门巴民族乡"},{"code":"540530207","name":"吉巴门巴民族乡"},{"code":"540530208","name":"勒门巴民族乡"}]},{"code":"540531","name":"浪卡子县","children":[{"code":"540531100","name":"浪卡子镇"},{"code":"540531101","name":"打隆镇"},{"code":"540531200","name":"张达乡"},{"code":"540531201","name":"伦布雪乡"},{"code":"540531202","name":"多却乡"},{"code":"540531203","name":"普玛江塘乡"},{"code":"540531204","name":"阿扎乡"},{"code":"540531205","name":"卡龙乡"},{"code":"540531206","name":"白地乡"},{"code":"540531207","name":"卡热乡"}]}]},{"code":"5406","name":"那曲市","children":[{"code":"540602","name":"色尼区","children":[{"code":"540602100","name":"那曲镇"},{"code":"540602101","name":"罗玛镇"},{"code":"540602102","name":"古露镇"},{"code":"540602200","name":"达萨乡"},{"code":"540602202","name":"油恰乡"},{"code":"540602203","name":"香茂乡"},{"code":"540602205","name":"那么切乡"},{"code":"540602209","name":"达前乡"},{"code":"540602210","name":"劳麦乡"},{"code":"540602211","name":"孔玛乡"},{"code":"540602213","name":"尼玛乡"},{"code":"540602217","name":"色雄乡"}]},{"code":"540621","name":"嘉黎县","children":[{"code":"540621100","name":"阿扎镇"},{"code":"540621101","name":"嘉黎镇"},{"code":"540621201","name":"尼屋乡"},{"code":"540621202","name":"藏比乡"},{"code":"540621203","name":"措多乡"},{"code":"540621204","name":"夏玛乡"},{"code":"540621206","name":"林堤乡"},{"code":"540621207","name":"麦地卡乡"},{"code":"540621209","name":"绒多乡"},{"code":"540621210","name":"鸽群乡"}]},{"code":"540622","name":"比如县","children":[{"code":"540622100","name":"比如镇"},{"code":"540622101","name":"夏曲镇"},{"code":"540622201","name":"白嘎乡"},{"code":"540622202","name":"达塘乡"},{"code":"540622203","name":"恰则乡"},{"code":"540622204","name":"扎拉乡"},{"code":"540622207","name":"羊秀乡"},{"code":"540622208","name":"香曲乡"},{"code":"540622209","name":"良曲乡"},{"code":"540622210","name":"茶曲乡"}]},{"code":"540623","name":"聂荣县","children":[{"code":"540623100","name":"聂荣镇"},{"code":"540623201","name":"尼玛乡"},{"code":"540623203","name":"色庆乡"},{"code":"540623205","name":"桑荣乡"},{"code":"540623206","name":"下曲乡"},{"code":"540623207","name":"白雄乡"},{"code":"540623208","name":"索雄乡"},{"code":"540623210","name":"当木江乡"},{"code":"540623211","name":"查当乡"},{"code":"540623212","name":"永曲乡"}]},{"code":"540624","name":"安多县","children":[{"code":"540624100","name":"帕那镇"},{"code":"540624101","name":"强玛镇"},{"code":"540624102","name":"扎仁镇"},{"code":"540624103","name":"雁石坪镇"},{"code":"540624201","name":"多玛乡"},{"code":"540624202","name":"玛曲乡"},{"code":"540624205","name":"滩堆乡"},{"code":"540624207","name":"帮爱乡"},{"code":"540624209","name":"玛荣乡"},{"code":"540624210","name":"扎曲乡"},{"code":"540624211","name":"色务乡"},{"code":"540624212","name":"措玛乡"},{"code":"540624213","name":"岗尼乡"}]},{"code":"540625","name":"申扎县","children":[{"code":"540625100","name":"申扎镇"},{"code":"540625101","name":"雄梅镇"},{"code":"540625201","name":"下过乡"},{"code":"540625202","name":"卡乡"},{"code":"540625203","name":"巴扎乡"},{"code":"540625204","name":"塔尔玛乡"},{"code":"540625206","name":"买巴乡"},{"code":"540625207","name":"马跃乡"}]},{"code":"540626","name":"索县","children":[{"code":"540626100","name":"亚拉镇"},{"code":"540626101","name":"荣布镇"},{"code":"540626201","name":"若达乡"},{"code":"540626202","name":"加勤乡"},{"code":"540626203","name":"赤多乡"},{"code":"540626205","name":"西昌乡"},{"code":"540626206","name":"江达乡"},{"code":"540626208","name":"热瓦乡"},{"code":"540626209","name":"嘎美乡"},{"code":"540626210","name":"嘎木乡"}]},{"code":"540627","name":"班戈县","children":[{"code":"540627100","name":"普保镇"},{"code":"540627101","name":"北拉镇"},{"code":"540627102","name":"德庆镇"},{"code":"540627103","name":"佳琼镇"},{"code":"540627205","name":"尼玛乡"},{"code":"540627207","name":"保吉乡"},{"code":"540627209","name":"青龙乡"},{"code":"540627211","name":"马前乡"},{"code":"540627215","name":"门当乡"},{"code":"540627216","name":"新吉乡"}]},{"code":"540628","name":"巴青县","children":[{"code":"540628100","name":"拉西镇"},{"code":"540628101","name":"杂色镇"},{"code":"540628102","name":"雅安镇"},{"code":"540628201","name":"江绵乡"},{"code":"540628202","name":"玛如乡"},{"code":"540628204","name":"阿秀乡"},{"code":"540628205","name":"贡日乡"},{"code":"540628206","name":"岗切乡"},{"code":"540628210","name":"巴青乡"},{"code":"540628211","name":"本塔乡"}]},{"code":"540629","name":"尼玛县","children":[{"code":"540629100","name":"尼玛镇"},{"code":"540629201","name":"卓尼乡"},{"code":"540629202","name":"达果乡"},{"code":"540629203","name":"阿索乡"},{"code":"540629204","name":"荣玛乡"},{"code":"540629205","name":"中仓乡"},{"code":"540629206","name":"来多乡"},{"code":"540629207","name":"申亚乡"},{"code":"540629208","name":"卓瓦乡"},{"code":"540629209","name":"俄久乡"},{"code":"540629210","name":"文部乡"},{"code":"540629211","name":"甲谷乡"},{"code":"540629212","name":"军仓乡"},{"code":"540629219","name":"吉瓦乡"}]},{"code":"540630","name":"双湖县","children":[{"code":"540630101","name":"措折罗玛镇"},{"code":"540630200","name":"协德乡"},{"code":"540630201","name":"雅曲乡"},{"code":"540630202","name":"嘎措乡"},{"code":"540630203","name":"措折强玛乡"},{"code":"540630204","name":"多玛乡"},{"code":"540630205","name":"巴岭乡"}]}]},{"code":"5425","name":"阿里地区","children":[{"code":"542521","name":"普兰县","children":[{"code":"542521100","name":"普兰镇"},{"code":"542521200","name":"巴嘎乡"},{"code":"542521201","name":"霍尔乡"}]},{"code":"542522","name":"札达县","children":[{"code":"542522100","name":"托林镇"},{"code":"542522200","name":"萨让乡"},{"code":"542522201","name":"达巴乡"},{"code":"542522202","name":"底雅乡"},{"code":"542522203","name":"香孜乡"},{"code":"542522204","name":"曲松乡"},{"code":"542522205","name":"楚鲁松杰乡"}]},{"code":"542523","name":"噶尔县","children":[{"code":"542523100","name":"狮泉河镇"},{"code":"542523200","name":"昆莎乡"},{"code":"542523201","name":"左左乡"},{"code":"542523202","name":"门士乡"},{"code":"542523203","name":"扎西岗乡"}]},{"code":"542524","name":"日土县","children":[{"code":"542524100","name":"日土镇"},{"code":"542524200","name":"热帮乡"},{"code":"542524201","name":"日松乡"},{"code":"542524202","name":"东汝乡"},{"code":"542524203","name":"多玛乡"}]},{"code":"542525","name":"革吉县","children":[{"code":"542525100","name":"革吉镇"},{"code":"542525200","name":"雄巴乡"},{"code":"542525201","name":"亚热乡"},{"code":"542525202","name":"盐湖乡"},{"code":"542525203","name":"文布当桑乡"}]},{"code":"542526","name":"改则县","children":[{"code":"542526100","name":"改则镇"},{"code":"542526200","name":"物玛乡"},{"code":"542526201","name":"先遣乡"},{"code":"542526202","name":"麻米乡"},{"code":"542526203","name":"洞措乡"},{"code":"542526204","name":"古姆乡"},{"code":"542526205","name":"察布乡"}]},{"code":"542527","name":"措勤县","children":[{"code":"542527100","name":"措勤镇"},{"code":"542527200","name":"磁石乡"},{"code":"542527201","name":"曲洛乡"},{"code":"542527202","name":"江让乡"},{"code":"542527203","name":"达雄乡"}]}]}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市","children":[{"code":"610102","name":"新城区","children":[{"code":"610102001","name":"西一路街道"},{"code":"610102002","name":"长乐中路街道"},{"code":"610102003","name":"中山门街道"},{"code":"610102004","name":"韩森寨街道"},{"code":"610102005","name":"解放门街道"},{"code":"610102006","name":"自强路街道"},{"code":"610102007","name":"太华路街道"},{"code":"610102008","name":"长乐西路街道"},{"code":"610102009","name":"胡家庙街道"}]},{"code":"610103","name":"碑林区","children":[{"code":"610103001","name":"南院门街道"},{"code":"610103002","name":"柏树林街道"},{"code":"610103003","name":"长乐坊街道"},{"code":"610103004","name":"东关南街街道"},{"code":"610103005","name":"太乙路街道"},{"code":"610103006","name":"文艺路街道"},{"code":"610103007","name":"长安路街道"},{"code":"610103008","name":"张家村街道"}]},{"code":"610104","name":"莲湖区","children":[{"code":"610104001","name":"青年路街道"},{"code":"610104002","name":"北院门街道"},{"code":"610104003","name":"北关街道"},{"code":"610104004","name":"红庙坡街道"},{"code":"610104005","name":"环城西路街道"},{"code":"610104006","name":"西关街道"},{"code":"610104007","name":"土门街道"},{"code":"610104008","name":"桃园路街道"},{"code":"610104009","name":"枣园街道"}]},{"code":"610111","name":"灞桥区","children":[{"code":"610111001","name":"纺织城街道"},{"code":"610111002","name":"十里铺街道"},{"code":"610111003","name":"红旗街道"},{"code":"610111004","name":"席王街道"},{"code":"610111005","name":"洪庆街道"},{"code":"610111006","name":"狄寨街道"},{"code":"610111007","name":"灞桥街道"},{"code":"610111008","name":"新筑街道"},{"code":"610111009","name":"新合街道"}]},{"code":"610112","name":"未央区","children":[{"code":"610112001","name":"张家堡街道"},{"code":"610112002","name":"三桥街道"},{"code":"610112003","name":"辛家庙街道"},{"code":"610112004","name":"徐家湾街道"},{"code":"610112005","name":"大明宫街道"},{"code":"610112006","name":"谭家街道"},{"code":"610112007","name":"草滩街道"},{"code":"610112008","name":"六村堡街道"},{"code":"610112009","name":"未央宫街道"},{"code":"610112010","name":"汉城街道"},{"code":"610112011","name":"未央湖街道"},{"code":"610112012","name":"建章路街道"}]},{"code":"610113","name":"雁塔区","children":[{"code":"610113001","name":"小寨路街道"},{"code":"610113002","name":"大雁塔街道"},{"code":"610113003","name":"长延堡街道"},{"code":"610113004","name":"电子城街道"},{"code":"610113005","name":"等驾坡街道"},{"code":"610113006","name":"鱼化寨街道"},{"code":"610113007","name":"丈八沟街道"},{"code":"610113008","name":"曲江街道"},{"code":"610113009","name":"杜城街道"},{"code":"610113010","name":"漳浒寨街道"}]},{"code":"610114","name":"阎良区","children":[{"code":"610114001","name":"凤凰路街道"},{"code":"610114002","name":"新华路街道"},{"code":"610114003","name":"振兴街道"},{"code":"610114004","name":"新兴街道"},{"code":"610114005","name":"北屯街道"},{"code":"610114006","name":"武屯街道"},{"code":"610114007","name":"关山街道"}]},{"code":"610115","name":"临潼区","children":[{"code":"610115001","name":"骊山街道"},{"code":"610115002","name":"秦陵街道"},{"code":"610115003","name":"新丰街道"},{"code":"610115004","name":"代王街道"},{"code":"610115005","name":"斜口街道"},{"code":"610115006","name":"行者街道"},{"code":"610115007","name":"零口街道"},{"code":"610115008","name":"相桥街道"},{"code":"610115009","name":"雨金街道"},{"code":"610115010","name":"新市街道"},{"code":"610115011","name":"徐杨街道"},{"code":"610115012","name":"西泉街道"},{"code":"610115013","name":"栎阳街道"},{"code":"610115014","name":"马额街道"},{"code":"610115015","name":"何寨街道"},{"code":"610115016","name":"交口街道"},{"code":"610115017","name":"油槐街道"},{"code":"610115018","name":"北田街道"},{"code":"610115019","name":"铁炉街道"},{"code":"610115020","name":"任留街道"},{"code":"610115021","name":"穆寨街道"},{"code":"610115022","name":"小金街道"},{"code":"610115023","name":"仁宗街道"}]},{"code":"610116","name":"长安区","children":[{"code":"610116001","name":"韦曲街道"},{"code":"610116002","name":"郭杜街道"},{"code":"610116003","name":"滦镇街道"},{"code":"610116004","name":"引镇街道"},{"code":"610116005","name":"王寺街道"},{"code":"610116006","name":"马王街道"},{"code":"610116007","name":"太乙宫街道"},{"code":"610116008","name":"东大街道"},{"code":"610116009","name":"子午街道"},{"code":"610116010","name":"斗门街道"},{"code":"610116011","name":"细柳街道"},{"code":"610116012","name":"杜曲街道"},{"code":"610116013","name":"大兆街道"},{"code":"610116014","name":"黄良街道"},{"code":"610116015","name":"兴隆街道"},{"code":"610116016","name":"王曲街道"},{"code":"610116017","name":"鸣犊街道"},{"code":"610116018","name":"王莽街道"},{"code":"610116019","name":"五台街道"},{"code":"610116020","name":"高桥街道"},{"code":"610116021","name":"五星街道"},{"code":"610116022","name":"灵沼街道"},{"code":"610116023","name":"杨庄街道"},{"code":"610116024","name":"砲里街道"},{"code":"610116025","name":"魏寨街道"}]},{"code":"610117","name":"高陵区","children":[{"code":"610117001","name":"鹿苑街道"},{"code":"610117002","name":"泾渭街道"},{"code":"610117003","name":"崇皇街道"},{"code":"610117004","name":"姬家街道"},{"code":"610117005","name":"耿镇街道"},{"code":"610117006","name":"张卜街道"},{"code":"610117007","name":"通远街道"}]},{"code":"610118","name":"鄠邑区","children":[{"code":"610118001","name":"甘亭街道"},{"code":"610118002","name":"余下街道"},{"code":"610118003","name":"玉蝉街道"},{"code":"610118004","name":"五竹街道"},{"code":"610118005","name":"大王街道"},{"code":"610118006","name":"秦渡街道"},{"code":"610118007","name":"草堂街道"},{"code":"610118008","name":"庞光街道"},{"code":"610118009","name":"祖庵街道"},{"code":"610118010","name":"渭丰街道"},{"code":"610118011","name":"涝店街道"},{"code":"610118012","name":"甘河街道"},{"code":"610118013","name":"蒋村街道"},{"code":"610118014","name":"石井街道"}]},{"code":"610122","name":"蓝田县","children":[{"code":"610122001","name":"蓝关街道"},{"code":"610122101","name":"洩湖镇"},{"code":"610122102","name":"华胥镇"},{"code":"610122103","name":"前卫镇"},{"code":"610122104","name":"汤峪镇"},{"code":"610122105","name":"焦岱镇"},{"code":"610122106","name":"玉山镇"},{"code":"610122107","name":"三里镇"},{"code":"610122108","name":"普化镇"},{"code":"610122109","name":"葛牌镇"},{"code":"610122110","name":"灞源镇"},{"code":"610122111","name":"九间房镇"},{"code":"610122112","name":"蓝桥镇"},{"code":"610122113","name":"辋川镇"},{"code":"610122115","name":"厚镇"},{"code":"610122116","name":"三官庙镇"},{"code":"610122118","name":"安村镇"},{"code":"610122119","name":"孟村镇"},{"code":"610122120","name":"小寨镇"}]},{"code":"610124","name":"周至县","children":[{"code":"610124001","name":"二曲街道"},{"code":"610124101","name":"哑柏镇"},{"code":"610124102","name":"终南镇"},{"code":"610124103","name":"马召镇"},{"code":"610124104","name":"集贤镇"},{"code":"610124105","name":"楼观镇"},{"code":"610124106","name":"尚村镇"},{"code":"610124107","name":"广济镇"},{"code":"610124108","name":"厚畛子镇"},{"code":"610124109","name":"青化镇"},{"code":"610124110","name":"竹峪镇"},{"code":"610124111","name":"翠峰镇"},{"code":"610124112","name":"四屯镇"},{"code":"610124115","name":"司竹镇"},{"code":"610124116","name":"九峰镇"},{"code":"610124117","name":"富仁镇"},{"code":"610124118","name":"骆峪镇"},{"code":"610124119","name":"陈河镇"},{"code":"610124120","name":"板房子镇"},{"code":"610124121","name":"王家河镇"}]}]},{"code":"6102","name":"铜川市","children":[{"code":"610202","name":"王益区","children":[{"code":"610202001","name":"七一路街道"},{"code":"610202002","name":"红旗街街道"},{"code":"610202003","name":"桃园街道"},{"code":"610202004","name":"青年路街道"},{"code":"610202005","name":"王家河街道"},{"code":"610202006","name":"王益街道"},{"code":"610202100","name":"黄堡镇"}]},{"code":"610203","name":"印台区","children":[{"code":"610203001","name":"城关街道"},{"code":"610203002","name":"三里洞街道"},{"code":"610203003","name":"王石凹街道"},{"code":"610203004","name":"印台街道"},{"code":"610203100","name":"陈炉镇"},{"code":"610203101","name":"红土镇"},{"code":"610203102","name":"广阳镇"},{"code":"610203104","name":"金锁关镇"},{"code":"610203106","name":"阿庄镇"}]},{"code":"610204","name":"耀州区","children":[{"code":"610204001","name":"永安路街道"},{"code":"610204002","name":"天宝路街道"},{"code":"610204003","name":"咸丰路街道"},{"code":"610204004","name":"正阳路街道"},{"code":"610204005","name":"锦阳路街道"},{"code":"610204006","name":"坡头街道"},{"code":"610204101","name":"董家河镇"},{"code":"610204102","name":"庙湾镇"},{"code":"610204103","name":"瑶曲镇"},{"code":"610204104","name":"照金镇"},{"code":"610204107","name":"小丘镇"},{"code":"610204108","name":"孙原镇"},{"code":"610204109","name":"关庄镇"},{"code":"610204111","name":"石柱镇"}]},{"code":"610222","name":"宜君县","children":[{"code":"610222001","name":"宜阳街道"},{"code":"610222101","name":"彭镇"},{"code":"610222102","name":"五里镇"},{"code":"610222103","name":"太安镇"},{"code":"610222104","name":"棋盘镇"},{"code":"610222105","name":"尧生镇"},{"code":"610222106","name":"哭泉镇"},{"code":"610222201","name":"云梦乡"}]}]},{"code":"6103","name":"宝鸡市","children":[{"code":"610302","name":"渭滨区","children":[{"code":"610302001","name":"金陵街道"},{"code":"610302002","name":"经二路街道"},{"code":"610302003","name":"清姜街道"},{"code":"610302004","name":"姜谭街道"},{"code":"610302005","name":"桥南街道"},{"code":"610302100","name":"马营镇"},{"code":"610302101","name":"石鼓镇"},{"code":"610302102","name":"神农镇"},{"code":"610302103","name":"高家镇"},{"code":"610302104","name":"八鱼镇"}]},{"code":"610303","name":"金台区","children":[{"code":"610303001","name":"中山东路街道"},{"code":"610303002","name":"西关街道"},{"code":"610303003","name":"中山西路街道"},{"code":"610303004","name":"群众路街道"},{"code":"610303006","name":"东风路街道"},{"code":"610303007","name":"十里铺街道"},{"code":"610303008","name":"卧龙寺街道"},{"code":"610303100","name":"陈仓镇"},{"code":"610303101","name":"蟠龙镇"},{"code":"610303102","name":"金河镇"},{"code":"610303103","name":"硖石镇"}]},{"code":"610304","name":"陈仓区","children":[{"code":"610304001","name":"虢镇街道"},{"code":"610304002","name":"东关街道"},{"code":"610304003","name":"千渭街道"},{"code":"610304101","name":"阳平镇"},{"code":"610304102","name":"千河镇"},{"code":"610304103","name":"磻溪镇"},{"code":"610304104","name":"天王镇"},{"code":"610304105","name":"慕仪镇"},{"code":"610304106","name":"周原镇"},{"code":"610304107","name":"贾村镇"},{"code":"610304109","name":"县功镇"},{"code":"610304110","name":"新街镇"},{"code":"610304111","name":"坪头镇"},{"code":"610304112","name":"香泉镇"},{"code":"610304113","name":"赤沙镇"},{"code":"610304114","name":"拓石镇"},{"code":"610304115","name":"凤阁岭镇"},{"code":"610304116","name":"钓渭镇"}]},{"code":"610305","name":"凤翔区","children":[{"code":"610305100","name":"城关镇"},{"code":"610305101","name":"虢王镇"},{"code":"610305102","name":"彪角镇"},{"code":"610305103","name":"横水镇"},{"code":"610305104","name":"田家庄镇"},{"code":"610305105","name":"糜杆桥镇"},{"code":"610305107","name":"南指挥镇"},{"code":"610305108","name":"陈村镇"},{"code":"610305109","name":"长青镇"},{"code":"610305110","name":"柳林镇"},{"code":"610305111","name":"姚家沟镇"},{"code":"610305112","name":"范家寨镇"}]},{"code":"610323","name":"岐山县","children":[{"code":"610323100","name":"凤鸣镇"},{"code":"610323101","name":"蔡家坡镇"},{"code":"610323103","name":"益店镇"},{"code":"610323104","name":"蒲村镇"},{"code":"610323106","name":"青化镇"},{"code":"610323107","name":"枣林镇"},{"code":"610323108","name":"雍川镇"},{"code":"610323111","name":"故郡镇"},{"code":"610323112","name":"京当镇"}]},{"code":"610324","name":"扶风县","children":[{"code":"610324001","name":"城关街道"},{"code":"610324101","name":"天度镇"},{"code":"610324102","name":"午井镇"},{"code":"610324103","name":"绛帐镇"},{"code":"610324104","name":"段家镇"},{"code":"610324105","name":"杏林镇"},{"code":"610324106","name":"召公镇"},{"code":"610324107","name":"法门镇"}]},{"code":"610326","name":"眉县","children":[{"code":"610326001","name":"首善街道"},{"code":"610326101","name":"横渠镇"},{"code":"610326102","name":"槐芽镇"},{"code":"610326103","name":"汤峪镇"},{"code":"610326104","name":"常兴镇"},{"code":"610326105","name":"金渠镇"},{"code":"610326106","name":"营头镇"},{"code":"610326107","name":"齐镇"},{"code":"610326400","name":"陕西省太白山旅游区"},{"code":"610326401","name":"红河谷森林公园"}]},{"code":"610327","name":"陇县","children":[{"code":"610327100","name":"城关镇"},{"code":"610327101","name":"东风镇"},{"code":"610327102","name":"八渡镇"},{"code":"610327104","name":"东南镇"},{"code":"610327106","name":"温水镇"},{"code":"610327107","name":"天成镇"},{"code":"610327108","name":"曹家湾镇"},{"code":"610327109","name":"固关镇"},{"code":"610327112","name":"河北镇"},{"code":"610327113","name":"新集川镇"}]},{"code":"610328","name":"千阳县","children":[{"code":"610328100","name":"城关镇"},{"code":"610328101","name":"崔家头镇"},{"code":"610328102","name":"南寨镇"},{"code":"610328103","name":"张家塬镇"},{"code":"610328104","name":"水沟镇"},{"code":"610328105","name":"草碧镇"},{"code":"610328107","name":"高崖镇"}]},{"code":"610329","name":"麟游县","children":[{"code":"610329100","name":"九成宫镇"},{"code":"610329101","name":"崔木镇"},{"code":"610329102","name":"招贤镇"},{"code":"610329103","name":"两亭镇"},{"code":"610329105","name":"常丰镇"},{"code":"610329106","name":"丈八镇"},{"code":"610329107","name":"酒房镇"}]},{"code":"610330","name":"凤县","children":[{"code":"610330100","name":"双石铺镇"},{"code":"610330101","name":"凤州镇"},{"code":"610330102","name":"黄牛铺镇"},{"code":"610330103","name":"红花铺镇"},{"code":"610330104","name":"河口镇"},{"code":"610330105","name":"唐藏镇"},{"code":"610330106","name":"平木镇"},{"code":"610330107","name":"坪坎镇"},{"code":"610330110","name":"留凤关镇"},{"code":"610330400","name":"马头滩林业局"},{"code":"610330401","name":"辛家山林业场"}]},{"code":"610331","name":"太白县","children":[{"code":"610331100","name":"咀头镇"},{"code":"610331101","name":"桃川镇"},{"code":"610331102","name":"鹦鸽镇"},{"code":"610331103","name":"靖口镇"},{"code":"610331104","name":"太白河镇"},{"code":"610331105","name":"黄柏塬镇"},{"code":"610331106","name":"王家堎镇"}]}]},{"code":"6104","name":"咸阳市","children":[{"code":"610402","name":"秦都区","children":[{"code":"610402001","name":"人民路街道"},{"code":"610402002","name":"西兰路街道"},{"code":"610402003","name":"吴家堡街道"},{"code":"610402004","name":"渭阳西路街道"},{"code":"610402005","name":"陈杨寨街道"},{"code":"610402006","name":"古渡街道"},{"code":"610402007","name":"上林街道"},{"code":"610402008","name":"钓台街道"},{"code":"610402009","name":"马泉街道"},{"code":"610402010","name":"渭滨街道"},{"code":"610402011","name":"双照街道"},{"code":"610402012","name":"马庄街道"}]},{"code":"610403","name":"杨陵区","children":[{"code":"610403001","name":"杨陵街道"},{"code":"610403002","name":"李台街道"},{"code":"610403003","name":"大寨街道"},{"code":"610403100","name":"五泉镇"},{"code":"610403102","name":"揉谷镇"}]},{"code":"610404","name":"渭城区","children":[{"code":"610404001","name":"中山街街道"},{"code":"610404002","name":"文汇路街道"},{"code":"610404003","name":"新兴路街道"},{"code":"610404004","name":"渭阳街道"},{"code":"610404005","name":"渭城街道"},{"code":"610404006","name":"窑店街道"},{"code":"610404007","name":"正阳街道"},{"code":"610404008","name":"周陵街道"},{"code":"610404009","name":"底张街道"},{"code":"610404010","name":"北杜街道"}]},{"code":"610422","name":"三原县","children":[{"code":"610422001","name":"城关街道"},{"code":"610422102","name":"陂西镇"},{"code":"610422103","name":"独李镇"},{"code":"610422104","name":"大程镇"},{"code":"610422105","name":"西阳镇"},{"code":"610422106","name":"鲁桥镇"},{"code":"610422107","name":"陵前镇"},{"code":"610422109","name":"新兴镇"},{"code":"610422110","name":"嵯峨镇"},{"code":"610422111","name":"渠岸镇"}]},{"code":"610423","name":"泾阳县","children":[{"code":"610423001","name":"泾干街道"},{"code":"610423101","name":"永乐镇"},{"code":"610423102","name":"云阳镇"},{"code":"610423103","name":"桥底镇"},{"code":"610423104","name":"王桥镇"},{"code":"610423105","name":"口镇"},{"code":"610423107","name":"三渠镇"},{"code":"610423108","name":"高庄镇"},{"code":"610423111","name":"太平镇"},{"code":"610423112","name":"崇文镇"},{"code":"610423113","name":"安吴镇"},{"code":"610423114","name":"兴隆镇"},{"code":"610423115","name":"中张镇"}]},{"code":"610424","name":"乾县","children":[{"code":"610424001","name":"城关街道"},{"code":"610424101","name":"薛录镇"},{"code":"610424102","name":"梁村镇"},{"code":"610424103","name":"临平镇"},{"code":"610424104","name":"姜村镇"},{"code":"610424105","name":"王村镇"},{"code":"610424106","name":"马连镇"},{"code":"610424107","name":"阳峪镇"},{"code":"610424108","name":"峰阳镇"},{"code":"610424109","name":"注泔镇"},{"code":"610424110","name":"灵源镇"},{"code":"610424111","name":"阳洪镇"},{"code":"610424112","name":"梁山镇"},{"code":"610424113","name":"周城镇"},{"code":"610424114","name":"新阳镇"},{"code":"610424115","name":"大杨镇"}]},{"code":"610425","name":"礼泉县","children":[{"code":"610425001","name":"城关街道"},{"code":"610425101","name":"史德镇"},{"code":"610425102","name":"西张堡镇"},{"code":"610425103","name":"阡东镇"},{"code":"610425104","name":"烽火镇"},{"code":"610425105","name":"烟霞镇"},{"code":"610425106","name":"赵镇"},{"code":"610425108","name":"叱干镇"},{"code":"610425109","name":"南坊镇"},{"code":"610425110","name":"石潭镇"},{"code":"610425111","name":"昭陵镇"},{"code":"610425112","name":"骏马镇"}]},{"code":"610426","name":"永寿县","children":[{"code":"610426001","name":"监军街道"},{"code":"610426101","name":"店头镇"},{"code":"610426102","name":"常宁镇"},{"code":"610426104","name":"甘井镇"},{"code":"610426105","name":"马坊镇"},{"code":"610426108","name":"渠子镇"},{"code":"610426110","name":"永平镇"}]},{"code":"610428","name":"长武县","children":[{"code":"610428001","name":"昭仁街道"},{"code":"610428101","name":"相公镇"},{"code":"610428102","name":"巨家镇"},{"code":"610428103","name":"丁家镇"},{"code":"610428104","name":"洪家镇"},{"code":"610428105","name":"亭口镇"},{"code":"610428106","name":"彭公镇"},{"code":"610428108","name":"枣园镇"}]},{"code":"610429","name":"旬邑县","children":[{"code":"610429001","name":"城关街道"},{"code":"610429101","name":"土桥镇"},{"code":"610429102","name":"职田镇"},{"code":"610429103","name":"张洪镇"},{"code":"610429104","name":"太村镇"},{"code":"610429105","name":"郑家镇"},{"code":"610429106","name":"湫坡头镇"},{"code":"610429107","name":"底庙镇"},{"code":"610429109","name":"马栏镇"},{"code":"610429110","name":"清塬镇"}]},{"code":"610430","name":"淳化县","children":[{"code":"610430001","name":"城关街道"},{"code":"610430101","name":"官庄镇"},{"code":"610430103","name":"方里镇"},{"code":"610430104","name":"润镇"},{"code":"610430105","name":"车坞镇"},{"code":"610430106","name":"铁王镇"},{"code":"610430107","name":"石桥镇"},{"code":"610430109","name":"十里塬镇"}]},{"code":"610431","name":"武功县","children":[{"code":"610431001","name":"普集街道"},{"code":"610431101","name":"苏坊镇"},{"code":"610431102","name":"武功镇"},{"code":"610431103","name":"游凤镇"},{"code":"610431104","name":"贞元镇"},{"code":"610431105","name":"长宁镇"},{"code":"610431106","name":"小村镇"},{"code":"610431107","name":"大庄镇"}]},{"code":"610481","name":"兴平市","children":[{"code":"610481001","name":"东城街道"},{"code":"610481002","name":"西城街道"},{"code":"610481003","name":"店张街道"},{"code":"610481004","name":"西吴街道"},{"code":"610481005","name":"马嵬街道"},{"code":"610481101","name":"赵村镇"},{"code":"610481102","name":"桑镇"},{"code":"610481104","name":"南市镇"},{"code":"610481105","name":"庄头镇"},{"code":"610481106","name":"南位镇"},{"code":"610481107","name":"阜寨镇"},{"code":"610481108","name":"丰仪镇"},{"code":"610481109","name":"汤坊镇"}]},{"code":"610482","name":"彬州市","children":[{"code":"610482001","name":"城关街道"},{"code":"610482002","name":"豳风街道"},{"code":"610482101","name":"北极镇"},{"code":"610482102","name":"新民镇"},{"code":"610482103","name":"龙高镇"},{"code":"610482105","name":"永乐镇"},{"code":"610482106","name":"义门镇"},{"code":"610482107","name":"水口镇"},{"code":"610482108","name":"韩家镇"},{"code":"610482109","name":"太峪镇"}]}]},{"code":"6105","name":"渭南市","children":[{"code":"610502","name":"临渭区","children":[{"code":"610502001","name":"人民街道"},{"code":"610502002","name":"杜桥街道"},{"code":"610502003","name":"解放街道"},{"code":"610502004","name":"向阳街道"},{"code":"610502005","name":"站南街道"},{"code":"610502006","name":"双王街道"},{"code":"610502007","name":"良田街道"},{"code":"610502008","name":"崇业路街道"},{"code":"610502009","name":"辛市街道"},{"code":"610502010","name":"龙背街道"},{"code":"610502011","name":"阳曲街道"},{"code":"610502012","name":"信义街道"},{"code":"610502013","name":"白杨街道"},{"code":"610502100","name":"桥南镇"},{"code":"610502101","name":"阳郭镇"},{"code":"610502102","name":"故市镇"},{"code":"610502103","name":"下邽镇"},{"code":"610502104","name":"三张镇"},{"code":"610502105","name":"交斜镇"},{"code":"610502107","name":"崇凝镇"},{"code":"610502108","name":"孝义镇"},{"code":"610502109","name":"蔺店镇"},{"code":"610502111","name":"官底镇"},{"code":"610502112","name":"官路镇"},{"code":"610502113","name":"丰原镇"},{"code":"610502114","name":"阎村镇"},{"code":"610502116","name":"官道镇"}]},{"code":"610503","name":"华州区","children":[{"code":"610503001","name":"华州街道"},{"code":"610503101","name":"杏林镇"},{"code":"610503102","name":"赤水镇"},{"code":"610503103","name":"高塘镇"},{"code":"610503104","name":"大明镇"},{"code":"610503105","name":"瓜坡镇"},{"code":"610503106","name":"莲花寺镇"},{"code":"610503107","name":"柳枝镇"},{"code":"610503108","name":"下庙镇"},{"code":"610503109","name":"金堆镇"}]},{"code":"610522","name":"潼关县","children":[{"code":"610522001","name":"城关街道"},{"code":"610522101","name":"秦东镇"},{"code":"610522102","name":"太要镇"},{"code":"610522103","name":"桐峪镇"},{"code":"610522104","name":"代字营镇"}]},{"code":"610523","name":"大荔县","children":[{"code":"610523001","name":"西城街道"},{"code":"610523002","name":"东城街道"},{"code":"610523101","name":"许庄镇"},{"code":"610523102","name":"朝邑镇"},{"code":"610523103","name":"安仁镇"},{"code":"610523104","name":"两宜镇"},{"code":"610523105","name":"羌白镇"},{"code":"610523106","name":"官池镇"},{"code":"610523107","name":"冯村镇"},{"code":"610523108","name":"双泉镇"},{"code":"610523110","name":"下寨镇"},{"code":"610523111","name":"韦林镇"},{"code":"610523112","name":"范家镇"},{"code":"610523113","name":"苏村镇"},{"code":"610523114","name":"赵渡镇"},{"code":"610523116","name":"埝桥镇"},{"code":"610523117","name":"段家镇"}]},{"code":"610524","name":"合阳县","children":[{"code":"610524001","name":"城关街道"},{"code":"610524101","name":"甘井镇"},{"code":"610524102","name":"坊镇"},{"code":"610524103","name":"洽川镇"},{"code":"610524104","name":"新池镇"},{"code":"610524105","name":"黑池镇"},{"code":"610524106","name":"路井镇"},{"code":"610524107","name":"和家庄镇"},{"code":"610524108","name":"王村镇"},{"code":"610524110","name":"同家庄镇"},{"code":"610524111","name":"百良镇"},{"code":"610524112","name":"金峪镇"}]},{"code":"610525","name":"澄城县","children":[{"code":"610525001","name":"城关街道"},{"code":"610525101","name":"冯原镇"},{"code":"610525102","name":"王庄镇"},{"code":"610525103","name":"尧头镇"},{"code":"610525104","name":"赵庄镇"},{"code":"610525105","name":"交道镇"},{"code":"610525106","name":"寺前镇"},{"code":"610525107","name":"韦庄镇"},{"code":"610525108","name":"安里镇"},{"code":"610525109","name":"庄头镇"}]},{"code":"610526","name":"蒲城县","children":[{"code":"610526001","name":"奉先街道"},{"code":"610526002","name":"紫荆街道"},{"code":"610526101","name":"罕井镇"},{"code":"610526102","name":"孙镇"},{"code":"610526103","name":"兴镇"},{"code":"610526104","name":"党睦镇"},{"code":"610526105","name":"高阳镇"},{"code":"610526106","name":"永丰镇"},{"code":"610526107","name":"荆姚镇"},{"code":"610526108","name":"苏坊镇"},{"code":"610526109","name":"龙阳镇"},{"code":"610526112","name":"洛滨镇"},{"code":"610526113","name":"陈庄镇"},{"code":"610526114","name":"桥陵镇"},{"code":"610526116","name":"尧山镇"},{"code":"610526117","name":"椿林镇"},{"code":"610526118","name":"龙池镇"}]},{"code":"610527","name":"白水县","children":[{"code":"610527001","name":"城关街道"},{"code":"610527102","name":"尧禾镇"},{"code":"610527103","name":"杜康镇"},{"code":"610527104","name":"西固镇"},{"code":"610527105","name":"林皋镇"},{"code":"610527106","name":"史官镇"},{"code":"610527107","name":"北塬镇"},{"code":"610527109","name":"雷牙镇"}]},{"code":"610528","name":"富平县","children":[{"code":"610528001","name":"城关街道"},{"code":"610528101","name":"庄里镇"},{"code":"610528102","name":"张桥镇"},{"code":"610528103","name":"美原镇"},{"code":"610528104","name":"流曲镇"},{"code":"610528105","name":"淡村镇"},{"code":"610528107","name":"留古镇"},{"code":"610528108","name":"老庙镇"},{"code":"610528109","name":"薛镇"},{"code":"610528110","name":"到贤镇"},{"code":"610528111","name":"曹村镇"},{"code":"610528112","name":"宫里镇"},{"code":"610528113","name":"梅家坪镇"},{"code":"610528114","name":"刘集镇"},{"code":"610528115","name":"齐村镇"}]},{"code":"610581","name":"韩城市","children":[{"code":"610581001","name":"新城街道"},{"code":"610581002","name":"金城街道"},{"code":"610581100","name":"龙门镇"},{"code":"610581101","name":"桑树坪镇"},{"code":"610581103","name":"芝川镇"},{"code":"610581104","name":"西庄镇"},{"code":"610581106","name":"芝阳镇"},{"code":"610581107","name":"板桥镇"}]},{"code":"610582","name":"华阴市","children":[{"code":"610582001","name":"太华路街道"},{"code":"610582002","name":"岳庙街道"},{"code":"610582100","name":"孟塬镇"},{"code":"610582103","name":"华西镇"},{"code":"610582104","name":"罗敷镇"},{"code":"610582105","name":"华山镇"},{"code":"610582400","name":"国营陕西华山企业公司"}]}]},{"code":"6106","name":"延安市","children":[{"code":"610602","name":"宝塔区","children":[{"code":"610602001","name":"宝塔山街道"},{"code":"610602002","name":"南市街道"},{"code":"610602003","name":"凤凰山街道"},{"code":"610602004","name":"枣园街道"},{"code":"610602005","name":"桥沟街道"},{"code":"610602006","name":"新城街道"},{"code":"610602102","name":"河庄坪镇"},{"code":"610602103","name":"李渠镇"},{"code":"610602104","name":"姚店镇"},{"code":"610602105","name":"青化砭镇"},{"code":"610602106","name":"蟠龙镇"},{"code":"610602107","name":"柳林镇"},{"code":"610602108","name":"南泥湾镇"},{"code":"610602109","name":"临镇"},{"code":"610602110","name":"甘谷驿镇"},{"code":"610602111","name":"万花山镇"},{"code":"610602112","name":"川口镇"},{"code":"610602113","name":"麻洞川镇"},{"code":"610602202","name":"冯庄乡"}]},{"code":"610603","name":"安塞区","children":[{"code":"610603001","name":"真武洞街道"},{"code":"610603002","name":"金明街道"},{"code":"610603003","name":"白坪街道"},{"code":"610603101","name":"砖窑湾镇"},{"code":"610603102","name":"沿河湾镇"},{"code":"610603103","name":"招安镇"},{"code":"610603104","name":"化子坪镇"},{"code":"610603105","name":"坪桥镇"},{"code":"610603106","name":"建华镇"},{"code":"610603107","name":"高桥镇"},{"code":"610603108","name":"镰刀湾镇"}]},{"code":"610621","name":"延长县","children":[{"code":"610621001","name":"七里村街道"},{"code":"610621101","name":"黑家堡镇"},{"code":"610621102","name":"郑庄镇"},{"code":"610621103","name":"张家滩镇"},{"code":"610621104","name":"交口镇"},{"code":"610621106","name":"雷赤镇"},{"code":"610621107","name":"罗子山镇"},{"code":"610621108","name":"安沟镇"}]},{"code":"610622","name":"延川县","children":[{"code":"610622001","name":"大禹街道"},{"code":"610622101","name":"永坪镇"},{"code":"610622102","name":"延水关镇"},{"code":"610622103","name":"文安驿镇"},{"code":"610622104","name":"杨家圪台镇"},{"code":"610622105","name":"贾家坪镇"},{"code":"610622107","name":"关庄镇"},{"code":"610622108","name":"乾坤湾镇"}]},{"code":"610625","name":"志丹县","children":[{"code":"610625001","name":"保安街道"},{"code":"610625101","name":"杏河镇"},{"code":"610625102","name":"顺宁镇"},{"code":"610625103","name":"旦八镇"},{"code":"610625104","name":"金丁镇"},{"code":"610625105","name":"永宁镇"},{"code":"610625106","name":"义正镇"},{"code":"610625107","name":"双河镇"}]},{"code":"610626","name":"吴起县","children":[{"code":"610626001","name":"吴起街道"},{"code":"610626101","name":"铁边城镇"},{"code":"610626102","name":"周湾镇"},{"code":"610626103","name":"白豹镇"},{"code":"610626104","name":"长官庙镇"},{"code":"610626105","name":"长城镇"},{"code":"610626106","name":"五谷城镇"},{"code":"610626107","name":"吴仓堡镇"},{"code":"610626108","name":"庙沟镇"}]},{"code":"610627","name":"甘泉县","children":[{"code":"610627001","name":"美水街道"},{"code":"610627101","name":"下寺湾镇"},{"code":"610627102","name":"道镇"},{"code":"610627103","name":"石门镇"},{"code":"610627200","name":"桥镇乡"},{"code":"610627203","name":"劳山乡"}]},{"code":"610628","name":"富县","children":[{"code":"610628001","name":"茶坊街道"},{"code":"610628101","name":"羊泉镇"},{"code":"610628102","name":"张村驿镇"},{"code":"610628103","name":"张家湾镇"},{"code":"610628104","name":"直罗镇"},{"code":"610628106","name":"牛武镇"},{"code":"610628109","name":"寺仙镇"},{"code":"610628204","name":"北道德乡"}]},{"code":"610629","name":"洛川县","children":[{"code":"610629001","name":"凤栖街道"},{"code":"610629101","name":"旧县镇"},{"code":"610629102","name":"交口河镇"},{"code":"610629103","name":"老庙镇"},{"code":"610629104","name":"土基镇"},{"code":"610629105","name":"石头镇"},{"code":"610629106","name":"槐柏镇"},{"code":"610629107","name":"永乡镇"},{"code":"610629108","name":"菩提镇"}]},{"code":"610630","name":"宜川县","children":[{"code":"610630001","name":"丹州街道"},{"code":"610630101","name":"秋林镇"},{"code":"610630102","name":"云岩镇"},{"code":"610630104","name":"集义镇"},{"code":"610630105","name":"壶口镇"},{"code":"610630200","name":"英旺乡"},{"code":"610630201","name":"交里乡"}]},{"code":"610631","name":"黄龙县","children":[{"code":"610631100","name":"石堡镇"},{"code":"610631101","name":"白马滩镇"},{"code":"610631102","name":"瓦子街镇"},{"code":"610631106","name":"界头庙镇"},{"code":"610631107","name":"三岔镇"},{"code":"610631205","name":"圪台乡"},{"code":"610631206","name":"崾崄乡"}]},{"code":"610632","name":"黄陵县","children":[{"code":"610632001","name":"桥山街道"},{"code":"610632101","name":"店头镇"},{"code":"610632102","name":"隆坊镇"},{"code":"610632103","name":"田庄镇"},{"code":"610632104","name":"阿党镇"},{"code":"610632105","name":"双龙镇"}]},{"code":"610681","name":"子长市","children":[{"code":"610681001","name":"瓦窑堡街道"},{"code":"610681002","name":"秀延街道"},{"code":"610681003","name":"栾家坪街道"},{"code":"610681101","name":"杨家园则镇"},{"code":"610681102","name":"玉家湾镇"},{"code":"610681103","name":"安定镇"},{"code":"610681104","name":"马家砭镇"},{"code":"610681105","name":"南沟岔镇"},{"code":"610681106","name":"涧峪岔镇"},{"code":"610681107","name":"李家岔镇"},{"code":"610681108","name":"余家坪镇"}]}]},{"code":"6107","name":"汉中市","children":[{"code":"610702","name":"汉台区","children":[{"code":"610702001","name":"北关街道"},{"code":"610702002","name":"东大街街道"},{"code":"610702003","name":"汉中路街道"},{"code":"610702004","name":"中山街街道"},{"code":"610702005","name":"东关街道"},{"code":"610702006","name":"鑫源街道"},{"code":"610702008","name":"七里街道"},{"code":"610702009","name":"龙江街道"},{"code":"610702100","name":"铺镇"},{"code":"610702101","name":"武乡镇"},{"code":"610702102","name":"河东店镇"},{"code":"610702104","name":"宗营镇"},{"code":"610702105","name":"老君镇"},{"code":"610702106","name":"汉王镇"},{"code":"610702107","name":"徐望镇"}]},{"code":"610703","name":"南郑区","children":[{"code":"610703001","name":"汉山街道"},{"code":"610703002","name":"中所营街道"},{"code":"610703101","name":"圣水镇"},{"code":"610703102","name":"大河坎镇"},{"code":"610703103","name":"协税镇"},{"code":"610703104","name":"梁山镇"},{"code":"610703105","name":"阳春镇"},{"code":"610703106","name":"高台镇"},{"code":"610703107","name":"新集镇"},{"code":"610703108","name":"濂水镇"},{"code":"610703109","name":"黄官镇"},{"code":"610703110","name":"青树镇"},{"code":"610703111","name":"红庙镇"},{"code":"610703112","name":"牟家坝镇"},{"code":"610703113","name":"法镇"},{"code":"610703114","name":"湘水镇"},{"code":"610703115","name":"小南海镇"},{"code":"610703116","name":"碑坝镇"},{"code":"610703117","name":"黎坪镇"},{"code":"610703118","name":"福成镇"},{"code":"610703119","name":"两河镇"},{"code":"610703120","name":"胡家营镇"}]},{"code":"610722","name":"城固县","children":[{"code":"610722001","name":"博望街道"},{"code":"610722002","name":"莲花街道"},{"code":"610722101","name":"龙头镇"},{"code":"610722102","name":"沙河营镇"},{"code":"610722103","name":"文川镇"},{"code":"610722104","name":"柳林镇"},{"code":"610722105","name":"老庄镇"},{"code":"610722107","name":"桔园镇"},{"code":"610722108","name":"原公镇"},{"code":"610722109","name":"上元观镇"},{"code":"610722110","name":"天明镇"},{"code":"610722111","name":"二里镇"},{"code":"610722112","name":"五堵镇"},{"code":"610722114","name":"双溪镇"},{"code":"610722116","name":"小河镇"},{"code":"610722119","name":"董家营镇"},{"code":"610722120","name":"三合镇"},{"code":"610722400","name":"陕西飞机制造公司"}]},{"code":"610723","name":"洋县","children":[{"code":"610723001","name":"洋州街道"},{"code":"610723002","name":"纸坊街道"},{"code":"610723003","name":"戚氏街道"},{"code":"610723103","name":"龙亭镇"},{"code":"610723104","name":"谢村镇"},{"code":"610723105","name":"马畅镇"},{"code":"610723107","name":"溢水镇"},{"code":"610723108","name":"磨子桥镇"},{"code":"610723109","name":"黄家营镇"},{"code":"610723110","name":"黄安镇"},{"code":"610723111","name":"黄金峡镇"},{"code":"610723112","name":"槐树关镇"},{"code":"610723113","name":"金水镇"},{"code":"610723114","name":"华阳镇"},{"code":"610723115","name":"茅坪镇"},{"code":"610723119","name":"八里关镇"},{"code":"610723120","name":"桑溪镇"},{"code":"610723121","name":"关帝镇"}]},{"code":"610724","name":"西乡县","children":[{"code":"610724001","name":"城北街道"},{"code":"610724002","name":"城南街道"},{"code":"610724101","name":"杨河镇"},{"code":"610724102","name":"柳树镇"},{"code":"610724103","name":"沙河镇"},{"code":"610724104","name":"私渡镇"},{"code":"610724105","name":"桑园镇"},{"code":"610724106","name":"白龙塘镇"},{"code":"610724108","name":"峡口镇"},{"code":"610724109","name":"堰口镇"},{"code":"610724110","name":"茶镇"},{"code":"610724111","name":"高川镇"},{"code":"610724112","name":"两河口镇"},{"code":"610724114","name":"大河镇"},{"code":"610724116","name":"骆家坝镇"},{"code":"610724117","name":"子午镇"},{"code":"610724118","name":"白勉峡镇"}]},{"code":"610725","name":"勉县","children":[{"code":"610725001","name":"勉阳街道"},{"code":"610725101","name":"武侯镇"},{"code":"610725102","name":"周家山镇"},{"code":"610725103","name":"同沟寺镇"},{"code":"610725105","name":"新街子镇"},{"code":"610725106","name":"老道寺镇"},{"code":"610725107","name":"褒城镇"},{"code":"610725109","name":"金泉镇"},{"code":"610725110","name":"定军山镇"},{"code":"610725111","name":"温泉镇"},{"code":"610725112","name":"元墩镇"},{"code":"610725113","name":"阜川镇"},{"code":"610725114","name":"新铺镇"},{"code":"610725116","name":"茶店镇"},{"code":"610725117","name":"镇川镇"},{"code":"610725118","name":"漆树坝镇"},{"code":"610725119","name":"张家河镇"},{"code":"610725120","name":"长沟河镇"}]},{"code":"610726","name":"宁强县","children":[{"code":"610726001","name":"汉源街道"},{"code":"610726002","name":"高寨子街道"},{"code":"610726102","name":"大安镇"},{"code":"610726103","name":"代家坝镇"},{"code":"610726104","name":"阳平关镇"},{"code":"610726105","name":"燕子砭镇"},{"code":"610726106","name":"广坪镇"},{"code":"610726107","name":"青木川镇"},{"code":"610726108","name":"毛坝河镇"},{"code":"610726109","name":"铁锁关镇"},{"code":"610726110","name":"胡家坝镇"},{"code":"610726111","name":"巴山镇"},{"code":"610726112","name":"巨亭镇"},{"code":"610726113","name":"舒家坝镇"},{"code":"610726117","name":"太阳岭镇"},{"code":"610726118","name":"安乐河镇"},{"code":"610726119","name":"二郎坝镇"},{"code":"610726120","name":"禅家岩镇"}]},{"code":"610727","name":"略阳县","children":[{"code":"610727001","name":"兴州街道"},{"code":"610727002","name":"横现河街道"},{"code":"610727101","name":"接官亭镇"},{"code":"610727102","name":"西淮坝镇"},{"code":"610727103","name":"两河口镇"},{"code":"610727104","name":"金家河镇"},{"code":"610727105","name":"徐家坪镇"},{"code":"610727106","name":"白水江镇"},{"code":"610727107","name":"硖口驿镇"},{"code":"610727108","name":"马蹄湾镇"},{"code":"610727109","name":"乐素河镇"},{"code":"610727110","name":"郭镇"},{"code":"610727111","name":"黑河镇"},{"code":"610727112","name":"白雀寺镇"},{"code":"610727113","name":"仙台坝镇"},{"code":"610727114","name":"五龙洞镇"},{"code":"610727115","name":"观音寺镇"}]},{"code":"610728","name":"镇巴县","children":[{"code":"610728001","name":"泾洋街道"},{"code":"610728101","name":"渔渡镇"},{"code":"610728102","name":"盐场镇"},{"code":"610728103","name":"观音镇"},{"code":"610728104","name":"巴庙镇"},{"code":"610728105","name":"兴隆镇"},{"code":"610728106","name":"长岭镇"},{"code":"610728107","name":"三元镇"},{"code":"610728108","name":"简池镇"},{"code":"610728109","name":"碾子镇"},{"code":"610728110","name":"小洋镇"},{"code":"610728111","name":"青水镇"},{"code":"610728112","name":"赤南镇"},{"code":"610728113","name":"平安镇"},{"code":"610728114","name":"杨家河镇"},{"code":"610728115","name":"巴山镇"},{"code":"610728116","name":"黎坝镇"},{"code":"610728117","name":"仁村镇"},{"code":"610728118","name":"大池镇"},{"code":"610728120","name":"永乐镇"}]},{"code":"610729","name":"留坝县","children":[{"code":"610729001","name":"紫柏街道"},{"code":"610729101","name":"马道镇"},{"code":"610729102","name":"武关驿镇"},{"code":"610729103","name":"留侯镇"},{"code":"610729104","name":"江口镇"},{"code":"610729105","name":"玉皇庙镇"},{"code":"610729106","name":"火烧店镇"},{"code":"610729107","name":"青桥驿镇"}]},{"code":"610730","name":"佛坪县","children":[{"code":"610730001","name":"袁家庄街道"},{"code":"610730101","name":"陈家坝镇"},{"code":"610730102","name":"大河坝镇"},{"code":"610730103","name":"西岔河镇"},{"code":"610730104","name":"岳坝镇"},{"code":"610730105","name":"长角坝镇"},{"code":"610730106","name":"石墩河镇"}]}]},{"code":"6108","name":"榆林市","children":[{"code":"610802","name":"榆阳区","children":[{"code":"610802001","name":"鼓楼街道"},{"code":"610802002","name":"青山路街道"},{"code":"610802003","name":"上郡路街道"},{"code":"610802004","name":"新明楼街道"},{"code":"610802005","name":"驼峰路街道"},{"code":"610802006","name":"崇文路街道"},{"code":"610802007","name":"航宇路街道"},{"code":"610802008","name":"长城路街道"},{"code":"610802009","name":"金沙路街道"},{"code":"610802010","name":"朝阳路街道"},{"code":"610802011","name":"沙河路街道"},{"code":"610802012","name":"明珠路街道"},{"code":"610802100","name":"鱼河镇"},{"code":"610802101","name":"上盐湾镇"},{"code":"610802102","name":"镇川镇"},{"code":"610802105","name":"麻黄梁镇"},{"code":"610802106","name":"牛家梁镇"},{"code":"610802107","name":"金鸡滩镇"},{"code":"610802108","name":"马合镇"},{"code":"610802109","name":"巴拉素镇"},{"code":"610802111","name":"鱼河峁镇"},{"code":"610802112","name":"青云镇"},{"code":"610802113","name":"古塔镇"},{"code":"610802114","name":"大河塔镇"},{"code":"610802115","name":"小纪汗镇"},{"code":"610802116","name":"芹河镇"},{"code":"610802205","name":"孟家湾乡"},{"code":"610802206","name":"小壕兔乡"},{"code":"610802207","name":"岔河则乡"},{"code":"610802208","name":"补浪河乡"},{"code":"610802209","name":"红石桥乡"}]},{"code":"610803","name":"横山区","children":[{"code":"610803001","name":"城关街道"},{"code":"610803002","name":"怀远街道"},{"code":"610803003","name":"夏州街道"},{"code":"610803004","name":"怀仁路街道"},{"code":"610803005","name":"崇德路街道"},{"code":"610803101","name":"石湾镇"},{"code":"610803102","name":"高镇"},{"code":"610803103","name":"武镇"},{"code":"610803104","name":"党岔镇"},{"code":"610803105","name":"响水镇"},{"code":"610803106","name":"波罗镇"},{"code":"610803107","name":"殿市镇"},{"code":"610803108","name":"塔湾镇"},{"code":"610803109","name":"赵石畔镇"},{"code":"610803110","name":"魏家楼镇"},{"code":"610803111","name":"韩岔镇"},{"code":"610803112","name":"白界镇"},{"code":"610803113","name":"雷龙湾镇"}]},{"code":"610822","name":"府谷县","children":[{"code":"610822100","name":"府谷镇"},{"code":"610822101","name":"黄甫镇"},{"code":"610822103","name":"哈镇"},{"code":"610822104","name":"庙沟门镇"},{"code":"610822105","name":"新民镇"},{"code":"610822106","name":"孤山镇"},{"code":"610822107","name":"清水镇"},{"code":"610822108","name":"大昌汗镇"},{"code":"610822109","name":"古城镇"},{"code":"610822110","name":"三道沟镇"},{"code":"610822111","name":"老高川镇"},{"code":"610822112","name":"武家庄镇"},{"code":"610822113","name":"木瓜镇"},{"code":"610822114","name":"田家寨镇"}]},{"code":"610824","name":"靖边县","children":[{"code":"610824001","name":"张家畔街道"},{"code":"610824101","name":"东坑镇"},{"code":"610824102","name":"青阳岔镇"},{"code":"610824103","name":"宁条梁镇"},{"code":"610824104","name":"周河镇"},{"code":"610824105","name":"红墩界镇"},{"code":"610824106","name":"杨桥畔镇"},{"code":"610824107","name":"王渠则镇"},{"code":"610824108","name":"中山涧镇"},{"code":"610824109","name":"杨米涧镇"},{"code":"610824110","name":"天赐湾镇"},{"code":"610824111","name":"小河镇"},{"code":"610824112","name":"龙洲镇"},{"code":"610824113","name":"黄蒿界镇"},{"code":"610824114","name":"海则滩镇"},{"code":"610824115","name":"席麻湾镇"},{"code":"610824116","name":"镇靖镇"}]},{"code":"610825","name":"定边县","children":[{"code":"610825001","name":"定边街道"},{"code":"610825101","name":"贺圈镇"},{"code":"610825102","name":"红柳沟镇"},{"code":"610825103","name":"砖井镇"},{"code":"610825104","name":"白泥井镇"},{"code":"610825105","name":"安边镇"},{"code":"610825106","name":"堆子梁镇"},{"code":"610825107","name":"白湾子镇"},{"code":"610825108","name":"姬塬镇"},{"code":"610825109","name":"杨井镇"},{"code":"610825110","name":"新安边镇"},{"code":"610825111","name":"张崾先镇"},{"code":"610825112","name":"樊学镇"},{"code":"610825113","name":"盐场堡镇"},{"code":"610825114","name":"郝滩镇"},{"code":"610825115","name":"石洞沟镇"},{"code":"610825116","name":"冯地坑镇"},{"code":"610825204","name":"油房庄乡"},{"code":"610825210","name":"学庄乡"}]},{"code":"610826","name":"绥德县","children":[{"code":"610826100","name":"名州镇"},{"code":"610826101","name":"薛家峁镇"},{"code":"610826102","name":"崔家湾镇"},{"code":"610826103","name":"定仙墕镇"},{"code":"610826104","name":"枣林坪镇"},{"code":"610826105","name":"义合镇"},{"code":"610826106","name":"吉镇"},{"code":"610826107","name":"薛家河镇"},{"code":"610826108","name":"四十里铺镇"},{"code":"610826109","name":"石家湾镇"},{"code":"610826110","name":"田庄镇"},{"code":"610826111","name":"中角镇"},{"code":"610826112","name":"满堂川镇"},{"code":"610826113","name":"张家砭镇"},{"code":"610826114","name":"白家硷镇"}]},{"code":"610827","name":"米脂县","children":[{"code":"610827001","name":"银州街道"},{"code":"610827101","name":"桃镇"},{"code":"610827102","name":"龙镇"},{"code":"610827103","name":"杨家沟镇"},{"code":"610827104","name":"杜家石沟镇"},{"code":"610827105","name":"沙家店镇"},{"code":"610827106","name":"印斗镇"},{"code":"610827107","name":"郭兴庄镇"},{"code":"610827108","name":"城郊镇"}]},{"code":"610828","name":"佳县","children":[{"code":"610828001","name":"佳州街道"},{"code":"610828101","name":"坑镇"},{"code":"610828102","name":"店镇"},{"code":"610828103","name":"乌镇"},{"code":"610828104","name":"金明寺镇"},{"code":"610828105","name":"通镇"},{"code":"610828106","name":"王家砭镇"},{"code":"610828107","name":"方塌镇"},{"code":"610828108","name":"朱家坬镇"},{"code":"610828109","name":"螅镇"},{"code":"610828110","name":"朱官寨镇"},{"code":"610828111","name":"刘国具镇"},{"code":"610828112","name":"木头峪镇"}]},{"code":"610829","name":"吴堡县","children":[{"code":"610829001","name":"宋家川街道"},{"code":"610829101","name":"辛家沟镇"},{"code":"610829102","name":"郭家沟镇"},{"code":"610829103","name":"寇家塬镇"},{"code":"610829104","name":"岔上镇"},{"code":"610829105","name":"张家山镇"}]},{"code":"610830","name":"清涧县","children":[{"code":"610830100","name":"宽州镇"},{"code":"610830101","name":"石咀驿镇"},{"code":"610830102","name":"折家坪镇"},{"code":"610830103","name":"玉家河镇"},{"code":"610830104","name":"高杰村镇"},{"code":"610830105","name":"李家塔镇"},{"code":"610830106","name":"店则沟镇"},{"code":"610830107","name":"解家沟镇"},{"code":"610830108","name":"下廿里铺镇"}]},{"code":"610831","name":"子洲县","children":[{"code":"610831001","name":"双湖峪街道"},{"code":"610831101","name":"何家集镇"},{"code":"610831102","name":"老君殿镇"},{"code":"610831103","name":"裴家湾镇"},{"code":"610831104","name":"苗家坪镇"},{"code":"610831105","name":"三川口镇"},{"code":"610831106","name":"马蹄沟镇"},{"code":"610831107","name":"周家硷镇"},{"code":"610831108","name":"电市镇"},{"code":"610831109","name":"砖庙镇"},{"code":"610831110","name":"淮宁湾镇"},{"code":"610831111","name":"马岔镇"},{"code":"610831200","name":"驼耳巷乡"}]},{"code":"610881","name":"神木市","children":[{"code":"610881001","name":"滨河新区街道"},{"code":"610881002","name":"西沙街道"},{"code":"610881003","name":"麟州街道"},{"code":"610881004","name":"迎宾路街道"},{"code":"610881005","name":"永兴街道"},{"code":"610881006","name":"西沟街道"},{"code":"610881101","name":"高家堡镇"},{"code":"610881102","name":"店塔镇"},{"code":"610881103","name":"孙家岔镇"},{"code":"610881104","name":"大柳塔镇"},{"code":"610881105","name":"花石崖镇"},{"code":"610881106","name":"中鸡镇"},{"code":"610881107","name":"贺家川镇"},{"code":"610881108","name":"尔林兔镇"},{"code":"610881109","name":"万镇"},{"code":"610881110","name":"大保当镇"},{"code":"610881111","name":"马镇"},{"code":"610881112","name":"栏杆堡镇"},{"code":"610881113","name":"沙峁镇"},{"code":"610881114","name":"锦界镇"}]}]},{"code":"6109","name":"安康市","children":[{"code":"610902","name":"汉滨区","children":[{"code":"610902001","name":"老城街道"},{"code":"610902002","name":"新城街道"},{"code":"610902003","name":"江北街道"},{"code":"610902004","name":"建民街道"},{"code":"610902100","name":"关庙镇"},{"code":"610902101","name":"张滩镇"},{"code":"610902102","name":"瀛湖镇"},{"code":"610902104","name":"五里镇"},{"code":"610902107","name":"恒口镇"},{"code":"610902109","name":"吉河镇"},{"code":"610902110","name":"流水镇"},{"code":"610902111","name":"大竹园镇"},{"code":"610902112","name":"洪山镇"},{"code":"610902114","name":"茨沟镇"},{"code":"610902115","name":"大河镇"},{"code":"610902116","name":"沈坝镇"},{"code":"610902117","name":"双龙镇"},{"code":"610902118","name":"叶坪镇"},{"code":"610902119","name":"中原镇"},{"code":"610902120","name":"县河镇"},{"code":"610902121","name":"紫荆镇"},{"code":"610902122","name":"早阳镇"},{"code":"610902123","name":"关家镇"},{"code":"610902124","name":"石梯镇"},{"code":"610902125","name":"坝河镇"},{"code":"610902128","name":"牛蹄镇"},{"code":"610902130","name":"晏坝镇"},{"code":"610902132","name":"谭坝镇"}]},{"code":"610921","name":"汉阴县","children":[{"code":"610921100","name":"城关镇"},{"code":"610921101","name":"涧池镇"},{"code":"610921102","name":"蒲溪镇"},{"code":"610921103","name":"平梁镇"},{"code":"610921104","name":"双乳镇"},{"code":"610921105","name":"铁佛寺镇"},{"code":"610921107","name":"漩涡镇"},{"code":"610921108","name":"汉阳镇"},{"code":"610921110","name":"双河口镇"},{"code":"610921112","name":"观音河镇"}]},{"code":"610922","name":"石泉县","children":[{"code":"610922100","name":"城关镇"},{"code":"610922101","name":"饶峰镇"},{"code":"610922102","name":"两河镇"},{"code":"610922103","name":"迎丰镇"},{"code":"610922104","name":"池河镇"},{"code":"610922105","name":"后柳镇"},{"code":"610922106","name":"喜河镇"},{"code":"610922107","name":"熨斗镇"},{"code":"610922108","name":"云雾山镇"},{"code":"610922109","name":"中池镇"},{"code":"610922110","name":"曾溪镇"}]},{"code":"610923","name":"宁陕县","children":[{"code":"610923100","name":"城关镇"},{"code":"610923101","name":"四亩地镇"},{"code":"610923102","name":"江口镇"},{"code":"610923104","name":"广货街镇"},{"code":"610923105","name":"龙王镇"},{"code":"610923106","name":"筒车湾镇"},{"code":"610923108","name":"金川镇"},{"code":"610923109","name":"皇冠镇"},{"code":"610923110","name":"太山庙镇"},{"code":"610923111","name":"梅子镇"},{"code":"610923113","name":"新场镇"}]},{"code":"610924","name":"紫阳县","children":[{"code":"610924100","name":"城关镇"},{"code":"610924101","name":"蒿坪镇"},{"code":"610924102","name":"汉王镇"},{"code":"610924103","name":"焕古镇"},{"code":"610924104","name":"向阳镇"},{"code":"610924105","name":"洞河镇"},{"code":"610924106","name":"洄水镇"},{"code":"610924108","name":"双桥镇"},{"code":"610924109","name":"高桥镇"},{"code":"610924110","name":"红椿镇"},{"code":"610924111","name":"高滩镇"},{"code":"610924112","name":"毛坝镇"},{"code":"610924113","name":"瓦庙镇"},{"code":"610924114","name":"麻柳镇"},{"code":"610924115","name":"双安镇"},{"code":"610924116","name":"东木镇"},{"code":"610924117","name":"界岭镇"}]},{"code":"610925","name":"岚皋县","children":[{"code":"610925100","name":"城关镇"},{"code":"610925101","name":"佐龙镇"},{"code":"610925103","name":"滔河镇"},{"code":"610925104","name":"官元镇"},{"code":"610925105","name":"石门镇"},{"code":"610925106","name":"民主镇"},{"code":"610925107","name":"大道河镇"},{"code":"610925109","name":"堰门镇"},{"code":"610925111","name":"蔺河镇"},{"code":"610925112","name":"四季镇"},{"code":"610925114","name":"孟石岭镇"},{"code":"610925115","name":"南宫山镇"}]},{"code":"610926","name":"平利县","children":[{"code":"610926100","name":"城关镇"},{"code":"610926101","name":"兴隆镇"},{"code":"610926102","name":"老县镇"},{"code":"610926103","name":"大贵镇"},{"code":"610926104","name":"三阳镇"},{"code":"610926105","name":"洛河镇"},{"code":"610926106","name":"广佛镇"},{"code":"610926107","name":"八仙镇"},{"code":"610926108","name":"长安镇"},{"code":"610926109","name":"正阳镇"},{"code":"610926110","name":"西河镇"}]},{"code":"610927","name":"镇坪县","children":[{"code":"610927100","name":"城关镇"},{"code":"610927101","name":"曾家镇"},{"code":"610927102","name":"牛头店镇"},{"code":"610927103","name":"钟宝镇"},{"code":"610927105","name":"上竹镇"},{"code":"610927106","name":"华坪镇"},{"code":"610927108","name":"曙坪镇"}]},{"code":"610929","name":"白河县","children":[{"code":"610929100","name":"城关镇"},{"code":"610929101","name":"中厂镇"},{"code":"610929102","name":"构朳镇"},{"code":"610929103","name":"卡子镇"},{"code":"610929104","name":"茅坪镇"},{"code":"610929105","name":"宋家镇"},{"code":"610929106","name":"西营镇"},{"code":"610929107","name":"仓上镇"},{"code":"610929108","name":"冷水镇"},{"code":"610929109","name":"双丰镇"},{"code":"610929110","name":"麻虎镇"}]},{"code":"610981","name":"旬阳市","children":[{"code":"610981100","name":"城关镇"},{"code":"610981101","name":"棕溪镇"},{"code":"610981102","name":"关口镇"},{"code":"610981103","name":"蜀河镇"},{"code":"610981104","name":"双河镇"},{"code":"610981105","name":"小河镇"},{"code":"610981106","name":"赵湾镇"},{"code":"610981107","name":"麻坪镇"},{"code":"610981108","name":"甘溪镇"},{"code":"610981109","name":"白柳镇"},{"code":"610981110","name":"吕河镇"},{"code":"610981111","name":"神河镇"},{"code":"610981112","name":"铜钱关镇"},{"code":"610981113","name":"段家河镇"},{"code":"610981114","name":"仙河镇"},{"code":"610981115","name":"金寨镇"},{"code":"610981116","name":"桐木镇"},{"code":"610981117","name":"构元镇"},{"code":"610981118","name":"石门镇"},{"code":"610981119","name":"红军镇"},{"code":"610981120","name":"仁河口镇"}]}]},{"code":"6110","name":"商洛市","children":[{"code":"611002","name":"商州区","children":[{"code":"611002001","name":"城关街道"},{"code":"611002002","name":"大赵峪街道"},{"code":"611002003","name":"陈塬街道"},{"code":"611002004","name":"刘湾街道"},{"code":"611002101","name":"夜村镇"},{"code":"611002104","name":"沙河子镇"},{"code":"611002105","name":"杨峪河镇"},{"code":"611002106","name":"金陵寺镇"},{"code":"611002107","name":"黑山镇"},{"code":"611002108","name":"杨斜镇"},{"code":"611002109","name":"麻街镇"},{"code":"611002111","name":"牧护关镇"},{"code":"611002112","name":"大荆镇"},{"code":"611002113","name":"腰市镇"},{"code":"611002114","name":"板桥镇"},{"code":"611002115","name":"北宽坪镇"},{"code":"611002119","name":"三岔河镇"},{"code":"611002121","name":"闫村镇"},{"code":"611002400","name":"二龙山水库"},{"code":"611002401","name":"南秦水库"},{"code":"611002402","name":"二龙山国营林场"},{"code":"611002403","name":"商丹循环工业园"},{"code":"611002404","name":"荆河工业园"},{"code":"611002405","name":"荆河农业示范园"},{"code":"611002406","name":"高校园区"},{"code":"611002407","name":"商洛职业技术学院"},{"code":"611002408","name":"氟化硅产业业园"}]},{"code":"611021","name":"洛南县","children":[{"code":"611021001","name":"城关街道"},{"code":"611021002","name":"四皓街道"},{"code":"611021101","name":"景村镇"},{"code":"611021102","name":"古城镇"},{"code":"611021103","name":"三要镇"},{"code":"611021104","name":"灵口镇"},{"code":"611021106","name":"寺耳镇"},{"code":"611021107","name":"巡检镇"},{"code":"611021108","name":"石坡镇"},{"code":"611021109","name":"石门镇"},{"code":"611021110","name":"麻坪镇"},{"code":"611021111","name":"洛源镇"},{"code":"611021112","name":"保安镇"},{"code":"611021114","name":"永丰镇"},{"code":"611021117","name":"柏峪寺镇"},{"code":"611021118","name":"高耀镇"}]},{"code":"611022","name":"丹凤县","children":[{"code":"611022001","name":"龙驹寨街道"},{"code":"611022101","name":"庾岭镇"},{"code":"611022102","name":"蔡川镇"},{"code":"611022103","name":"峦庄镇"},{"code":"611022104","name":"铁峪铺镇"},{"code":"611022105","name":"武关镇"},{"code":"611022106","name":"竹林关镇"},{"code":"611022107","name":"土门镇"},{"code":"611022108","name":"寺坪镇"},{"code":"611022109","name":"商镇"},{"code":"611022110","name":"棣花镇"},{"code":"611022115","name":"花瓶子镇"}]},{"code":"611023","name":"商南县","children":[{"code":"611023001","name":"城关街道"},{"code":"611023101","name":"富水镇"},{"code":"611023102","name":"湘河镇"},{"code":"611023104","name":"赵川镇"},{"code":"611023107","name":"过风楼镇"},{"code":"611023108","name":"试马镇"},{"code":"611023109","name":"清油河镇"},{"code":"611023110","name":"十里坪镇"},{"code":"611023111","name":"金丝峡镇"},{"code":"611023112","name":"青山镇"}]},{"code":"611024","name":"山阳县","children":[{"code":"611024001","name":"城关街道"},{"code":"611024002","name":"十里铺街道"},{"code":"611024101","name":"高坝店镇"},{"code":"611024102","name":"天竺山镇"},{"code":"611024103","name":"中村镇"},{"code":"611024104","name":"银花镇"},{"code":"611024105","name":"西照川镇"},{"code":"611024106","name":"漫川关镇"},{"code":"611024107","name":"南宽坪镇"},{"code":"611024108","name":"户家塬镇"},{"code":"611024109","name":"杨地镇"},{"code":"611024111","name":"小河口镇"},{"code":"611024112","name":"色河铺镇"},{"code":"611024113","name":"板岩镇"},{"code":"611024116","name":"延坪镇"},{"code":"611024117","name":"两岭镇"},{"code":"611024118","name":"王阎镇"},{"code":"611024121","name":"法官镇"}]},{"code":"611025","name":"镇安县","children":[{"code":"611025001","name":"永乐街道"},{"code":"611025101","name":"回龙镇"},{"code":"611025102","name":"铁厂镇"},{"code":"611025103","name":"大坪镇"},{"code":"611025104","name":"米粮镇"},{"code":"611025105","name":"茅坪回族镇"},{"code":"611025106","name":"西口回族镇"},{"code":"611025107","name":"高峰镇"},{"code":"611025108","name":"青铜关镇"},{"code":"611025109","name":"柴坪镇"},{"code":"611025110","name":"达仁镇"},{"code":"611025111","name":"木王镇"},{"code":"611025113","name":"云盖寺镇"},{"code":"611025114","name":"庙沟镇"},{"code":"611025117","name":"月河镇"},{"code":"611025400","name":"黑窑沟林厂"},{"code":"611025401","name":"木王林厂"},{"code":"611025402","name":"镇安县苗圃"}]},{"code":"611026","name":"柞水县","children":[{"code":"611026001","name":"乾佑街道"},{"code":"611026101","name":"营盘镇"},{"code":"611026102","name":"下梁镇"},{"code":"611026104","name":"小岭镇"},{"code":"611026105","name":"凤凰镇"},{"code":"611026106","name":"红岩寺镇"},{"code":"611026107","name":"曹坪镇"},{"code":"611026109","name":"杏坪镇"},{"code":"611026110","name":"瓦房口镇"}]}]}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市","children":[{"code":"620102","name":"城关区","children":[{"code":"620102001","name":"酒泉路街道"},{"code":"620102002","name":"张掖路街道"},{"code":"620102003","name":"雁南街道"},{"code":"620102004","name":"临夏路街道"},{"code":"620102005","name":"雁北街道"},{"code":"620102006","name":"五泉街道"},{"code":"620102007","name":"白银路街道"},{"code":"620102008","name":"皋兰路街道"},{"code":"620102009","name":"广武门街道"},{"code":"620102010","name":"伏龙坪街道"},{"code":"620102011","name":"靖远路街道"},{"code":"620102012","name":"草场街街道"},{"code":"620102013","name":"火车站街道"},{"code":"620102014","name":"拱星墩街道"},{"code":"620102015","name":"东岗街道"},{"code":"620102016","name":"团结新村街道"},{"code":"620102017","name":"东岗西路街道"},{"code":"620102018","name":"铁路东村街道"},{"code":"620102019","name":"铁路西村街道"},{"code":"620102020","name":"渭源路街道"},{"code":"620102021","name":"盐场路街道"},{"code":"620102022","name":"嘉峪关路街道"},{"code":"620102023","name":"焦家湾街道"},{"code":"620102024","name":"青白石街道"},{"code":"620102025","name":"雁园街道"},{"code":"620102400","name":"高新区"},{"code":"620102402","name":"甘肃农垦集团"},{"code":"620102403","name":"甘肃监狱企业集团公司"}]},{"code":"620103","name":"七里河区","children":[{"code":"620103001","name":"西园街道"},{"code":"620103002","name":"西湖街道"},{"code":"620103003","name":"建兰路街道"},{"code":"620103004","name":"敦煌路街道"},{"code":"620103005","name":"西站街道"},{"code":"620103006","name":"晏家坪街道"},{"code":"620103007","name":"龚家湾街道"},{"code":"620103008","name":"土门墩街道"},{"code":"620103009","name":"秀川街道"},{"code":"620103100","name":"阿干镇"},{"code":"620103101","name":"八里镇"},{"code":"620103102","name":"彭家坪镇"},{"code":"620103103","name":"西果园镇"},{"code":"620103104","name":"黄峪镇"},{"code":"620103201","name":"魏岭乡"}]},{"code":"620104","name":"西固区","children":[{"code":"620104001","name":"陈坪街道"},{"code":"620104002","name":"先锋路街道"},{"code":"620104003","name":"福利路街道"},{"code":"620104004","name":"西固城街道"},{"code":"620104005","name":"四季青街道"},{"code":"620104006","name":"临洮街街道"},{"code":"620104007","name":"西柳沟街道"},{"code":"620104100","name":"新城镇"},{"code":"620104101","name":"东川镇"},{"code":"620104102","name":"河口镇"},{"code":"620104103","name":"达川镇"},{"code":"620104104","name":"柳泉镇"},{"code":"620104204","name":"金沟乡"}]},{"code":"620105","name":"安宁区","children":[{"code":"620105001","name":"培黎街道"},{"code":"620105002","name":"西路街道"},{"code":"620105003","name":"沙井驿街道"},{"code":"620105004","name":"十里店街道"},{"code":"620105005","name":"孔家崖街道"},{"code":"620105006","name":"银滩路街道"},{"code":"620105007","name":"刘家堡街道"},{"code":"620105008","name":"安宁堡街道"}]},{"code":"620111","name":"红古区","children":[{"code":"620111001","name":"窑街街道"},{"code":"620111003","name":"矿区街道"},{"code":"620111004","name":"华龙街道"},{"code":"620111101","name":"海石湾镇"},{"code":"620111102","name":"花庄镇"},{"code":"620111103","name":"平安镇"},{"code":"620111104","name":"红古镇"}]},{"code":"620121","name":"永登县","children":[{"code":"620121100","name":"城关镇"},{"code":"620121101","name":"红城镇"},{"code":"620121102","name":"中堡镇"},{"code":"620121103","name":"武胜驿镇"},{"code":"620121104","name":"河桥镇"},{"code":"620121105","name":"连城镇"},{"code":"620121106","name":"苦水镇"},{"code":"620121109","name":"大同镇"},{"code":"620121110","name":"龙泉寺镇"},{"code":"620121111","name":"树屏镇"},{"code":"620121112","name":"上川镇"},{"code":"620121113","name":"柳树镇"},{"code":"620121114","name":"通远镇"},{"code":"620121201","name":"坪城乡"},{"code":"620121202","name":"民乐乡"},{"code":"620121204","name":"七山乡"}]},{"code":"620122","name":"皋兰县","children":[{"code":"620122100","name":"石洞镇"},{"code":"620122102","name":"忠和镇"},{"code":"620122103","name":"什川镇"},{"code":"620122104","name":"九合镇"},{"code":"620122105","name":"水阜镇"},{"code":"620122106","name":"黑石镇"}]},{"code":"620123","name":"榆中县","children":[{"code":"620123100","name":"城关镇"},{"code":"620123101","name":"夏官营镇"},{"code":"620123102","name":"高崖镇"},{"code":"620123103","name":"金崖镇"},{"code":"620123104","name":"和平镇"},{"code":"620123105","name":"甘草店镇"},{"code":"620123106","name":"青城镇"},{"code":"620123107","name":"定远镇"},{"code":"620123108","name":"连搭镇"},{"code":"620123109","name":"新营镇"},{"code":"620123110","name":"贡井镇"},{"code":"620123202","name":"小康营乡"},{"code":"620123205","name":"马坡乡"},{"code":"620123207","name":"清水驿乡"},{"code":"620123208","name":"龙泉乡"},{"code":"620123209","name":"韦营乡"},{"code":"620123210","name":"中连川乡"},{"code":"620123212","name":"园子岔乡"},{"code":"620123213","name":"上花岔乡"},{"code":"620123214","name":"哈岘乡"}]},{"code":"620171","name":"兰州新区","children":[{"code":"620171101","name":"中川镇"},{"code":"620171102","name":"秦川镇"},{"code":"620171103","name":"西岔镇"}]}]},{"code":"6202","name":"嘉峪关市","children":[{"code":"620201","name":"嘉峪关市","children":[{"code":"620201001","name":"雄关街道"},{"code":"620201002","name":"钢城街道"},{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"}]}]},{"code":"6203","name":"金昌市","children":[{"code":"620302","name":"金川区","children":[{"code":"620302001","name":"滨河路街道"},{"code":"620302002","name":"桂林路街道"},{"code":"620302003","name":"北京路街道"},{"code":"620302004","name":"金川路街道"},{"code":"620302005","name":"新华路街道"},{"code":"620302006","name":"广州路街道"},{"code":"620302100","name":"宁远堡镇"},{"code":"620302101","name":"双湾镇"}]},{"code":"620321","name":"永昌县","children":[{"code":"620321100","name":"城关镇"},{"code":"620321101","name":"河西堡镇"},{"code":"620321102","name":"新城子镇"},{"code":"620321103","name":"朱王堡镇"},{"code":"620321104","name":"东寨镇"},{"code":"620321105","name":"水源镇"},{"code":"620321106","name":"红山窑镇"},{"code":"620321107","name":"焦家庄镇"},{"code":"620321108","name":"六坝镇"},{"code":"620321203","name":"南坝乡"}]}]},{"code":"6204","name":"白银市","children":[{"code":"620402","name":"白银区","children":[{"code":"620402001","name":"人民路街道"},{"code":"620402002","name":"公园路街道"},{"code":"620402003","name":"四龙路街道"},{"code":"620402004","name":"工农路街道"},{"code":"620402005","name":"纺织路街道"},{"code":"620402100","name":"水川镇"},{"code":"620402101","name":"四龙镇"},{"code":"620402102","name":"王岘镇"},{"code":"620402201","name":"强湾乡"},{"code":"620402202","name":"武川乡"}]},{"code":"620403","name":"平川区","children":[{"code":"620403001","name":"长征街道"},{"code":"620403002","name":"电力路街道"},{"code":"620403003","name":"红会路街道"},{"code":"620403004","name":"兴平路街道"},{"code":"620403100","name":"王家山镇"},{"code":"620403101","name":"水泉镇"},{"code":"620403102","name":"共和镇"},{"code":"620403105","name":"宝积镇"},{"code":"620403106","name":"黄峤镇"},{"code":"620403203","name":"种田乡"},{"code":"620403204","name":"复兴乡"}]},{"code":"620421","name":"靖远县","children":[{"code":"620421101","name":"北湾镇"},{"code":"620421102","name":"东湾镇"},{"code":"620421103","name":"乌兰镇"},{"code":"620421104","name":"刘川镇"},{"code":"620421105","name":"北滩镇"},{"code":"620421106","name":"五合镇"},{"code":"620421107","name":"大芦镇"},{"code":"620421108","name":"糜滩镇"},{"code":"620421109","name":"高湾镇"},{"code":"620421110","name":"平堡镇"},{"code":"620421111","name":"东升镇"},{"code":"620421112","name":"双龙镇"},{"code":"620421113","name":"三滩镇"},{"code":"620421206","name":"兴隆乡"},{"code":"620421208","name":"石门乡"},{"code":"620421211","name":"靖安乡"},{"code":"620421215","name":"永新乡"},{"code":"620421216","name":"若笠乡"}]},{"code":"620422","name":"会宁县","children":[{"code":"620422100","name":"会师镇"},{"code":"620422101","name":"郭城驿镇"},{"code":"620422102","name":"河畔镇"},{"code":"620422103","name":"头寨子镇"},{"code":"620422104","name":"太平店镇"},{"code":"620422105","name":"甘沟驿镇"},{"code":"620422106","name":"侯家川镇"},{"code":"620422107","name":"柴家门镇"},{"code":"620422108","name":"汉家岔镇"},{"code":"620422109","name":"刘家寨子镇"},{"code":"620422110","name":"白草塬镇"},{"code":"620422111","name":"大沟镇"},{"code":"620422112","name":"四房吴镇"},{"code":"620422113","name":"中川镇"},{"code":"620422114","name":"老君坡镇"},{"code":"620422115","name":"平头川镇"},{"code":"620422116","name":"丁家沟镇"},{"code":"620422117","name":"杨崖集镇"},{"code":"620422118","name":"翟家所镇"},{"code":"620422119","name":"韩家集镇"},{"code":"620422120","name":"土门岘镇"},{"code":"620422121","name":"新塬镇"},{"code":"620422122","name":"草滩镇"},{"code":"620422123","name":"新庄镇"},{"code":"620422202","name":"新添堡回族乡"},{"code":"620422204","name":"党家岘乡"},{"code":"620422213","name":"八里湾乡"},{"code":"620422225","name":"土高山乡"}]},{"code":"620423","name":"景泰县","children":[{"code":"620423100","name":"一条山镇"},{"code":"620423101","name":"芦阳镇"},{"code":"620423102","name":"上沙沃镇"},{"code":"620423103","name":"喜泉镇"},{"code":"620423104","name":"草窝滩镇"},{"code":"620423105","name":"红水镇"},{"code":"620423106","name":"中泉镇"},{"code":"620423107","name":"正路镇"},{"code":"620423203","name":"寺滩乡"},{"code":"620423205","name":"五佛乡"},{"code":"620423207","name":"漫水滩乡"}]}]},{"code":"6205","name":"天水市","children":[{"code":"620502","name":"秦州区","children":[{"code":"620502001","name":"大城街道"},{"code":"620502002","name":"七里墩街道"},{"code":"620502003","name":"东关街道"},{"code":"620502004","name":"中城街道"},{"code":"620502005","name":"西关街道"},{"code":"620502006","name":"石马坪街道"},{"code":"620502007","name":"天水郡街道"},{"code":"620502100","name":"玉泉镇"},{"code":"620502101","name":"太京镇"},{"code":"620502102","name":"藉口镇"},{"code":"620502103","name":"皂郊镇"},{"code":"620502104","name":"汪川镇"},{"code":"620502105","name":"牡丹镇"},{"code":"620502106","name":"关子镇"},{"code":"620502107","name":"平南镇"},{"code":"620502108","name":"天水镇"},{"code":"620502109","name":"娘娘坝镇"},{"code":"620502110","name":"中梁镇"},{"code":"620502111","name":"杨家寺镇"},{"code":"620502112","name":"齐寿镇"},{"code":"620502113","name":"大门镇"},{"code":"620502114","name":"秦岭镇"},{"code":"620502115","name":"华歧镇"}]},{"code":"620503","name":"麦积区","children":[{"code":"620503001","name":"道北街道"},{"code":"620503002","name":"北道埠街道"},{"code":"620503003","name":"桥南街道"},{"code":"620503100","name":"社棠镇"},{"code":"620503101","name":"马跑泉镇"},{"code":"620503102","name":"甘泉镇"},{"code":"620503103","name":"渭南镇"},{"code":"620503104","name":"东岔镇"},{"code":"620503105","name":"花牛镇"},{"code":"620503106","name":"中滩镇"},{"code":"620503107","name":"新阳镇"},{"code":"620503108","name":"元龙镇"},{"code":"620503109","name":"伯阳镇"},{"code":"620503110","name":"麦积镇"},{"code":"620503111","name":"石佛镇"},{"code":"620503112","name":"三岔镇"},{"code":"620503113","name":"琥珀镇"},{"code":"620503114","name":"利桥镇"},{"code":"620503115","name":"五龙镇"},{"code":"620503116","name":"党川镇"},{"code":"620503400","name":"天水经济开发区"},{"code":"620503401","name":"天水市高新技术工业园"},{"code":"620503402","name":"天水市农业高新技术示范区"},{"code":"620503403","name":"天水市麦积区三阳工业示范区"},{"code":"620503404","name":"天水市麦积区廿铺工业示范区"},{"code":"620503405","name":"天水市麦积区东柯河工业园区"}]},{"code":"620521","name":"清水县","children":[{"code":"620521100","name":"永清镇"},{"code":"620521101","name":"红堡镇"},{"code":"620521102","name":"白驼镇"},{"code":"620521103","name":"金集镇"},{"code":"620521104","name":"秦亭镇"},{"code":"620521105","name":"山门镇"},{"code":"620521106","name":"白沙镇"},{"code":"620521107","name":"王河镇"},{"code":"620521108","name":"郭川镇"},{"code":"620521109","name":"黄门镇"},{"code":"620521110","name":"松树镇"},{"code":"620521111","name":"远门镇"},{"code":"620521112","name":"土门镇"},{"code":"620521113","name":"草川铺镇"},{"code":"620521114","name":"陇东镇"},{"code":"620521206","name":"贾川乡"},{"code":"620521207","name":"丰望乡"},{"code":"620521211","name":"新城乡"},{"code":"620521400","name":"清水县科技养殖示范园区"}]},{"code":"620522","name":"秦安县","children":[{"code":"620522100","name":"兴国镇"},{"code":"620522101","name":"莲花镇"},{"code":"620522102","name":"西川镇"},{"code":"620522103","name":"陇城镇"},{"code":"620522104","name":"郭嘉镇"},{"code":"620522105","name":"五营镇"},{"code":"620522106","name":"叶堡镇"},{"code":"620522107","name":"魏店镇"},{"code":"620522108","name":"安伏镇"},{"code":"620522109","name":"千户镇"},{"code":"620522110","name":"王尹镇"},{"code":"620522111","name":"兴丰镇"},{"code":"620522112","name":"中山镇"},{"code":"620522113","name":"刘坪镇"},{"code":"620522114","name":"王铺镇"},{"code":"620522115","name":"王窑镇"},{"code":"620522116","name":"云山镇"}]},{"code":"620523","name":"甘谷县","children":[{"code":"620523100","name":"大像山镇"},{"code":"620523101","name":"新兴镇"},{"code":"620523102","name":"磐安镇"},{"code":"620523103","name":"六峰镇"},{"code":"620523104","name":"安远镇"},{"code":"620523105","name":"金山镇"},{"code":"620523106","name":"大石镇"},{"code":"620523107","name":"礼辛镇"},{"code":"620523108","name":"武家河镇"},{"code":"620523109","name":"大庄镇"},{"code":"620523110","name":"古坡镇"},{"code":"620523111","name":"八里湾镇"},{"code":"620523112","name":"西坪镇"},{"code":"620523200","name":"谢家湾乡"},{"code":"620523207","name":"白家湾乡"}]},{"code":"620524","name":"武山县","children":[{"code":"620524100","name":"城关镇"},{"code":"620524101","name":"洛门镇"},{"code":"620524102","name":"鸳鸯镇"},{"code":"620524103","name":"滩歌镇"},{"code":"620524104","name":"四门镇"},{"code":"620524105","name":"马力镇"},{"code":"620524106","name":"山丹镇"},{"code":"620524107","name":"温泉镇"},{"code":"620524108","name":"桦林镇"},{"code":"620524109","name":"龙台镇"},{"code":"620524110","name":"榆盘镇"},{"code":"620524111","name":"高楼镇"},{"code":"620524112","name":"杨河镇"},{"code":"620524202","name":"嘴头乡"},{"code":"620524206","name":"沿安乡"}]},{"code":"620525","name":"张家川回族自治县","children":[{"code":"620525100","name":"张家川镇"},{"code":"620525101","name":"龙山镇"},{"code":"620525102","name":"恭门镇"},{"code":"620525103","name":"马鹿镇"},{"code":"620525104","name":"梁山镇"},{"code":"620525105","name":"马关镇"},{"code":"620525106","name":"刘堡镇"},{"code":"620525107","name":"胡川镇"},{"code":"620525108","name":"大阳镇"},{"code":"620525109","name":"川王镇"},{"code":"620525202","name":"张棉乡"},{"code":"620525204","name":"木河乡"},{"code":"620525209","name":"连五乡"},{"code":"620525213","name":"平安乡"},{"code":"620525214","name":"阎家乡"}]}]},{"code":"6206","name":"武威市","children":[{"code":"620602","name":"凉州区","children":[{"code":"620602001","name":"东大街街道"},{"code":"620602002","name":"西大街街道"},{"code":"620602003","name":"东关街街道"},{"code":"620602004","name":"西关街街道"},{"code":"620602005","name":"火车站街街道"},{"code":"620602006","name":"地质新村街街道"},{"code":"620602007","name":"荣华街街道"},{"code":"620602008","name":"宣武街街道"},{"code":"620602009","name":"黄羊河街道"},{"code":"620602100","name":"黄羊镇"},{"code":"620602101","name":"武南镇"},{"code":"620602102","name":"清源镇"},{"code":"620602103","name":"永昌镇"},{"code":"620602104","name":"双城镇"},{"code":"620602105","name":"丰乐镇"},{"code":"620602106","name":"高坝镇"},{"code":"620602107","name":"金羊镇"},{"code":"620602108","name":"和平镇"},{"code":"620602109","name":"羊下坝镇"},{"code":"620602110","name":"中坝镇"},{"code":"620602111","name":"永丰镇"},{"code":"620602112","name":"古城镇"},{"code":"620602113","name":"张义镇"},{"code":"620602114","name":"发放镇"},{"code":"620602115","name":"西营镇"},{"code":"620602116","name":"四坝镇"},{"code":"620602117","name":"洪祥镇"},{"code":"620602118","name":"谢河镇"},{"code":"620602119","name":"金沙镇"},{"code":"620602120","name":"松树镇"},{"code":"620602121","name":"怀安镇"},{"code":"620602122","name":"下双镇"},{"code":"620602123","name":"清水镇"},{"code":"620602124","name":"河东镇"},{"code":"620602125","name":"五和镇"},{"code":"620602126","name":"长城镇"},{"code":"620602127","name":"吴家井镇"},{"code":"620602128","name":"金河镇"},{"code":"620602129","name":"韩佐镇"},{"code":"620602130","name":"大柳镇"},{"code":"620602131","name":"柏树镇"},{"code":"620602132","name":"金塔镇"},{"code":"620602133","name":"九墩镇"},{"code":"620602134","name":"金山镇"},{"code":"620602135","name":"新华镇"},{"code":"620602136","name":"康宁镇"},{"code":"620602400","name":"九墩滩生态建设指挥部"},{"code":"620602401","name":"邓马营湖生态建设指挥部"},{"code":"620602402","name":"凉州工业园区管理委员会"},{"code":"620602403","name":"甘肃武威工业园区管理委员会"}]},{"code":"620621","name":"民勤县","children":[{"code":"620621100","name":"三雷镇"},{"code":"620621101","name":"东坝镇"},{"code":"620621102","name":"泉山镇"},{"code":"620621103","name":"西渠镇"},{"code":"620621104","name":"东湖镇"},{"code":"620621105","name":"红砂岗镇"},{"code":"620621106","name":"昌宁镇"},{"code":"620621107","name":"重兴镇"},{"code":"620621108","name":"薛百镇"},{"code":"620621109","name":"大坝镇"},{"code":"620621110","name":"苏武镇"},{"code":"620621111","name":"大滩镇"},{"code":"620621112","name":"双茨科镇"},{"code":"620621113","name":"红沙梁镇"},{"code":"620621114","name":"蔡旗镇"},{"code":"620621115","name":"夹河镇"},{"code":"620621116","name":"收成镇"},{"code":"620621117","name":"南湖镇"}]},{"code":"620622","name":"古浪县","children":[{"code":"620622100","name":"古浪镇"},{"code":"620622101","name":"泗水镇"},{"code":"620622102","name":"土门镇"},{"code":"620622103","name":"大靖镇"},{"code":"620622104","name":"裴家营镇"},{"code":"620622105","name":"海子滩镇"},{"code":"620622106","name":"定宁镇"},{"code":"620622107","name":"黄羊川镇"},{"code":"620622108","name":"黑松驿镇"},{"code":"620622109","name":"永丰滩镇"},{"code":"620622110","name":"黄花滩镇"},{"code":"620622111","name":"西靖镇"},{"code":"620622112","name":"民权镇"},{"code":"620622113","name":"直滩镇"},{"code":"620622114","name":"古丰镇"},{"code":"620622205","name":"新堡乡"},{"code":"620622206","name":"干城乡"},{"code":"620622207","name":"横梁乡"},{"code":"620622208","name":"十八里堡乡"}]},{"code":"620623","name":"天祝藏族自治县","children":[{"code":"620623100","name":"华藏寺镇"},{"code":"620623101","name":"打柴沟镇"},{"code":"620623102","name":"安远镇"},{"code":"620623103","name":"炭山岭镇"},{"code":"620623104","name":"哈溪镇"},{"code":"620623105","name":"赛什斯镇"},{"code":"620623106","name":"石门镇"},{"code":"620623107","name":"松山镇"},{"code":"620623108","name":"天堂镇"},{"code":"620623109","name":"朵什镇"},{"code":"620623110","name":"西大滩镇"},{"code":"620623111","name":"抓喜秀龙镇"},{"code":"620623112","name":"大红沟镇"},{"code":"620623113","name":"祁连镇"},{"code":"620623201","name":"东坪乡"},{"code":"620623202","name":"赛拉隆乡"},{"code":"620623203","name":"东大滩乡"},{"code":"620623208","name":"毛藏乡"},{"code":"620623210","name":"旦马乡"},{"code":"620623401","name":"天祝建材厂"},{"code":"620623402","name":"天祝煤电公司"}]}]},{"code":"6207","name":"张掖市","children":[{"code":"620702","name":"甘州区","children":[{"code":"620702001","name":"东街街道"},{"code":"620702002","name":"南街街道"},{"code":"620702003","name":"西街街道"},{"code":"620702004","name":"北街街道"},{"code":"620702005","name":"火车站街道"},{"code":"620702100","name":"梁家墩镇"},{"code":"620702101","name":"上秦镇"},{"code":"620702102","name":"大满镇"},{"code":"620702103","name":"沙井镇"},{"code":"620702104","name":"乌江镇"},{"code":"620702105","name":"甘浚镇"},{"code":"620702106","name":"新墩镇"},{"code":"620702107","name":"党寨镇"},{"code":"620702108","name":"碱滩镇"},{"code":"620702109","name":"三闸镇"},{"code":"620702110","name":"小满镇"},{"code":"620702111","name":"明永镇"},{"code":"620702112","name":"长安镇"},{"code":"620702202","name":"龙渠乡"},{"code":"620702203","name":"安阳乡"},{"code":"620702204","name":"花寨乡"},{"code":"620702207","name":"靖安乡"},{"code":"620702211","name":"平山湖蒙古族乡"},{"code":"620702402","name":"张掖经济技术开发区"}]},{"code":"620721","name":"肃南裕固族自治县","children":[{"code":"620721100","name":"红湾寺镇"},{"code":"620721101","name":"皇城镇"},{"code":"620721102","name":"康乐镇"},{"code":"620721200","name":"马蹄藏族乡"},{"code":"620721202","name":"白银蒙古族乡"},{"code":"620721203","name":"大河乡"},{"code":"620721204","name":"明花乡"},{"code":"620721205","name":"祁丰蔵族乡"},{"code":"620721500","name":"甘肃省绵羊育种场"},{"code":"620721501","name":"张掖宝瓶河牧场"}]},{"code":"620722","name":"民乐县","children":[{"code":"620722101","name":"洪水镇"},{"code":"620722102","name":"六坝镇"},{"code":"620722103","name":"新天镇"},{"code":"620722104","name":"南古镇"},{"code":"620722105","name":"永固镇"},{"code":"620722106","name":"三堡镇"},{"code":"620722107","name":"南丰镇"},{"code":"620722108","name":"民联镇"},{"code":"620722109","name":"顺化镇"},{"code":"620722110","name":"丰乐镇"},{"code":"620722400","name":"民乐生态工业园区"}]},{"code":"620723","name":"临泽县","children":[{"code":"620723101","name":"沙河镇"},{"code":"620723102","name":"新华镇"},{"code":"620723103","name":"蓼泉镇"},{"code":"620723104","name":"平川镇"},{"code":"620723105","name":"板桥镇"},{"code":"620723106","name":"鸭暖镇"},{"code":"620723107","name":"倪家营镇"},{"code":"620723500","name":"国营临泽农场"},{"code":"620723501","name":"五泉林场"},{"code":"620723502","name":"沙河林场"},{"code":"620723503","name":"小泉子治沙站"},{"code":"620723504","name":"园艺场"},{"code":"620723505","name":"良种繁殖场"}]},{"code":"620724","name":"高台县","children":[{"code":"620724100","name":"城关镇"},{"code":"620724101","name":"宣化镇"},{"code":"620724102","name":"南华镇"},{"code":"620724103","name":"巷道镇"},{"code":"620724104","name":"合黎镇"},{"code":"620724105","name":"骆驼城镇"},{"code":"620724106","name":"新坝镇"},{"code":"620724107","name":"黑泉镇"},{"code":"620724108","name":"罗城镇"},{"code":"620724400","name":"甘肃高台工业园区"}]},{"code":"620725","name":"山丹县","children":[{"code":"620725101","name":"清泉镇"},{"code":"620725102","name":"位奇镇"},{"code":"620725103","name":"霍城镇"},{"code":"620725104","name":"陈户镇"},{"code":"620725105","name":"大马营镇"},{"code":"620725106","name":"东乐镇"},{"code":"620725203","name":"老军乡"},{"code":"620725204","name":"李桥乡"},{"code":"620725400","name":"国营山丹农场"},{"code":"620725402","name":"中牧公司山丹马场"}]}]},{"code":"6208","name":"平凉市","children":[{"code":"620802","name":"崆峒区","children":[{"code":"620802001","name":"东关街道"},{"code":"620802002","name":"中街街道"},{"code":"620802003","name":"西郊街道"},{"code":"620802101","name":"崆峒镇"},{"code":"620802102","name":"白水镇"},{"code":"620802103","name":"草峰镇"},{"code":"620802104","name":"安国镇"},{"code":"620802105","name":"柳湖镇"},{"code":"620802106","name":"四十里铺镇"},{"code":"620802107","name":"花所镇"},{"code":"620802203","name":"索罗乡"},{"code":"620802204","name":"香莲乡"},{"code":"620802205","name":"西阳乡"},{"code":"620802206","name":"大秦乡"},{"code":"620802207","name":"白庙乡"},{"code":"620802208","name":"寨河乡"},{"code":"620802209","name":"大寨乡"},{"code":"620802210","name":"上杨乡"},{"code":"620802211","name":"麻武乡"},{"code":"620802212","name":"峡门乡"},{"code":"620802498","name":"平凉崆峒山大景区管理委员会"}]},{"code":"620821","name":"泾川县","children":[{"code":"620821001","name":"城市社区街道"},{"code":"620821100","name":"城关镇"},{"code":"620821101","name":"玉都镇"},{"code":"620821102","name":"高平镇"},{"code":"620821103","name":"荔堡镇"},{"code":"620821104","name":"王村镇"},{"code":"620821105","name":"窑店镇"},{"code":"620821106","name":"飞云镇"},{"code":"620821107","name":"丰台镇"},{"code":"620821108","name":"党原镇"},{"code":"620821109","name":"汭丰镇"},{"code":"620821110","name":"太平镇"},{"code":"620821201","name":"罗汉洞乡"},{"code":"620821202","name":"泾明乡"},{"code":"620821203","name":"红河乡"},{"code":"620821500","name":"张老寺农场"}]},{"code":"620822","name":"灵台县","children":[{"code":"620822001","name":"城市社区管理委员会地区"},{"code":"620822100","name":"中台镇"},{"code":"620822101","name":"邵寨镇"},{"code":"620822102","name":"独店镇"},{"code":"620822103","name":"什字镇"},{"code":"620822104","name":"朝那镇"},{"code":"620822105","name":"西屯镇"},{"code":"620822106","name":"上良镇"},{"code":"620822107","name":"百里镇"},{"code":"620822108","name":"蒲窝镇"},{"code":"620822201","name":"新开乡"},{"code":"620822204","name":"梁原乡"},{"code":"620822205","name":"龙门乡"},{"code":"620822206","name":"星火乡"},{"code":"620822400","name":"万宝川农场"}]},{"code":"620823","name":"崇信县","children":[{"code":"620823001","name":"城市社区管理委员会街道"},{"code":"620823100","name":"锦屏镇"},{"code":"620823101","name":"新窑镇"},{"code":"620823102","name":"柏树镇"},{"code":"620823103","name":"黄寨镇"},{"code":"620823202","name":"黄花乡"},{"code":"620823203","name":"木林乡"}]},{"code":"620825","name":"庄浪县","children":[{"code":"620825001","name":"水洛街道"},{"code":"620825100","name":"水洛镇"},{"code":"620825101","name":"南湖镇"},{"code":"620825102","name":"朱店镇"},{"code":"620825103","name":"万泉镇"},{"code":"620825104","name":"韩店镇"},{"code":"620825105","name":"卧龙镇"},{"code":"620825106","name":"阳川镇"},{"code":"620825107","name":"盘安镇"},{"code":"620825108","name":"大庄镇"},{"code":"620825109","name":"通化镇"},{"code":"620825110","name":"永宁镇"},{"code":"620825111","name":"良邑镇"},{"code":"620825112","name":"岳堡镇"},{"code":"620825113","name":"柳梁镇"},{"code":"620825114","name":"南坪镇"},{"code":"620825201","name":"杨河乡"},{"code":"620825202","name":"赵墩乡"},{"code":"620825215","name":"郑河乡"}]},{"code":"620826","name":"静宁县","children":[{"code":"620826001","name":"城区街道"},{"code":"620826100","name":"城关镇"},{"code":"620826101","name":"威戎镇"},{"code":"620826102","name":"界石铺镇"},{"code":"620826103","name":"八里镇"},{"code":"620826104","name":"李店镇"},{"code":"620826105","name":"古城镇"},{"code":"620826106","name":"仁大镇"},{"code":"620826107","name":"甘沟镇"},{"code":"620826108","name":"城川镇"},{"code":"620826109","name":"曹务镇"},{"code":"620826110","name":"雷大镇"},{"code":"620826111","name":"四河镇"},{"code":"620826112","name":"细巷镇"},{"code":"620826113","name":"双岘镇"},{"code":"620826114","name":"治平镇"},{"code":"620826115","name":"红寺镇"},{"code":"620826116","name":"原安镇"},{"code":"620826201","name":"司桥乡"},{"code":"620826206","name":"余湾乡"},{"code":"620826208","name":"贾河乡"},{"code":"620826209","name":"深沟乡"},{"code":"620826211","name":"新店乡"},{"code":"620826216","name":"三合乡"},{"code":"620826218","name":"灵芝乡"}]},{"code":"620881","name":"华亭市","children":[{"code":"620881001","name":"东华街道"},{"code":"620881100","name":"东华镇"},{"code":"620881101","name":"安口镇"},{"code":"620881102","name":"西华镇"},{"code":"620881103","name":"马峡镇"},{"code":"620881104","name":"策底镇"},{"code":"620881105","name":"上关镇"},{"code":"620881106","name":"河西镇"},{"code":"620881201","name":"神峪乡"},{"code":"620881202","name":"山寨乡"},{"code":"620881204","name":"砚峡乡"},{"code":"620881400","name":"甘肃华亭工业园区"}]}]},{"code":"6209","name":"酒泉市","children":[{"code":"620902","name":"肃州区","children":[{"code":"620902001","name":"东北街街道"},{"code":"620902002","name":"东南街街道"},{"code":"620902003","name":"工业园街道"},{"code":"620902004","name":"新城街道"},{"code":"620902005","name":"西北街街道"},{"code":"620902006","name":"西南街街道"},{"code":"620902007","name":"玉管局生活基地街道"},{"code":"620902100","name":"西洞镇"},{"code":"620902101","name":"清水镇"},{"code":"620902102","name":"总寨镇"},{"code":"620902103","name":"金佛寺镇"},{"code":"620902104","name":"上坝镇"},{"code":"620902105","name":"三墩镇"},{"code":"620902106","name":"银达镇"},{"code":"620902107","name":"西峰镇"},{"code":"620902108","name":"泉湖镇"},{"code":"620902109","name":"果园镇"},{"code":"620902110","name":"下河清镇"},{"code":"620902111","name":"铧尖镇"},{"code":"620902112","name":"东洞镇"},{"code":"620902113","name":"丰乐镇"},{"code":"620902207","name":"黄泥堡乡"},{"code":"620902403","name":"酒泉经济技术开发区"},{"code":"620902404","name":"十号基地"}]},{"code":"620921","name":"金塔县","children":[{"code":"620921100","name":"中东镇"},{"code":"620921101","name":"鼎新镇"},{"code":"620921102","name":"金塔镇"},{"code":"620921103","name":"东坝镇"},{"code":"620921105","name":"航天镇"},{"code":"620921106","name":"大庄子镇"},{"code":"620921107","name":"西坝镇"},{"code":"620921204","name":"古城乡"},{"code":"620921209","name":"羊井子湾乡"},{"code":"620921401","name":"工业园区管委会"}]},{"code":"620922","name":"瓜州县","children":[{"code":"620922100","name":"渊泉镇"},{"code":"620922101","name":"柳园镇"},{"code":"620922102","name":"三道沟镇"},{"code":"620922103","name":"南岔镇"},{"code":"620922104","name":"锁阳城镇"},{"code":"620922105","name":"瓜州镇"},{"code":"620922106","name":"西湖镇"},{"code":"620922107","name":"河东镇"},{"code":"620922108","name":"双塔镇"},{"code":"620922109","name":"腰站子东乡族镇"},{"code":"620922201","name":"布隆吉乡"},{"code":"620922212","name":"七墩回族东乡族乡"},{"code":"620922214","name":"广至藏族乡"},{"code":"620922215","name":"沙河回族乡"},{"code":"620922216","name":"梁湖乡"}]},{"code":"620923","name":"肃北蒙古族自治县","children":[{"code":"620923100","name":"党城湾镇"},{"code":"620923101","name":"马鬃山镇"},{"code":"620923201","name":"盐池湾乡"},{"code":"620923202","name":"石包城乡"}]},{"code":"620924","name":"阿克塞哈萨克族自治县","children":[{"code":"620924100","name":"红柳湾镇"},{"code":"620924200","name":"阿克旗乡"},{"code":"620924203","name":"阿勒腾乡"},{"code":"620924204","name":"阿伊纳乡"},{"code":"620924400","name":"阿克塞县工业园区管理委员会"}]},{"code":"620981","name":"玉门市","children":[{"code":"620981002","name":"新市区街道"},{"code":"620981101","name":"玉门镇"},{"code":"620981102","name":"赤金镇"},{"code":"620981103","name":"花海镇"},{"code":"620981104","name":"老君庙镇"},{"code":"620981105","name":"黄闸湾镇"},{"code":"620981106","name":"下西号镇"},{"code":"620981107","name":"柳河镇"},{"code":"620981108","name":"昌马镇"},{"code":"620981109","name":"柳湖镇"},{"code":"620981110","name":"六墩镇"},{"code":"620981206","name":"小金湾东乡族乡"},{"code":"620981208","name":"独山子东乡族乡"},{"code":"620981400","name":"国营饮马农场"},{"code":"620981401","name":"国营黄花农场"},{"code":"620981404","name":"甘肃矿区"}]},{"code":"620982","name":"敦煌市","children":[{"code":"620982100","name":"七里镇"},{"code":"620982101","name":"沙州镇"},{"code":"620982102","name":"肃州镇"},{"code":"620982103","name":"莫高镇"},{"code":"620982104","name":"转渠口镇"},{"code":"620982105","name":"阳关镇"},{"code":"620982106","name":"月牙泉镇"},{"code":"620982107","name":"郭家堡镇"},{"code":"620982108","name":"黄渠镇"},{"code":"620982401","name":"青海石油管理局生活基地"}]}]},{"code":"6210","name":"庆阳市","children":[{"code":"621002","name":"西峰区","children":[{"code":"621002001","name":"北街街道"},{"code":"621002002","name":"南街街道"},{"code":"621002003","name":"西街街道"},{"code":"621002100","name":"肖金镇"},{"code":"621002101","name":"董志镇"},{"code":"621002102","name":"后官寨镇"},{"code":"621002103","name":"彭原镇"},{"code":"621002104","name":"温泉镇"},{"code":"621002203","name":"什社乡"},{"code":"621002204","name":"显胜乡"}]},{"code":"621021","name":"庆城县","children":[{"code":"621021100","name":"庆城镇"},{"code":"621021101","name":"驿马镇"},{"code":"621021102","name":"三十里铺镇"},{"code":"621021103","name":"马岭镇"},{"code":"621021104","name":"玄马镇"},{"code":"621021105","name":"白马铺镇"},{"code":"621021106","name":"桐川镇"},{"code":"621021107","name":"赤城镇"},{"code":"621021108","name":"高楼镇"},{"code":"621021203","name":"太白梁乡"},{"code":"621021204","name":"土桥乡"},{"code":"621021205","name":"蔡口集乡"},{"code":"621021207","name":"南庄乡"},{"code":"621021208","name":"翟家河乡"},{"code":"621021209","name":"蔡家庙乡"}]},{"code":"621022","name":"环县","children":[{"code":"621022100","name":"环城镇"},{"code":"621022101","name":"曲子镇"},{"code":"621022102","name":"甜水镇"},{"code":"621022103","name":"木钵镇"},{"code":"621022104","name":"洪德镇"},{"code":"621022105","name":"合道镇"},{"code":"621022106","name":"虎洞镇"},{"code":"621022107","name":"毛井镇"},{"code":"621022108","name":"樊家川镇"},{"code":"621022109","name":"车道镇"},{"code":"621022200","name":"天池乡"},{"code":"621022201","name":"演武乡"},{"code":"621022204","name":"八珠乡"},{"code":"621022206","name":"耿湾乡"},{"code":"621022207","name":"秦团庄乡"},{"code":"621022208","name":"山城乡"},{"code":"621022209","name":"南湫乡"},{"code":"621022210","name":"罗山川乡"},{"code":"621022212","name":"小南沟乡"},{"code":"621022215","name":"芦家湾乡"}]},{"code":"621023","name":"华池县","children":[{"code":"621023100","name":"悦乐镇"},{"code":"621023101","name":"柔远镇"},{"code":"621023102","name":"元城镇"},{"code":"621023103","name":"南梁镇"},{"code":"621023104","name":"城壕镇"},{"code":"621023105","name":"五蛟镇"},{"code":"621023202","name":"上里塬乡"},{"code":"621023203","name":"王咀子乡"},{"code":"621023204","name":"白马乡"},{"code":"621023205","name":"怀安乡"},{"code":"621023206","name":"乔川乡"},{"code":"621023207","name":"乔河乡"},{"code":"621023208","name":"山庄乡"},{"code":"621023210","name":"林镇乡"},{"code":"621023211","name":"紫坊畔乡"}]},{"code":"621024","name":"合水县","children":[{"code":"621024100","name":"西华池镇"},{"code":"621024101","name":"老城镇"},{"code":"621024102","name":"太白镇"},{"code":"621024103","name":"板桥镇"},{"code":"621024104","name":"何家畔镇"},{"code":"621024105","name":"吉岘镇"},{"code":"621024106","name":"肖咀镇"},{"code":"621024107","name":"固城镇"},{"code":"621024202","name":"段家集乡"},{"code":"621024204","name":"太莪乡"},{"code":"621024205","name":"店子乡"},{"code":"621024208","name":"蒿咀铺乡"}]},{"code":"621025","name":"正宁县","children":[{"code":"621025100","name":"山河镇"},{"code":"621025101","name":"榆林子镇"},{"code":"621025102","name":"宫河镇"},{"code":"621025103","name":"永和镇"},{"code":"621025104","name":"永正镇"},{"code":"621025105","name":"周家镇"},{"code":"621025106","name":"湫头镇"},{"code":"621025107","name":"西坡镇"},{"code":"621025204","name":"五顷塬回族乡"},{"code":"621025205","name":"三嘉乡"}]},{"code":"621026","name":"宁县","children":[{"code":"621026100","name":"新宁镇"},{"code":"621026101","name":"平子镇"},{"code":"621026102","name":"早胜镇"},{"code":"621026103","name":"长庆桥镇"},{"code":"621026104","name":"和盛镇"},{"code":"621026105","name":"湘乐镇"},{"code":"621026106","name":"新庄镇"},{"code":"621026107","name":"盘克镇"},{"code":"621026108","name":"中村镇"},{"code":"621026109","name":"焦村镇"},{"code":"621026110","name":"米桥镇"},{"code":"621026111","name":"良平镇"},{"code":"621026112","name":"太昌镇"},{"code":"621026113","name":"春荣镇"},{"code":"621026205","name":"南义乡"},{"code":"621026206","name":"瓦斜乡"},{"code":"621026207","name":"金村乡"},{"code":"621026208","name":"九岘乡"}]},{"code":"621027","name":"镇原县","children":[{"code":"621027100","name":"城关镇"},{"code":"621027101","name":"屯字镇"},{"code":"621027102","name":"孟坝镇"},{"code":"621027103","name":"三岔镇"},{"code":"621027104","name":"平泉镇"},{"code":"621027105","name":"开边镇"},{"code":"621027106","name":"太平镇"},{"code":"621027107","name":"临泾镇"},{"code":"621027108","name":"新城镇"},{"code":"621027109","name":"上肖镇"},{"code":"621027110","name":"新集镇"},{"code":"621027111","name":"马渠镇"},{"code":"621027112","name":"庙渠镇"},{"code":"621027201","name":"南川乡"},{"code":"621027204","name":"方山乡"},{"code":"621027205","name":"殷家城乡"},{"code":"621027208","name":"武沟乡"},{"code":"621027209","name":"郭原乡"},{"code":"621027210","name":"中原乡"}]}]},{"code":"6211","name":"定西市","children":[{"code":"621102","name":"安定区","children":[{"code":"621102001","name":"中华路街道"},{"code":"621102002","name":"永定路街道"},{"code":"621102003","name":"福台路街道"},{"code":"621102101","name":"凤翔镇"},{"code":"621102102","name":"内官营镇"},{"code":"621102103","name":"巉口镇"},{"code":"621102104","name":"称钩驿镇"},{"code":"621102105","name":"鲁家沟镇"},{"code":"621102106","name":"西巩驿镇"},{"code":"621102107","name":"宁远镇"},{"code":"621102108","name":"李家堡镇"},{"code":"621102109","name":"团结镇"},{"code":"621102110","name":"香泉镇"},{"code":"621102111","name":"符家川镇"},{"code":"621102112","name":"葛家岔镇"},{"code":"621102204","name":"白碌乡"},{"code":"621102207","name":"石峡湾乡"},{"code":"621102208","name":"新集乡"},{"code":"621102209","name":"青岚山乡"},{"code":"621102210","name":"高峰乡"},{"code":"621102211","name":"石泉乡"},{"code":"621102214","name":"杏园乡"}]},{"code":"621121","name":"通渭县","children":[{"code":"621121100","name":"平襄镇"},{"code":"621121101","name":"马营镇"},{"code":"621121102","name":"鸡川镇"},{"code":"621121103","name":"榜罗镇"},{"code":"621121104","name":"常家河镇"},{"code":"621121105","name":"义岗川镇"},{"code":"621121106","name":"陇阳镇"},{"code":"621121107","name":"陇山镇"},{"code":"621121108","name":"陇川镇"},{"code":"621121109","name":"碧玉镇"},{"code":"621121110","name":"襄南镇"},{"code":"621121111","name":"什川镇"},{"code":"621121112","name":"华家岭镇"},{"code":"621121113","name":"北城铺镇"},{"code":"621121203","name":"新景乡"},{"code":"621121207","name":"李家店乡"},{"code":"621121212","name":"第三铺乡"},{"code":"621121215","name":"寺子川乡"}]},{"code":"621122","name":"陇西县","children":[{"code":"621122100","name":"巩昌镇"},{"code":"621122101","name":"文峰镇"},{"code":"621122102","name":"首阳镇"},{"code":"621122103","name":"菜子镇"},{"code":"621122104","name":"福星镇"},{"code":"621122105","name":"通安驿镇"},{"code":"621122106","name":"云田镇"},{"code":"621122107","name":"碧岩镇"},{"code":"621122108","name":"马河镇"},{"code":"621122109","name":"柯寨镇"},{"code":"621122110","name":"双泉镇"},{"code":"621122111","name":"权家湾镇"},{"code":"621122200","name":"渭阳乡"},{"code":"621122201","name":"宏伟乡"},{"code":"621122202","name":"和平乡"},{"code":"621122205","name":"德兴乡"},{"code":"621122206","name":"永吉乡"}]},{"code":"621123","name":"渭源县","children":[{"code":"621123100","name":"清源镇"},{"code":"621123101","name":"莲峰镇"},{"code":"621123102","name":"会川镇"},{"code":"621123103","name":"五竹镇"},{"code":"621123104","name":"路园镇"},{"code":"621123105","name":"北寨镇"},{"code":"621123106","name":"新寨镇"},{"code":"621123107","name":"麻家集镇"},{"code":"621123108","name":"锹峪镇"},{"code":"621123109","name":"庆坪镇"},{"code":"621123110","name":"祁家庙镇"},{"code":"621123111","name":"上湾镇"},{"code":"621123203","name":"大安乡"},{"code":"621123204","name":"秦祁乡"},{"code":"621123209","name":"峡城乡"},{"code":"621123210","name":"田家河乡"}]},{"code":"621124","name":"临洮县","children":[{"code":"621124100","name":"洮阳镇"},{"code":"621124101","name":"八里铺镇"},{"code":"621124102","name":"新添镇"},{"code":"621124103","name":"辛店镇"},{"code":"621124104","name":"太石镇"},{"code":"621124105","name":"中铺镇"},{"code":"621124106","name":"峡口镇"},{"code":"621124107","name":"龙门镇"},{"code":"621124108","name":"窑店镇"},{"code":"621124109","name":"玉井镇"},{"code":"621124110","name":"衙下集镇"},{"code":"621124111","name":"南屏镇"},{"code":"621124200","name":"红旗乡"},{"code":"621124201","name":"上营乡"},{"code":"621124202","name":"康家集乡"},{"code":"621124203","name":"站滩乡"},{"code":"621124204","name":"漫洼乡"},{"code":"621124205","name":"连儿湾乡"}]},{"code":"621125","name":"漳县","children":[{"code":"621125100","name":"武阳镇"},{"code":"621125101","name":"三岔镇"},{"code":"621125102","name":"新寺镇"},{"code":"621125103","name":"金钟镇"},{"code":"621125104","name":"盐井镇"},{"code":"621125105","name":"殪虎桥镇"},{"code":"621125106","name":"大草滩镇"},{"code":"621125107","name":"四族镇"},{"code":"621125108","name":"石川镇"},{"code":"621125109","name":"贵清山镇"},{"code":"621125204","name":"马泉乡"},{"code":"621125208","name":"武当乡"},{"code":"621125209","name":"东泉乡"}]},{"code":"621126","name":"岷县","children":[{"code":"621126100","name":"岷阳镇"},{"code":"621126101","name":"蒲麻镇"},{"code":"621126102","name":"西寨镇"},{"code":"621126103","name":"梅川镇"},{"code":"621126104","name":"西江镇"},{"code":"621126105","name":"闾井镇"},{"code":"621126106","name":"十里镇"},{"code":"621126107","name":"茶埠镇"},{"code":"621126108","name":"中寨镇"},{"code":"621126109","name":"清水镇"},{"code":"621126110","name":"寺沟镇"},{"code":"621126111","name":"麻子川镇"},{"code":"621126112","name":"维新镇"},{"code":"621126113","name":"禾驮镇"},{"code":"621126114","name":"马坞镇"},{"code":"621126204","name":"秦许乡"},{"code":"621126207","name":"申都乡"},{"code":"621126208","name":"锁龙乡"}]}]},{"code":"6212","name":"陇南市","children":[{"code":"621202","name":"武都区","children":[{"code":"621202001","name":"钟楼街道"},{"code":"621202002","name":"吉石坝街道"},{"code":"621202003","name":"江北街道"},{"code":"621202004","name":"江南街道"},{"code":"621202100","name":"城关镇"},{"code":"621202101","name":"安化镇"},{"code":"621202102","name":"东江镇"},{"code":"621202103","name":"两水镇"},{"code":"621202104","name":"汉王镇"},{"code":"621202105","name":"洛塘镇"},{"code":"621202106","name":"角弓镇"},{"code":"621202107","name":"马街镇"},{"code":"621202108","name":"三河镇"},{"code":"621202109","name":"甘泉镇"},{"code":"621202110","name":"鱼龙镇"},{"code":"621202111","name":"琵琶镇"},{"code":"621202112","name":"外纳镇"},{"code":"621202113","name":"马营镇"},{"code":"621202114","name":"柏林镇"},{"code":"621202115","name":"姚寨镇"},{"code":"621202116","name":"佛崖镇"},{"code":"621202117","name":"石门镇"},{"code":"621202118","name":"五马镇"},{"code":"621202119","name":"裕河镇"},{"code":"621202120","name":"汉林镇"},{"code":"621202121","name":"桔柑镇"},{"code":"621202122","name":"隆兴镇"},{"code":"621202123","name":"黄坪镇"},{"code":"621202124","name":"五库镇"},{"code":"621202125","name":"三仓镇"},{"code":"621202201","name":"坪垭藏族乡"},{"code":"621202203","name":"蒲池乡"},{"code":"621202211","name":"池坝乡"},{"code":"621202218","name":"龙坝乡"},{"code":"621202219","name":"龙凤乡"},{"code":"621202221","name":"磨坝藏族乡"},{"code":"621202225","name":"玉皇乡"},{"code":"621202226","name":"郭河乡"},{"code":"621202229","name":"枫相乡"},{"code":"621202233","name":"月照乡"}]},{"code":"621221","name":"成县","children":[{"code":"621221100","name":"城关镇"},{"code":"621221101","name":"黄渚镇"},{"code":"621221102","name":"红川镇"},{"code":"621221103","name":"小川镇"},{"code":"621221104","name":"纸坊镇"},{"code":"621221105","name":"抛沙镇"},{"code":"621221107","name":"店村镇"},{"code":"621221108","name":"王磨镇"},{"code":"621221109","name":"陈院镇"},{"code":"621221110","name":"沙坝镇"},{"code":"621221111","name":"黄陈镇"},{"code":"621221112","name":"鸡峰镇"},{"code":"621221113","name":"苏元镇"},{"code":"621221114","name":"索池镇"},{"code":"621221203","name":"宋坪乡"},{"code":"621221206","name":"二郎乡"},{"code":"621221213","name":"镡河乡"}]},{"code":"621222","name":"文县","children":[{"code":"621222100","name":"城关镇"},{"code":"621222101","name":"碧口镇"},{"code":"621222102","name":"尚德镇"},{"code":"621222103","name":"中寨镇"},{"code":"621222104","name":"临江镇"},{"code":"621222105","name":"桥头镇"},{"code":"621222106","name":"梨坪镇"},{"code":"621222107","name":"天池镇"},{"code":"621222108","name":"堡子坝镇"},{"code":"621222109","name":"石坊镇"},{"code":"621222110","name":"石鸡坝镇"},{"code":"621222111","name":"丹堡镇"},{"code":"621222112","name":"中庙镇"},{"code":"621222113","name":"范坝镇"},{"code":"621222200","name":"铁楼藏族乡"},{"code":"621222205","name":"刘家坪乡"},{"code":"621222206","name":"玉垒乡"},{"code":"621222211","name":"口头坝乡"},{"code":"621222212","name":"尖山乡"},{"code":"621222215","name":"舍书乡"}]},{"code":"621223","name":"宕昌县","children":[{"code":"621223100","name":"城关镇"},{"code":"621223101","name":"哈达铺镇"},{"code":"621223102","name":"理川镇"},{"code":"621223103","name":"南阳镇"},{"code":"621223104","name":"官亭镇"},{"code":"621223105","name":"沙湾镇"},{"code":"621223106","name":"阿坞镇"},{"code":"621223107","name":"南河镇"},{"code":"621223108","name":"八力镇"},{"code":"621223109","name":"临江铺镇"},{"code":"621223110","name":"两河口镇"},{"code":"621223206","name":"木耳乡"},{"code":"621223207","name":"庞家乡"},{"code":"621223209","name":"何家堡乡"},{"code":"621223211","name":"贾河乡"},{"code":"621223212","name":"将台乡"},{"code":"621223213","name":"车拉乡"},{"code":"621223214","name":"新城子藏族乡"},{"code":"621223216","name":"好梯乡"},{"code":"621223217","name":"韩院乡"},{"code":"621223218","name":"竹院乡"},{"code":"621223219","name":"兴化乡"},{"code":"621223220","name":"甘江头乡"},{"code":"621223223","name":"新寨乡"},{"code":"621223224","name":"狮子乡"}]},{"code":"621224","name":"康县","children":[{"code":"621224100","name":"城关镇"},{"code":"621224101","name":"平洛镇"},{"code":"621224102","name":"大堡镇"},{"code":"621224103","name":"岸门口镇"},{"code":"621224104","name":"两河镇"},{"code":"621224105","name":"长坝镇"},{"code":"621224106","name":"云台镇"},{"code":"621224107","name":"阳坝镇"},{"code":"621224108","name":"王坝镇"},{"code":"621224109","name":"碾坝镇"},{"code":"621224110","name":"豆坝镇"},{"code":"621224111","name":"望关镇"},{"code":"621224112","name":"大南峪镇"},{"code":"621224113","name":"周家坝镇"},{"code":"621224114","name":"寺台镇"},{"code":"621224115","name":"白杨镇"},{"code":"621224116","name":"铜钱镇"},{"code":"621224117","name":"三河坝镇"},{"code":"621224204","name":"迷坝乡"},{"code":"621224209","name":"店子乡"},{"code":"621224214","name":"太石乡"}]},{"code":"621225","name":"西和县","children":[{"code":"621225100","name":"汉源镇"},{"code":"621225101","name":"长道镇"},{"code":"621225102","name":"何坝镇"},{"code":"621225103","name":"姜席镇"},{"code":"621225104","name":"石峡镇"},{"code":"621225105","name":"洛峪镇"},{"code":"621225106","name":"西峪镇"},{"code":"621225107","name":"马元镇"},{"code":"621225108","name":"大桥镇"},{"code":"621225109","name":"十里镇"},{"code":"621225110","name":"石堡镇"},{"code":"621225111","name":"兴隆镇"},{"code":"621225112","name":"苏合镇"},{"code":"621225113","name":"卢河镇"},{"code":"621225114","name":"稍峪镇"},{"code":"621225115","name":"西高山镇"},{"code":"621225208","name":"晒经乡"},{"code":"621225217","name":"蒿林乡"},{"code":"621225218","name":"太石河乡"},{"code":"621225220","name":"六巷乡"}]},{"code":"621226","name":"礼县","children":[{"code":"621226100","name":"城关镇"},{"code":"621226101","name":"盐官镇"},{"code":"621226102","name":"石桥镇"},{"code":"621226103","name":"白河镇"},{"code":"621226104","name":"宽川镇"},{"code":"621226105","name":"永兴镇"},{"code":"621226106","name":"祁山镇"},{"code":"621226107","name":"红河镇"},{"code":"621226108","name":"永坪镇"},{"code":"621226109","name":"中坝镇"},{"code":"621226110","name":"罗坝镇"},{"code":"621226111","name":"雷坝镇"},{"code":"621226112","name":"崖城镇"},{"code":"621226113","name":"洮坪镇"},{"code":"621226114","name":"龙林镇"},{"code":"621226115","name":"固城镇"},{"code":"621226116","name":"江口镇"},{"code":"621226117","name":"湫山镇"},{"code":"621226118","name":"白关镇"},{"code":"621226119","name":"桥头镇"},{"code":"621226120","name":"王坝镇"},{"code":"621226121","name":"滩坪镇"},{"code":"621226203","name":"马河乡"},{"code":"621226215","name":"上坪乡"},{"code":"621226219","name":"雷王乡"},{"code":"621226224","name":"沙金乡"},{"code":"621226228","name":"草坪乡"},{"code":"621226231","name":"肖良乡"},{"code":"621226232","name":"三峪乡"}]},{"code":"621227","name":"徽县","children":[{"code":"621227100","name":"城关镇"},{"code":"621227101","name":"伏家镇"},{"code":"621227102","name":"江洛镇"},{"code":"621227103","name":"泥阳镇"},{"code":"621227104","name":"柳林镇"},{"code":"621227105","name":"嘉陵镇"},{"code":"621227106","name":"永宁镇"},{"code":"621227107","name":"银杏树镇"},{"code":"621227108","name":"水阳镇"},{"code":"621227109","name":"栗川镇"},{"code":"621227110","name":"麻沿河镇"},{"code":"621227111","name":"高桥镇"},{"code":"621227112","name":"大河店镇"},{"code":"621227208","name":"榆树乡"},{"code":"621227211","name":"虞关乡"}]},{"code":"621228","name":"两当县","children":[{"code":"621228100","name":"城关镇"},{"code":"621228101","name":"站儿巷镇"},{"code":"621228102","name":"西坡镇"},{"code":"621228103","name":"杨店镇"},{"code":"621228104","name":"显龙镇"},{"code":"621228105","name":"云屏镇"},{"code":"621228201","name":"左家乡"},{"code":"621228203","name":"鱼池乡"},{"code":"621228204","name":"兴化乡"},{"code":"621228207","name":"张家乡"},{"code":"621228210","name":"泰山乡"},{"code":"621228212","name":"金洞乡"}]}]},{"code":"6229","name":"临夏回族自治州","children":[{"code":"622901","name":"临夏市","children":[{"code":"622901001","name":"城南街道"},{"code":"622901002","name":"城北街道"},{"code":"622901003","name":"东关街道"},{"code":"622901004","name":"西关街道"},{"code":"622901005","name":"八坊街道"},{"code":"622901006","name":"红园街道"},{"code":"622901007","name":"东区街道"},{"code":"622901100","name":"城郊镇"},{"code":"622901101","name":"枹罕镇"},{"code":"622901102","name":"南龙镇"},{"code":"622901103","name":"折桥镇"}]},{"code":"622921","name":"临夏县","children":[{"code":"622921100","name":"韩集镇"},{"code":"622921101","name":"土桥镇"},{"code":"622921102","name":"马集镇"},{"code":"622921103","name":"莲花镇"},{"code":"622921104","name":"新集镇"},{"code":"622921105","name":"尹集镇"},{"code":"622921106","name":"刁祁镇"},{"code":"622921107","name":"北塬镇"},{"code":"622921108","name":"黄泥湾镇"},{"code":"622921200","name":"营滩乡"},{"code":"622921201","name":"掌子沟乡"},{"code":"622921202","name":"麻尼寺沟乡"},{"code":"622921204","name":"漠泥沟乡"},{"code":"622921208","name":"漫路乡"},{"code":"622921209","name":"榆林乡"},{"code":"622921210","name":"井沟乡"},{"code":"622921213","name":"坡头乡"},{"code":"622921214","name":"桥寺乡"},{"code":"622921215","name":"先锋乡"},{"code":"622921216","name":"河西乡"},{"code":"622921217","name":"安家坡乡"},{"code":"622921218","name":"南塬乡"},{"code":"622921220","name":"红台乡"},{"code":"622921223","name":"路盘乡"},{"code":"622921224","name":"民主乡"}]},{"code":"622922","name":"康乐县","children":[{"code":"622922100","name":"附城镇"},{"code":"622922101","name":"苏集镇"},{"code":"622922102","name":"胭脂镇"},{"code":"622922103","name":"景古镇"},{"code":"622922104","name":"莲麓镇"},{"code":"622922200","name":"康丰乡"},{"code":"622922201","name":"虎关乡"},{"code":"622922202","name":"流川乡"},{"code":"622922203","name":"白王乡"},{"code":"622922205","name":"八松乡"},{"code":"622922206","name":"鸣鹿乡"},{"code":"622922207","name":"八丹乡"},{"code":"622922208","name":"上湾乡"},{"code":"622922211","name":"草滩乡"},{"code":"622922212","name":"五户乡"}]},{"code":"622923","name":"永靖县","children":[{"code":"622923100","name":"刘家峡镇"},{"code":"622923101","name":"盐锅峡镇"},{"code":"622923102","name":"太极镇"},{"code":"622923103","name":"西河镇"},{"code":"622923104","name":"三塬镇"},{"code":"622923105","name":"岘塬镇"},{"code":"622923106","name":"陈井镇"},{"code":"622923107","name":"川城镇"},{"code":"622923108","name":"王台镇"},{"code":"622923109","name":"红泉镇"},{"code":"622923200","name":"关山乡"},{"code":"622923201","name":"徐顶乡"},{"code":"622923202","name":"三条岘乡"},{"code":"622923203","name":"坪沟乡"},{"code":"622923206","name":"新寺乡"},{"code":"622923207","name":"小岭乡"},{"code":"622923208","name":"杨塔乡"}]},{"code":"622924","name":"广河县","children":[{"code":"622924100","name":"城关镇"},{"code":"622924101","name":"三甲集镇"},{"code":"622924102","name":"祁家集镇"},{"code":"622924103","name":"庄窠集镇"},{"code":"622924104","name":"买家巷镇"},{"code":"622924105","name":"齐家镇"},{"code":"622924202","name":"水泉乡"},{"code":"622924203","name":"官坊乡"},{"code":"622924204","name":"阿力麻土东乡族乡"}]},{"code":"622925","name":"和政县","children":[{"code":"622925100","name":"城关镇"},{"code":"622925101","name":"三合镇"},{"code":"622925102","name":"三十里铺镇"},{"code":"622925103","name":"马家堡镇"},{"code":"622925104","name":"买家集镇"},{"code":"622925105","name":"松鸣镇"},{"code":"622925106","name":"陈家集镇"},{"code":"622925107","name":"罗家集镇"},{"code":"622925108","name":"新营镇"},{"code":"622925200","name":"梁家寺乡"},{"code":"622925203","name":"卜家庄乡"},{"code":"622925205","name":"新庄乡"},{"code":"622925207","name":"达浪乡"}]},{"code":"622926","name":"东乡族自治县","children":[{"code":"622926100","name":"锁南镇"},{"code":"622926101","name":"达板镇"},{"code":"622926102","name":"河滩镇"},{"code":"622926103","name":"那勒寺镇"},{"code":"622926104","name":"唐汪镇"},{"code":"622926105","name":"果园镇"},{"code":"622926106","name":"汪集镇"},{"code":"622926107","name":"龙泉镇"},{"code":"622926200","name":"春台乡"},{"code":"622926201","name":"柳树乡"},{"code":"622926202","name":"东塬乡"},{"code":"622926204","name":"坪庄乡"},{"code":"622926205","name":"百和乡"},{"code":"622926206","name":"关卜乡"},{"code":"622926208","name":"赵家乡"},{"code":"622926209","name":"五家乡"},{"code":"622926212","name":"沿岭乡"},{"code":"622926214","name":"风山乡"},{"code":"622926215","name":"车家湾乡"},{"code":"622926216","name":"高山乡"},{"code":"622926219","name":"大树乡"},{"code":"622926220","name":"北岭乡"},{"code":"622926222","name":"考勒乡"},{"code":"622926223","name":"董岭乡"}]},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县","children":[{"code":"622927100","name":"吹麻滩镇"},{"code":"622927101","name":"大河家镇"},{"code":"622927102","name":"居集镇"},{"code":"622927103","name":"癿藏镇"},{"code":"622927104","name":"石塬镇"},{"code":"622927105","name":"安集镇"},{"code":"622927106","name":"银川镇"},{"code":"622927200","name":"刘集乡"},{"code":"622927202","name":"柳沟乡"},{"code":"622927203","name":"关家川乡"},{"code":"622927204","name":"胡林家乡"},{"code":"622927206","name":"寨子沟乡"},{"code":"622927207","name":"郭干乡"},{"code":"622927208","name":"徐扈家乡"},{"code":"622927209","name":"中咀岭乡"},{"code":"622927210","name":"小关乡"},{"code":"622927211","name":"铺川乡"}]}]},{"code":"6230","name":"甘南藏族自治州","children":[{"code":"623001","name":"合作市","children":[{"code":"623001001","name":"当周街道"},{"code":"623001002","name":"伊合昂街道"},{"code":"623001003","name":"坚木克尔街道"},{"code":"623001004","name":"通钦街道"},{"code":"623001100","name":"那吾镇"},{"code":"623001101","name":"勒秀镇"},{"code":"623001102","name":"佐盖曼玛镇"},{"code":"623001200","name":"卡加曼乡"},{"code":"623001201","name":"卡加道乡"},{"code":"623001202","name":"佐盖多玛乡"}]},{"code":"623021","name":"临潭县","children":[{"code":"623021100","name":"城关镇"},{"code":"623021101","name":"新城镇"},{"code":"623021102","name":"冶力关镇"},{"code":"623021103","name":"羊永镇"},{"code":"623021104","name":"王旗镇"},{"code":"623021105","name":"古战镇"},{"code":"623021106","name":"洮滨镇"},{"code":"623021107","name":"八角镇"},{"code":"623021108","name":"流顺镇"},{"code":"623021109","name":"店子镇"},{"code":"623021110","name":"羊沙镇"},{"code":"623021200","name":"术布乡"},{"code":"623021202","name":"卓洛乡"},{"code":"623021203","name":"长川乡"},{"code":"623021208","name":"三岔乡"},{"code":"623021210","name":"石门乡"}]},{"code":"623022","name":"卓尼县","children":[{"code":"623022100","name":"柳林镇"},{"code":"623022101","name":"木耳镇"},{"code":"623022102","name":"扎古录镇"},{"code":"623022103","name":"喀尔钦镇"},{"code":"623022104","name":"藏巴哇镇"},{"code":"623022105","name":"纳浪镇"},{"code":"623022106","name":"洮砚镇"},{"code":"623022107","name":"阿子滩镇"},{"code":"623022108","name":"申藏镇"},{"code":"623022109","name":"完冒镇"},{"code":"623022110","name":"尼巴镇"},{"code":"623022202","name":"刀告乡"},{"code":"623022207","name":"恰盖乡"},{"code":"623022208","name":"康多乡"},{"code":"623022209","name":"杓哇土族乡"}]},{"code":"623023","name":"舟曲县","children":[{"code":"623023100","name":"城关镇"},{"code":"623023101","name":"大川镇"},{"code":"623023102","name":"峰迭镇"},{"code":"623023103","name":"立节镇"},{"code":"623023104","name":"东山镇"},{"code":"623023105","name":"曲告纳镇"},{"code":"623023106","name":"博峪镇"},{"code":"623023107","name":"巴藏镇"},{"code":"623023108","name":"憨班镇"},{"code":"623023109","name":"坪定镇"},{"code":"623023110","name":"果耶镇"},{"code":"623023111","name":"武坪镇"},{"code":"623023112","name":"大峪镇"},{"code":"623023113","name":"江盘镇"},{"code":"623023114","name":"拱坝镇"},{"code":"623023200","name":"曲瓦乡"},{"code":"623023208","name":"南峪乡"},{"code":"623023210","name":"八楞乡"},{"code":"623023212","name":"插岗乡"}]},{"code":"623024","name":"迭部县","children":[{"code":"623024100","name":"电尕镇"},{"code":"623024101","name":"益哇镇"},{"code":"623024102","name":"旺藏镇"},{"code":"623024103","name":"腊子口镇"},{"code":"623024104","name":"洛大镇"},{"code":"623024201","name":"卡坝乡"},{"code":"623024202","name":"达拉乡"},{"code":"623024203","name":"尼傲乡"},{"code":"623024205","name":"阿夏乡"},{"code":"623024206","name":"多儿乡"},{"code":"623024207","name":"桑坝乡"}]},{"code":"623025","name":"玛曲县","children":[{"code":"623025100","name":"尼玛镇"},{"code":"623025101","name":"曼日玛镇"},{"code":"623025102","name":"阿万仓镇"},{"code":"623025103","name":"齐哈玛镇"},{"code":"623025104","name":"采日玛镇"},{"code":"623025105","name":"欧拉镇"},{"code":"623025201","name":"欧拉秀玛乡"},{"code":"623025203","name":"木西合乡"},{"code":"623025400","name":"河曲马场"},{"code":"623025401","name":"大水军牧场"},{"code":"623025402","name":"高原生物研究所"}]},{"code":"623026","name":"碌曲县","children":[{"code":"623026100","name":"郎木寺镇"},{"code":"623026101","name":"玛艾镇"},{"code":"623026102","name":"西仓镇"},{"code":"623026103","name":"尕海镇"},{"code":"623026104","name":"双岔镇"},{"code":"623026202","name":"拉仁关乡"},{"code":"623026204","name":"阿拉乡"}]},{"code":"623027","name":"夏河县","children":[{"code":"623027100","name":"拉卜楞镇"},{"code":"623027101","name":"王格尔塘镇"},{"code":"623027102","name":"阿木去乎镇"},{"code":"623027103","name":"桑科镇"},{"code":"623027104","name":"甘加镇"},{"code":"623027105","name":"麻当镇"},{"code":"623027106","name":"博拉镇"},{"code":"623027107","name":"科才镇"},{"code":"623027202","name":"达麦乡"},{"code":"623027204","name":"曲奥乡"},{"code":"623027205","name":"唐尕昂乡"},{"code":"623027206","name":"扎油乡"},{"code":"623027208","name":"吉仓乡"}]}]}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市","children":[{"code":"630102","name":"城东区","children":[{"code":"630102001","name":"东关大街街道"},{"code":"630102002","name":"清真巷街道"},{"code":"630102003","name":"大众街街道"},{"code":"630102004","name":"周家泉街道"},{"code":"630102005","name":"火车站街道"},{"code":"630102006","name":"八一路街道"},{"code":"630102007","name":"林家崖街道"},{"code":"630102100","name":"乐家湾镇"},{"code":"630102101","name":"韵家口镇"},{"code":"630102400","name":"东川工业园"}]},{"code":"630103","name":"城中区","children":[{"code":"630103001","name":"人民街街道"},{"code":"630103002","name":"南滩街道"},{"code":"630103003","name":"仓门街街道"},{"code":"630103004","name":"礼让街街道"},{"code":"630103005","name":"饮马街街道"},{"code":"630103006","name":"南川东路街道"},{"code":"630103007","name":"南川西路街道"},{"code":"630103100","name":"总寨镇"},{"code":"630103400","name":"南川工业园"}]},{"code":"630104","name":"城西区","children":[{"code":"630104001","name":"西关大街街道"},{"code":"630104002","name":"古城台街道"},{"code":"630104003","name":"虎台街道"},{"code":"630104004","name":"胜利路街道"},{"code":"630104005","name":"兴海路街道"},{"code":"630104006","name":"文汇路街道"},{"code":"630104007","name":"通海路街道"},{"code":"630104100","name":"彭家寨镇"}]},{"code":"630105","name":"城北区","children":[{"code":"630105001","name":"朝阳街道"},{"code":"630105002","name":"小桥大街街道"},{"code":"630105003","name":"马坊街道"},{"code":"630105004","name":"火车西站街道"},{"code":"630105100","name":"大堡子镇"},{"code":"630105101","name":"廿里铺镇"},{"code":"630105400","name":"生物科技产业园"}]},{"code":"630106","name":"湟中区","children":[{"code":"630106001","name":"康川街道"},{"code":"630106100","name":"田家寨镇"},{"code":"630106101","name":"上新庄镇"},{"code":"630106102","name":"鲁沙尔镇"},{"code":"630106103","name":"甘河滩镇"},{"code":"630106104","name":"共和镇"},{"code":"630106105","name":"多巴镇"},{"code":"630106106","name":"拦隆口镇"},{"code":"630106107","name":"上五庄镇"},{"code":"630106108","name":"李家山镇"},{"code":"630106109","name":"西堡镇"},{"code":"630106200","name":"群加藏族乡"},{"code":"630106201","name":"土门关乡"},{"code":"630106202","name":"汉东回族乡"},{"code":"630106203","name":"大才回族乡"},{"code":"630106204","name":"海子沟乡"},{"code":"630106400","name":"甘河工业园"}]},{"code":"630121","name":"大通回族土族自治县","children":[{"code":"630121100","name":"桥头镇"},{"code":"630121101","name":"城关镇"},{"code":"630121102","name":"塔尔镇"},{"code":"630121103","name":"东峡镇"},{"code":"630121104","name":"黄家寨镇"},{"code":"630121105","name":"长宁镇"},{"code":"630121106","name":"景阳镇"},{"code":"630121107","name":"多林镇"},{"code":"630121108","name":"新庄镇"},{"code":"630121200","name":"青林乡"},{"code":"630121201","name":"青山乡"},{"code":"630121202","name":"逊让乡"},{"code":"630121203","name":"极乐乡"},{"code":"630121204","name":"石山乡"},{"code":"630121205","name":"宝库乡"},{"code":"630121206","name":"斜沟乡"},{"code":"630121207","name":"良教乡"},{"code":"630121208","name":"向化藏族乡"},{"code":"630121209","name":"桦林乡"},{"code":"630121210","name":"朔北藏族乡"}]},{"code":"630123","name":"湟源县","children":[{"code":"630123100","name":"城关镇"},{"code":"630123101","name":"大华镇"},{"code":"630123200","name":"东峡乡"},{"code":"630123201","name":"日月藏族乡"},{"code":"630123202","name":"和平乡"},{"code":"630123203","name":"波航乡"},{"code":"630123204","name":"申中乡"},{"code":"630123205","name":"巴燕乡"},{"code":"630123206","name":"寺寨乡"}]}]},{"code":"6302","name":"海东市","children":[{"code":"630202","name":"乐都区","children":[{"code":"630202100","name":"碾伯镇"},{"code":"630202101","name":"雨润镇"},{"code":"630202102","name":"寿乐镇"},{"code":"630202103","name":"高庙镇"},{"code":"630202104","name":"洪水镇"},{"code":"630202105","name":"高店镇"},{"code":"630202106","name":"瞿昙镇"},{"code":"630202200","name":"共和乡"},{"code":"630202201","name":"中岭乡"},{"code":"630202202","name":"李家乡"},{"code":"630202203","name":"下营乡"},{"code":"630202204","name":"芦花乡"},{"code":"630202205","name":"马营乡"},{"code":"630202206","name":"马厂乡"},{"code":"630202207","name":"蒲台乡"},{"code":"630202208","name":"中坝乡"},{"code":"630202209","name":"峰堆乡"},{"code":"630202210","name":"城台乡"},{"code":"630202211","name":"达拉乡"},{"code":"630202400","name":"海东工业园区乐都工业园"}]},{"code":"630203","name":"平安区","children":[{"code":"630203100","name":"平安镇"},{"code":"630203101","name":"小峡镇"},{"code":"630203102","name":"三合镇"},{"code":"630203200","name":"洪水泉乡"},{"code":"630203201","name":"石灰窑乡"},{"code":"630203202","name":"古城乡"},{"code":"630203203","name":"沙沟乡"},{"code":"630203204","name":"巴藏沟乡"},{"code":"630203400","name":"曹家堡临空综合经济园平安园区"}]},{"code":"630222","name":"民和回族土族自治县","children":[{"code":"630222100","name":"川口镇"},{"code":"630222101","name":"古鄯镇"},{"code":"630222102","name":"马营镇"},{"code":"630222103","name":"官亭镇"},{"code":"630222104","name":"巴州镇"},{"code":"630222105","name":"满坪镇"},{"code":"630222106","name":"李二堡镇"},{"code":"630222107","name":"峡门镇"},{"code":"630222200","name":"马场垣乡"},{"code":"630222201","name":"北山乡"},{"code":"630222202","name":"松树乡"},{"code":"630222203","name":"西沟乡"},{"code":"630222204","name":"总堡乡"},{"code":"630222205","name":"隆治乡"},{"code":"630222206","name":"大庄乡"},{"code":"630222207","name":"转导乡"},{"code":"630222208","name":"前河乡"},{"code":"630222209","name":"甘沟乡"},{"code":"630222210","name":"中川乡"},{"code":"630222211","name":"杏儿乡"},{"code":"630222212","name":"核桃庄乡"},{"code":"630222213","name":"新民乡"}]},{"code":"630223","name":"互助土族自治县","children":[{"code":"630223100","name":"威远镇"},{"code":"630223101","name":"丹麻镇"},{"code":"630223102","name":"高寨镇"},{"code":"630223103","name":"南门峡镇"},{"code":"630223104","name":"加定镇"},{"code":"630223105","name":"塘川镇"},{"code":"630223106","name":"五十镇"},{"code":"630223107","name":"五峰镇"},{"code":"630223200","name":"台子乡"},{"code":"630223201","name":"西山乡"},{"code":"630223202","name":"红崖子沟乡"},{"code":"630223203","name":"巴扎藏族乡"},{"code":"630223204","name":"哈拉直沟乡"},{"code":"630223205","name":"松多藏族乡"},{"code":"630223206","name":"东山乡"},{"code":"630223207","name":"东和乡"},{"code":"630223208","name":"东沟乡"},{"code":"630223209","name":"林川乡"},{"code":"630223210","name":"蔡家堡乡"},{"code":"630223400","name":"曹家堡临空综合经济园互助园区"}]},{"code":"630224","name":"化隆回族自治县","children":[{"code":"630224100","name":"巴燕镇"},{"code":"630224101","name":"群科镇"},{"code":"630224102","name":"牙什尕镇"},{"code":"630224103","name":"甘都镇"},{"code":"630224104","name":"扎巴镇"},{"code":"630224105","name":"昂思多镇"},{"code":"630224200","name":"雄先藏族乡"},{"code":"630224201","name":"初麻乡"},{"code":"630224202","name":"查甫藏族乡"},{"code":"630224203","name":"塔加藏族乡"},{"code":"630224204","name":"金源藏族乡"},{"code":"630224205","name":"二塘乡"},{"code":"630224206","name":"谢家滩乡"},{"code":"630224207","name":"德恒隆乡"},{"code":"630224208","name":"沙连堡乡"},{"code":"630224209","name":"阿什奴乡"},{"code":"630224210","name":"石大仓乡"}]},{"code":"630225","name":"循化撒拉族自治县","children":[{"code":"630225100","name":"积石镇"},{"code":"630225101","name":"白庄镇"},{"code":"630225102","name":"街子镇"},{"code":"630225200","name":"道帏藏族乡"},{"code":"630225201","name":"清水乡"},{"code":"630225202","name":"岗察藏族乡"},{"code":"630225203","name":"查汗都斯乡"},{"code":"630225204","name":"文都藏族乡"},{"code":"630225205","name":"尕楞藏族乡"}]}]},{"code":"6322","name":"海北藏族自治州","children":[{"code":"632221","name":"门源回族自治县","children":[{"code":"632221100","name":"浩门镇"},{"code":"632221101","name":"青石咀镇"},{"code":"632221102","name":"泉口镇"},{"code":"632221103","name":"东川镇"},{"code":"632221200","name":"北山乡"},{"code":"632221201","name":"麻莲乡"},{"code":"632221202","name":"西滩乡"},{"code":"632221203","name":"阴田乡"},{"code":"632221204","name":"仙米乡"},{"code":"632221205","name":"珠固乡"},{"code":"632221206","name":"苏吉滩乡"},{"code":"632221207","name":"皇城蒙古族乡"},{"code":"632221400","name":"门源监狱"},{"code":"632221401","name":"门源种马场"}]},{"code":"632222","name":"祁连县","children":[{"code":"632222100","name":"八宝镇"},{"code":"632222101","name":"峨堡镇"},{"code":"632222102","name":"默勒镇"},{"code":"632222200","name":"扎麻什乡"},{"code":"632222201","name":"阿柔乡"},{"code":"632222202","name":"野牛沟乡"},{"code":"632222203","name":"央隆乡"}]},{"code":"632223","name":"海晏县","children":[{"code":"632223100","name":"三角城镇"},{"code":"632223101","name":"西海镇"},{"code":"632223200","name":"金滩乡"},{"code":"632223201","name":"哈勒景蒙古族乡"},{"code":"632223202","name":"青海湖乡"},{"code":"632223203","name":"甘子河乡"}]},{"code":"632224","name":"刚察县","children":[{"code":"632224100","name":"沙柳河镇"},{"code":"632224101","name":"哈尔盖镇"},{"code":"632224200","name":"伊克乌兰乡"},{"code":"632224201","name":"泉吉乡"},{"code":"632224202","name":"吉尔孟乡"}]}]},{"code":"6323","name":"黄南藏族自治州","children":[{"code":"632301","name":"同仁市","children":[{"code":"632301100","name":"隆务镇"},{"code":"632301101","name":"保安镇"},{"code":"632301102","name":"多哇镇"},{"code":"632301200","name":"兰采乡"},{"code":"632301201","name":"双朋西乡"},{"code":"632301202","name":"扎毛乡"},{"code":"632301203","name":"黄乃亥乡"},{"code":"632301204","name":"曲库乎乡"},{"code":"632301205","name":"年都乎乡"},{"code":"632301206","name":"瓜什则乡"},{"code":"632301207","name":"加吾乡"}]},{"code":"632322","name":"尖扎县","children":[{"code":"632322100","name":"马克堂镇"},{"code":"632322101","name":"康扬镇"},{"code":"632322102","name":"坎布拉镇"},{"code":"632322200","name":"贾加乡"},{"code":"632322201","name":"措周乡"},{"code":"632322202","name":"昂拉乡"},{"code":"632322203","name":"能科乡"},{"code":"632322204","name":"当顺乡"},{"code":"632322205","name":"尖扎滩乡"}]},{"code":"632323","name":"泽库县","children":[{"code":"632323100","name":"泽曲镇"},{"code":"632323101","name":"麦秀镇"},{"code":"632323102","name":"和日镇"},{"code":"632323103","name":"宁秀镇"},{"code":"632323202","name":"王加乡"},{"code":"632323203","name":"西卜沙乡"},{"code":"632323204","name":"多禾茂乡"}]},{"code":"632324","name":"河南蒙古族自治县","children":[{"code":"632324100","name":"优干宁镇"},{"code":"632324101","name":"宁木特镇"},{"code":"632324201","name":"多松乡"},{"code":"632324202","name":"赛尔龙乡"},{"code":"632324203","name":"柯生乡"},{"code":"632324204","name":"托叶玛乡"}]}]},{"code":"6325","name":"海南藏族自治州","children":[{"code":"632521","name":"共和县","children":[{"code":"632521100","name":"恰卜恰镇"},{"code":"632521101","name":"倒淌河镇"},{"code":"632521102","name":"龙羊峡镇"},{"code":"632521103","name":"塘格木镇"},{"code":"632521104","name":"黑马河镇"},{"code":"632521105","name":"石乃亥镇"},{"code":"632521106","name":"江西沟镇"},{"code":"632521202","name":"沙珠玉乡"},{"code":"632521203","name":"铁盖乡"},{"code":"632521204","name":"廿地乡"},{"code":"632521205","name":"切吉乡"},{"code":"632521400","name":"海南州绿色产业发展园区管理区委员会"},{"code":"632521402","name":"巴卡台农场"},{"code":"632521403","name":"安置农场"},{"code":"632521404","name":"铁卜加草改站"}]},{"code":"632522","name":"同德县","children":[{"code":"632522100","name":"尕巴松多镇"},{"code":"632522101","name":"唐谷镇"},{"code":"632522200","name":"巴沟乡"},{"code":"632522201","name":"秀麻乡"},{"code":"632522202","name":"河北乡"},{"code":"632522400","name":"省牧草良种繁殖场"}]},{"code":"632523","name":"贵德县","children":[{"code":"632523100","name":"河阴镇"},{"code":"632523101","name":"河西镇"},{"code":"632523102","name":"拉西瓦镇"},{"code":"632523103","name":"常牧镇"},{"code":"632523200","name":"河东乡"},{"code":"632523201","name":"新街回族乡"},{"code":"632523202","name":"尕让乡"}]},{"code":"632524","name":"兴海县","children":[{"code":"632524100","name":"子科滩镇"},{"code":"632524101","name":"河卡镇"},{"code":"632524102","name":"曲什安镇"},{"code":"632524200","name":"温泉乡"},{"code":"632524201","name":"龙藏乡"},{"code":"632524202","name":"中铁乡"},{"code":"632524203","name":"唐乃亥乡"}]},{"code":"632525","name":"贵南县","children":[{"code":"632525100","name":"茫曲镇"},{"code":"632525101","name":"过马营镇"},{"code":"632525102","name":"森多镇"},{"code":"632525200","name":"沙沟乡"},{"code":"632525202","name":"茫拉乡"},{"code":"632525203","name":"塔秀乡"}]}]},{"code":"6326","name":"果洛藏族自治州","children":[{"code":"632621","name":"玛沁县","children":[{"code":"632621100","name":"大武镇"},{"code":"632621101","name":"拉加镇"},{"code":"632621200","name":"大武乡"},{"code":"632621201","name":"东倾沟乡"},{"code":"632621202","name":"雪山乡"},{"code":"632621203","name":"下大武乡"},{"code":"632621204","name":"优云乡"},{"code":"632621205","name":"当洛乡"}]},{"code":"632622","name":"班玛县","children":[{"code":"632622100","name":"赛来塘镇"},{"code":"632622200","name":"多贡麻乡"},{"code":"632622201","name":"马可河乡"},{"code":"632622202","name":"吉卡乡"},{"code":"632622203","name":"达卡乡"},{"code":"632622204","name":"知钦乡"},{"code":"632622205","name":"江日堂乡"},{"code":"632622206","name":"亚尔堂乡"},{"code":"632622207","name":"灯塔乡"}]},{"code":"632623","name":"甘德县","children":[{"code":"632623100","name":"柯曲镇"},{"code":"632623200","name":"上贡麻乡"},{"code":"632623201","name":"下贡麻乡"},{"code":"632623202","name":"岗龙乡"},{"code":"632623203","name":"青珍乡"},{"code":"632623204","name":"江千乡"},{"code":"632623205","name":"下藏科乡"}]},{"code":"632624","name":"达日县","children":[{"code":"632624100","name":"吉迈镇"},{"code":"632624200","name":"满掌乡"},{"code":"632624201","name":"德昂乡"},{"code":"632624202","name":"窝赛乡"},{"code":"632624203","name":"莫坝乡"},{"code":"632624204","name":"上红科乡"},{"code":"632624205","name":"下红科乡"},{"code":"632624206","name":"建设乡"},{"code":"632624207","name":"桑日麻乡"},{"code":"632624208","name":"特合土乡"}]},{"code":"632625","name":"久治县","children":[{"code":"632625100","name":"智青松多镇"},{"code":"632625200","name":"门堂乡"},{"code":"632625201","name":"哇赛乡"},{"code":"632625202","name":"索呼日麻乡"},{"code":"632625203","name":"白玉乡"},{"code":"632625204","name":"哇尔依乡"}]},{"code":"632626","name":"玛多县","children":[{"code":"632626100","name":"玛查理镇"},{"code":"632626101","name":"花石峡镇"},{"code":"632626200","name":"黄河乡"},{"code":"632626201","name":"扎陵湖乡"}]}]},{"code":"6327","name":"玉树藏族自治州","children":[{"code":"632701","name":"玉树市","children":[{"code":"632701001","name":"结古街道"},{"code":"632701002","name":"扎西科街道"},{"code":"632701003","name":"西杭街道"},{"code":"632701004","name":"新寨街道"},{"code":"632701101","name":"隆宝镇"},{"code":"632701102","name":"下拉秀镇"},{"code":"632701200","name":"仲达乡"},{"code":"632701201","name":"巴塘乡"},{"code":"632701202","name":"小苏莽乡"},{"code":"632701203","name":"上拉秀乡"},{"code":"632701205","name":"安冲乡"},{"code":"632701400","name":"哈秀乡"}]},{"code":"632722","name":"杂多县","children":[{"code":"632722100","name":"萨呼腾镇"},{"code":"632722200","name":"昂赛乡"},{"code":"632722201","name":"结多乡"},{"code":"632722202","name":"阿多乡"},{"code":"632722203","name":"苏鲁乡"},{"code":"632722204","name":"查旦乡"},{"code":"632722205","name":"莫云乡"},{"code":"632722206","name":"扎青乡"}]},{"code":"632723","name":"称多县","children":[{"code":"632723100","name":"称文镇"},{"code":"632723101","name":"歇武镇"},{"code":"632723102","name":"扎朵镇"},{"code":"632723103","name":"清水河镇"},{"code":"632723104","name":"珍秦镇"},{"code":"632723200","name":"尕朵乡"},{"code":"632723201","name":"拉布乡"}]},{"code":"632724","name":"治多县","children":[{"code":"632724100","name":"加吉博洛格镇"},{"code":"632724200","name":"索加乡"},{"code":"632724201","name":"扎河乡"},{"code":"632724202","name":"多彩乡"},{"code":"632724203","name":"治渠乡"},{"code":"632724204","name":"立新乡"}]},{"code":"632725","name":"囊谦县","children":[{"code":"632725100","name":"香达镇"},{"code":"632725200","name":"白扎乡"},{"code":"632725201","name":"吉曲乡"},{"code":"632725202","name":"娘拉乡"},{"code":"632725203","name":"毛庄乡"},{"code":"632725204","name":"觉拉乡"},{"code":"632725205","name":"东坝乡"},{"code":"632725206","name":"尕羊乡"},{"code":"632725207","name":"吉尼赛乡"},{"code":"632725208","name":"着晓乡"}]},{"code":"632726","name":"曲麻莱县","children":[{"code":"632726100","name":"约改镇"},{"code":"632726200","name":"巴干乡"},{"code":"632726201","name":"秋智乡"},{"code":"632726202","name":"叶格乡"},{"code":"632726203","name":"麻多乡"},{"code":"632726204","name":"曲麻河乡"}]}]},{"code":"6328","name":"海西蒙古族藏族自治州","children":[{"code":"632801","name":"格尔木市","children":[{"code":"632801001","name":"昆仑路街道"},{"code":"632801002","name":"黄河路街道"},{"code":"632801003","name":"金峰路街道"},{"code":"632801004","name":"河西街道"},{"code":"632801005","name":"西藏路街道"},{"code":"632801100","name":"郭勒木德镇"},{"code":"632801101","name":"唐古拉镇"},{"code":"632801200","name":"大格勒乡"},{"code":"632801201","name":"乌图美仁乡"},{"code":"632801400","name":"察尔汗工行委"},{"code":"632801401","name":"格尔木农垦有限公司"}]},{"code":"632802","name":"德令哈市","children":[{"code":"632802001","name":"河西街道"},{"code":"632802002","name":"河东街道"},{"code":"632802003","name":"火车站街道"},{"code":"632802100","name":"尕海镇"},{"code":"632802101","name":"怀头他拉镇"},{"code":"632802102","name":"柯鲁柯镇"},{"code":"632802200","name":"蓄集乡"}]},{"code":"632803","name":"茫崖市","children":[{"code":"632803100","name":"花土沟镇"},{"code":"632803101","name":"茫崖镇"},{"code":"632803102","name":"冷湖镇"}]},{"code":"632821","name":"乌兰县","children":[{"code":"632821100","name":"希里沟镇"},{"code":"632821101","name":"茶卡镇"},{"code":"632821102","name":"柯柯镇"},{"code":"632821103","name":"铜普镇"},{"code":"632821500","name":"海西州莫河畜牧场"}]},{"code":"632822","name":"都兰县","children":[{"code":"632822100","name":"察汉乌苏镇"},{"code":"632822101","name":"香日德镇"},{"code":"632822102","name":"夏日哈镇"},{"code":"632822103","name":"宗加镇"},{"code":"632822200","name":"热水乡"},{"code":"632822201","name":"香加乡"},{"code":"632822202","name":"沟里乡"},{"code":"632822203","name":"巴隆乡"}]},{"code":"632823","name":"天峻县","children":[{"code":"632823100","name":"新源镇"},{"code":"632823101","name":"木里镇"},{"code":"632823102","name":"江河镇"},{"code":"632823200","name":"快尔玛乡"},{"code":"632823201","name":"舟群乡"},{"code":"632823202","name":"织合玛乡"},{"code":"632823203","name":"苏里乡"},{"code":"632823204","name":"生格乡"},{"code":"632823205","name":"阳康乡"},{"code":"632823206","name":"龙门乡"}]},{"code":"632857","name":"大柴旦行政委员会","children":[{"code":"632857100","name":"柴旦镇"},{"code":"632857101","name":"锡铁山镇"}]}]}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市","children":[{"code":"640104","name":"兴庆区","children":[{"code":"640104001","name":"凤凰北街街道"},{"code":"640104002","name":"解放西街街道"},{"code":"640104003","name":"文化街街道"},{"code":"640104004","name":"富宁街街道"},{"code":"640104005","name":"新华街街道"},{"code":"640104006","name":"玉皇阁北街街道"},{"code":"640104007","name":"前进街街道"},{"code":"640104008","name":"中山南街街道"},{"code":"640104009","name":"银古路街道"},{"code":"640104010","name":"胜利街街道"},{"code":"640104011","name":"丽景街街道"},{"code":"640104100","name":"掌政镇"},{"code":"640104101","name":"大新镇"},{"code":"640104200","name":"通贵乡"},{"code":"640104201","name":"月牙湖乡"}]},{"code":"640105","name":"西夏区","children":[{"code":"640105001","name":"西花园路街道"},{"code":"640105002","name":"北京西路街道"},{"code":"640105003","name":"文昌路街道"},{"code":"640105004","name":"朔方路街道"},{"code":"640105005","name":"宁华路街道"},{"code":"640105006","name":"贺兰山西路街道"},{"code":"640105007","name":"怀远路街道"},{"code":"640105100","name":"兴泾镇"},{"code":"640105101","name":"镇北堡镇"}]},{"code":"640106","name":"金凤区","children":[{"code":"640106001","name":"满城北街街道"},{"code":"640106002","name":"黄河东路街道"},{"code":"640106003","name":"长城中路街道"},{"code":"640106004","name":"北京中路街道"},{"code":"640106005","name":"上海西路街道"},{"code":"640106006","name":"贺兰山中路街道"},{"code":"640106100","name":"良田镇"},{"code":"640106101","name":"丰登镇"}]},{"code":"640121","name":"永宁县","children":[{"code":"640121001","name":"团结西路街道"},{"code":"640121100","name":"杨和镇"},{"code":"640121101","name":"李俊镇"},{"code":"640121102","name":"望远镇"},{"code":"640121103","name":"望洪镇"},{"code":"640121104","name":"闽宁镇"},{"code":"640121200","name":"胜利乡"},{"code":"640121400","name":"黄羊滩农场"},{"code":"640121401","name":"玉泉营农场"}]},{"code":"640122","name":"贺兰县","children":[{"code":"640122001","name":"富兴街街道"},{"code":"640122100","name":"习岗镇"},{"code":"640122101","name":"金贵镇"},{"code":"640122102","name":"立岗镇"},{"code":"640122103","name":"洪广镇"},{"code":"640122200","name":"常信乡"},{"code":"640122400","name":"南梁台子管委会"},{"code":"640122401","name":"暖泉农场"},{"code":"640122402","name":"宁夏原种场"},{"code":"640122403","name":"京星农牧场"}]},{"code":"640181","name":"灵武市","children":[{"code":"640181001","name":"城区街道"},{"code":"640181100","name":"东塔镇"},{"code":"640181101","name":"郝家桥镇"},{"code":"640181102","name":"崇兴镇"},{"code":"640181103","name":"宁东镇"},{"code":"640181104","name":"马家滩镇"},{"code":"640181105","name":"临河镇"},{"code":"640181200","name":"梧桐树乡"},{"code":"640181201","name":"白土岗乡"},{"code":"640181400","name":"灵武农场"}]}]},{"code":"6402","name":"石嘴山市","children":[{"code":"640202","name":"大武口区","children":[{"code":"640202001","name":"长胜街道"},{"code":"640202002","name":"朝阳街道"},{"code":"640202003","name":"人民路街道"},{"code":"640202004","name":"长城街道"},{"code":"640202005","name":"青山街道"},{"code":"640202006","name":"石炭井街道"},{"code":"640202007","name":"白芨沟街道"},{"code":"640202008","name":"沟口街道"},{"code":"640202010","name":"长兴街道"},{"code":"640202011","name":"锦林街道"},{"code":"640202100","name":"星海镇"}]},{"code":"640205","name":"惠农区","children":[{"code":"640205001","name":"育才路街道"},{"code":"640205002","name":"南街街道"},{"code":"640205003","name":"中街街道"},{"code":"640205004","name":"北街街道"},{"code":"640205005","name":"河滨街道"},{"code":"640205006","name":"火车站街道"},{"code":"640205100","name":"红果子镇"},{"code":"640205101","name":"尾闸镇"},{"code":"640205102","name":"园艺镇"},{"code":"640205200","name":"庙台乡"},{"code":"640205201","name":"礼和乡"},{"code":"640205202","name":"燕子墩乡"}]},{"code":"640221","name":"平罗县","children":[{"code":"640221100","name":"城关镇"},{"code":"640221101","name":"黄渠桥镇"},{"code":"640221102","name":"宝丰镇"},{"code":"640221103","name":"头闸镇"},{"code":"640221104","name":"姚伏镇"},{"code":"640221105","name":"崇岗镇"},{"code":"640221106","name":"陶乐镇"},{"code":"640221200","name":"高庄乡"},{"code":"640221201","name":"灵沙乡"},{"code":"640221202","name":"渠口乡"},{"code":"640221203","name":"通伏乡"},{"code":"640221204","name":"高仁乡"},{"code":"640221205","name":"红崖子乡"},{"code":"640221400","name":"前进农场"}]}]},{"code":"6403","name":"吴忠市","children":[{"code":"640302","name":"利通区","children":[{"code":"640302100","name":"金积镇"},{"code":"640302101","name":"金银滩镇"},{"code":"640302102","name":"高闸镇"},{"code":"640302103","name":"扁担沟镇"},{"code":"640302104","name":"上桥镇"},{"code":"640302105","name":"古城镇"},{"code":"640302106","name":"金星镇"},{"code":"640302107","name":"胜利镇"},{"code":"640302200","name":"东塔寺乡"},{"code":"640302201","name":"板桥乡"},{"code":"640302202","name":"马莲渠乡"},{"code":"640302203","name":"郭家桥乡"},{"code":"640302401","name":"孙家滩管委会"}]},{"code":"640303","name":"红寺堡区","children":[{"code":"640303001","name":"新民街道"},{"code":"640303100","name":"红寺堡镇"},{"code":"640303101","name":"太阳山镇"},{"code":"640303200","name":"大河乡"},{"code":"640303201","name":"新庄集乡"},{"code":"640303202","name":"柳泉乡"},{"code":"640303400","name":"工业园区管委会"}]},{"code":"640323","name":"盐池县","children":[{"code":"640323001","name":"盐州路街道"},{"code":"640323100","name":"花马池镇"},{"code":"640323101","name":"大水坑镇"},{"code":"640323102","name":"惠安堡镇"},{"code":"640323103","name":"高沙窝镇"},{"code":"640323200","name":"王乐井乡"},{"code":"640323201","name":"冯记沟乡"},{"code":"640323202","name":"青山乡"},{"code":"640323203","name":"麻黄山乡"}]},{"code":"640324","name":"同心县","children":[{"code":"640324100","name":"豫海镇"},{"code":"640324101","name":"河西镇"},{"code":"640324102","name":"韦州镇"},{"code":"640324103","name":"下马关镇"},{"code":"640324104","name":"预旺镇"},{"code":"640324105","name":"王团镇"},{"code":"640324106","name":"丁塘镇"},{"code":"640324201","name":"田老庄乡"},{"code":"640324202","name":"马高庄乡"},{"code":"640324203","name":"张家塬乡"},{"code":"640324204","name":"兴隆乡"}]},{"code":"640381","name":"青铜峡市","children":[{"code":"640381001","name":"裕民街道"},{"code":"640381100","name":"小坝镇"},{"code":"640381101","name":"大坝镇"},{"code":"640381102","name":"青铜峡镇"},{"code":"640381103","name":"叶盛镇"},{"code":"640381104","name":"瞿靖镇"},{"code":"640381105","name":"峡口镇"},{"code":"640381106","name":"邵岗镇"},{"code":"640381107","name":"陈袁滩镇"},{"code":"640381401","name":"树新林场"}]}]},{"code":"6404","name":"固原市","children":[{"code":"640402","name":"原州区","children":[{"code":"640402001","name":"南关街道"},{"code":"640402002","name":"古雁街道"},{"code":"640402003","name":"北塬街道"},{"code":"640402100","name":"三营镇"},{"code":"640402103","name":"官厅镇"},{"code":"640402104","name":"开城镇"},{"code":"640402105","name":"张易镇"},{"code":"640402106","name":"彭堡镇"},{"code":"640402107","name":"头营镇"},{"code":"640402108","name":"黄铎堡镇"},{"code":"640402200","name":"中河乡"},{"code":"640402201","name":"河川乡"},{"code":"640402204","name":"炭山乡"},{"code":"640402205","name":"寨科乡"}]},{"code":"640422","name":"西吉县","children":[{"code":"640422100","name":"吉强镇"},{"code":"640422101","name":"兴隆镇"},{"code":"640422102","name":"平峰镇"},{"code":"640422103","name":"将台堡镇"},{"code":"640422200","name":"新营乡"},{"code":"640422201","name":"红耀乡"},{"code":"640422202","name":"田坪乡"},{"code":"640422203","name":"马建乡"},{"code":"640422204","name":"震湖乡"},{"code":"640422205","name":"兴平乡"},{"code":"640422206","name":"西滩乡"},{"code":"640422207","name":"王民乡"},{"code":"640422208","name":"什字乡"},{"code":"640422209","name":"马莲乡"},{"code":"640422211","name":"硝河乡"},{"code":"640422212","name":"偏城乡"},{"code":"640422213","name":"沙沟乡"},{"code":"640422214","name":"白崖乡"},{"code":"640422215","name":"火石寨乡"}]},{"code":"640423","name":"隆德县","children":[{"code":"640423100","name":"城关镇"},{"code":"640423101","name":"沙塘镇"},{"code":"640423102","name":"联财镇"},{"code":"640423200","name":"陈靳乡"},{"code":"640423201","name":"好水乡"},{"code":"640423202","name":"观庄乡"},{"code":"640423203","name":"杨河乡"},{"code":"640423204","name":"神林乡"},{"code":"640423205","name":"张程乡"},{"code":"640423206","name":"凤岭乡"},{"code":"640423207","name":"山河乡"},{"code":"640423208","name":"温堡乡"},{"code":"640423209","name":"奠安乡"}]},{"code":"640424","name":"泾源县","children":[{"code":"640424100","name":"香水镇"},{"code":"640424101","name":"泾河源镇"},{"code":"640424102","name":"六盘山镇"},{"code":"640424200","name":"新民乡"},{"code":"640424201","name":"兴盛乡"},{"code":"640424202","name":"黄花乡"},{"code":"640424203","name":"大湾乡"}]},{"code":"640425","name":"彭阳县","children":[{"code":"640425100","name":"白阳镇"},{"code":"640425101","name":"王洼镇"},{"code":"640425102","name":"古城镇"},{"code":"640425103","name":"红河镇"},{"code":"640425200","name":"新集乡"},{"code":"640425201","name":"城阳乡"},{"code":"640425203","name":"冯庄乡"},{"code":"640425204","name":"小岔乡"},{"code":"640425205","name":"孟塬乡"},{"code":"640425206","name":"罗洼乡"},{"code":"640425207","name":"交岔乡"},{"code":"640425208","name":"草庙乡"}]}]},{"code":"6405","name":"中卫市","children":[{"code":"640502","name":"沙坡头区","children":[{"code":"640502100","name":"滨河镇"},{"code":"640502101","name":"文昌镇"},{"code":"640502102","name":"东园镇"},{"code":"640502103","name":"柔远镇"},{"code":"640502104","name":"镇罗镇"},{"code":"640502105","name":"宣和镇"},{"code":"640502106","name":"永康镇"},{"code":"640502107","name":"常乐镇"},{"code":"640502108","name":"迎水桥镇"},{"code":"640502109","name":"兴仁镇"},{"code":"640502200","name":"香山乡"},{"code":"640502400","name":"中卫山羊选育场"},{"code":"640502401","name":"中卫工业园区"}]},{"code":"640521","name":"中宁县","children":[{"code":"640521100","name":"宁安镇"},{"code":"640521101","name":"鸣沙镇"},{"code":"640521102","name":"石空镇"},{"code":"640521103","name":"新堡镇"},{"code":"640521104","name":"恩和镇"},{"code":"640521105","name":"大战场镇"},{"code":"640521200","name":"舟塔乡"},{"code":"640521201","name":"白马乡"},{"code":"640521202","name":"余丁乡"},{"code":"640521204","name":"喊叫水乡"},{"code":"640521205","name":"徐套乡"},{"code":"640521206","name":"太阳梁乡"}]},{"code":"640522","name":"海原县","children":[{"code":"640522100","name":"海城镇"},{"code":"640522101","name":"李旺镇"},{"code":"640522103","name":"西安镇"},{"code":"640522104","name":"三河镇"},{"code":"640522105","name":"七营镇"},{"code":"640522200","name":"史店乡"},{"code":"640522201","name":"树台乡"},{"code":"640522202","name":"关桥乡"},{"code":"640522206","name":"高崖乡"},{"code":"640522207","name":"郑旗乡"},{"code":"640522208","name":"贾塘乡"},{"code":"640522209","name":"曹洼乡"},{"code":"640522210","name":"九彩乡"},{"code":"640522211","name":"李俊乡"},{"code":"640522212","name":"红羊乡"},{"code":"640522213","name":"关庄乡"},{"code":"640522214","name":"甘城乡"},{"code":"640522400","name":"种羊场"},{"code":"640522401","name":"南华山自然保护区管理处"},{"code":"640522402","name":"老城管理办公室"},{"code":"640522406","name":"海兴开发区"}]}]}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市","children":[{"code":"650102","name":"天山区","children":[{"code":"650102002","name":"燕儿窝街道"},{"code":"650102003","name":"胜利路街道"},{"code":"650102004","name":"团结路街道"},{"code":"650102005","name":"解放南路街道"},{"code":"650102006","name":"新华南路街道"},{"code":"650102007","name":"和平路街道"},{"code":"650102008","name":"解放北路街道"},{"code":"650102009","name":"幸福路街道"},{"code":"650102010","name":"东门街道"},{"code":"650102011","name":"新华北路街道"},{"code":"650102012","name":"青年路街道"},{"code":"650102013","name":"碱泉街道"},{"code":"650102014","name":"延安路街道"},{"code":"650102015","name":"红雁街道"},{"code":"650102016","name":"南草滩街道"},{"code":"650102017","name":"东泉路街道"},{"code":"650102400","name":"二道桥片区"},{"code":"650102401","name":"黑甲山片区"},{"code":"650102402","name":"大湾片区"},{"code":"650102403","name":"赛马场片区"},{"code":"650102404","name":"南湾街片区"},{"code":"650102405","name":"大巴扎片区"}]},{"code":"650103","name":"沙依巴克区","children":[{"code":"650103001","name":"长江路街道"},{"code":"650103002","name":"和田街街道"},{"code":"650103003","name":"扬子江路街道"},{"code":"650103004","name":"友好南路街道"},{"code":"650103005","name":"友好北路街道"},{"code":"650103006","name":"八一街道"},{"code":"650103007","name":"炉院街街道"},{"code":"650103008","name":"西山街道"},{"code":"650103009","name":"雅玛里克山街道"},{"code":"650103010","name":"红庙子街道"},{"code":"650103011","name":"长胜东街道"},{"code":"650103012","name":"长胜西街道"},{"code":"650103013","name":"长胜南街道"},{"code":"650103014","name":"火车南站街道"},{"code":"650103015","name":"仓房沟片区街道"},{"code":"650103016","name":"环卫路街道"},{"code":"650103017","name":"骑马山街道"},{"code":"650103018","name":"平顶山街道"},{"code":"650103501","name":"兵团农十二师一零四团"},{"code":"650103502","name":"兵团十二师西山农场"}]},{"code":"650104","name":"新市区","children":[{"code":"650104001","name":"北京路街道"},{"code":"650104002","name":"二工街道"},{"code":"650104003","name":"三工街道"},{"code":"650104004","name":"石油新村街道"},{"code":"650104005","name":"迎宾路街道"},{"code":"650104006","name":"喀什东路街道"},{"code":"650104009","name":"八家户街道"},{"code":"650104010","name":"银川路街道"},{"code":"650104011","name":"南纬路街道"},{"code":"650104012","name":"杭州路街道"},{"code":"650104013","name":"鲤鱼山街道"},{"code":"650104014","name":"百园路街道"},{"code":"650104015","name":"正扬路街道"},{"code":"650104016","name":"机场街道"},{"code":"650104017","name":"友谊路街道"},{"code":"650104018","name":"高新街街道"},{"code":"650104019","name":"长春中路街道"},{"code":"650104100","name":"安宁渠镇"},{"code":"650104200","name":"二工乡"},{"code":"650104201","name":"地窝堡乡"},{"code":"650104202","name":"青格达湖乡"},{"code":"650104203","name":"六十户乡"},{"code":"650104402","name":"十二师养禽场街道"}]},{"code":"650105","name":"水磨沟区","children":[{"code":"650105001","name":"水磨沟街道"},{"code":"650105002","name":"六道湾街道"},{"code":"650105003","name":"苇湖梁街道"},{"code":"650105004","name":"八道湾街道"},{"code":"650105005","name":"新民路街道"},{"code":"650105006","name":"南湖南路街道"},{"code":"650105007","name":"南湖北路街道"},{"code":"650105008","name":"七道湾街道"},{"code":"650105010","name":"榆树沟街道"},{"code":"650105011","name":"石人子沟街道"},{"code":"650105012","name":"水塔山街道"},{"code":"650105013","name":"华光街街道"},{"code":"650105014","name":"龙盛街街道"},{"code":"650105015","name":"振安街街道"},{"code":"650105016","name":"河马泉街道"}]},{"code":"650106","name":"头屯河区","children":[{"code":"650106001","name":"钢城片区街道"},{"code":"650106002","name":"火车西站片区街道"},{"code":"650106003","name":"王家沟片区街道"},{"code":"650106004","name":"乌昌路片区街道"},{"code":"650106005","name":"北站西路片区街道"},{"code":"650106007","name":"中亚北路片区街道"},{"code":"650106008","name":"中亚南路片区街道"},{"code":"650106009","name":"嵩山街片区街道"},{"code":"650106010","name":"高铁片区街道"},{"code":"650106011","name":"白鸟湖片区街道"},{"code":"650106012","name":"西湖片区街道"},{"code":"650106013","name":"北站东路片区街道"},{"code":"650106014","name":"两河片区街道"},{"code":"650106015","name":"乌鲁木齐站片区街道"},{"code":"650106198","name":"区直辖村级区划"},{"code":"650106501","name":"兵团十二师三坪农场"},{"code":"650106502","name":"兵团十二师五一农场"},{"code":"650106503","name":"新疆兵团十二师头屯河农场"}]},{"code":"650107","name":"达坂城区","children":[{"code":"650107001","name":"艾维尔沟街道"},{"code":"650107004","name":"乌拉泊街道"},{"code":"650107006","name":"达坂城区盐湖街道"},{"code":"650107100","name":"达坂城镇"},{"code":"650107200","name":"东沟乡"},{"code":"650107201","name":"西沟乡"},{"code":"650107202","name":"阿克苏乡"},{"code":"650107400","name":"柴窝堡管委会"}]},{"code":"650109","name":"米东区","children":[{"code":"650109001","name":"石化街道"},{"code":"650109002","name":"地磅街道"},{"code":"650109003","name":"卡子湾街道"},{"code":"650109004","name":"古牧地东路街道"},{"code":"650109005","name":"古牧地西路街道"},{"code":"650109006","name":"南路街道"},{"code":"650109007","name":"永祥街街道"},{"code":"650109008","name":"盛达东路街道"},{"code":"650109100","name":"古牧地镇"},{"code":"650109101","name":"铁厂沟镇"},{"code":"650109102","name":"长山子镇"},{"code":"650109103","name":"羊毛工镇"},{"code":"650109104","name":"三道坝镇"},{"code":"650109200","name":"柏杨河乡"},{"code":"650109201","name":"芦草沟乡"},{"code":"650109500","name":"兵团梧桐镇分部"}]},{"code":"650121","name":"乌鲁木齐县","children":[{"code":"650121001","name":"清水泉片区管委会街道"},{"code":"650121002","name":"谢家沟片区管委会街道"},{"code":"650121100","name":"水西沟镇"},{"code":"650121102","name":"板房沟镇"},{"code":"650121103","name":"永丰镇"},{"code":"650121207","name":"萨尔达坂乡"},{"code":"650121208","name":"甘沟乡"},{"code":"650121213","name":"托里乡"}]}]},{"code":"6502","name":"克拉玛依市","children":[{"code":"650202","name":"独山子区","children":[{"code":"650202001","name":"金山路街道"},{"code":"650202002","name":"西宁路街道"},{"code":"650202003","name":"新北区街道"}]},{"code":"650203","name":"克拉玛依区","children":[{"code":"650203001","name":"天山路街道"},{"code":"650203002","name":"胜利路街道"},{"code":"650203003","name":"昆仑路街道"},{"code":"650203004","name":"银河路街道"},{"code":"650203006","name":"五五新镇街道"},{"code":"650203007","name":"迎宾街道"},{"code":"650203008","name":"古海街道"},{"code":"650203200","name":"小拐乡"},{"code":"650203506","name":"兵团一二九团分部"},{"code":"650203530","name":"兵团一三六团"}]},{"code":"650204","name":"白碱滩区","children":[{"code":"650204001","name":"中兴路街道"},{"code":"650204002","name":"三平路街道"},{"code":"650204003","name":"金龙镇街道"}]},{"code":"650205","name":"乌尔禾区","children":[{"code":"650205001","name":"柳树街街道"},{"code":"650205100","name":"乌尔禾镇"},{"code":"650205509","name":"兵团一三七团乡"}]}]},{"code":"6504","name":"吐鲁番市","children":[{"code":"650402","name":"高昌区","children":[{"code":"650402001","name":"老城路街道"},{"code":"650402002","name":"高昌路街道"},{"code":"650402003","name":"葡萄沟街道"},{"code":"650402004","name":"红柳河街道"},{"code":"650402100","name":"七泉湖镇"},{"code":"650402101","name":"大河沿镇"},{"code":"650402102","name":"亚尔镇"},{"code":"650402103","name":"艾丁湖镇"},{"code":"650402104","name":"葡萄镇"},{"code":"650402105","name":"火焰山镇"},{"code":"650402203","name":"恰特喀勒乡"},{"code":"650402205","name":"三堡乡"},{"code":"650402206","name":"胜金乡"},{"code":"650402401","name":"原种场"},{"code":"650402502","name":"兵团二二一团"}]},{"code":"650421","name":"鄯善县","children":[{"code":"650421100","name":"鄯善镇"},{"code":"650421101","name":"七克台镇"},{"code":"650421102","name":"火车站镇"},{"code":"650421103","name":"连木沁镇"},{"code":"650421104","name":"鲁克沁镇"},{"code":"650421105","name":"辟展镇"},{"code":"650421106","name":"迪坎镇"},{"code":"650421201","name":"东巴扎回族乡"},{"code":"650421202","name":"吐峪沟乡"},{"code":"650421203","name":"达朗坎乡"},{"code":"650421400","name":"南山矿区"},{"code":"650421401","name":"园艺场"}]},{"code":"650422","name":"托克逊县","children":[{"code":"650422100","name":"托克逊镇"},{"code":"650422101","name":"库米什镇"},{"code":"650422102","name":"克尔碱镇"},{"code":"650422103","name":"阿乐惠镇"},{"code":"650422104","name":"伊拉湖镇"},{"code":"650422105","name":"夏镇"},{"code":"650422106","name":"博斯坦镇"},{"code":"650422201","name":"郭勒布依乡"}]}]},{"code":"6505","name":"哈密市","children":[{"code":"650502","name":"伊州区","children":[{"code":"650502001","name":"东河街道"},{"code":"650502002","name":"西河街道"},{"code":"650502003","name":"城北街道"},{"code":"650502004","name":"丽园街道"},{"code":"650502005","name":"石油新城街道"},{"code":"650502100","name":"雅满苏镇"},{"code":"650502101","name":"七角井镇"},{"code":"650502102","name":"星星峡镇"},{"code":"650502103","name":"二堡镇"},{"code":"650502104","name":"陶家宫镇"},{"code":"650502105","name":"五堡镇"},{"code":"650502106","name":"三道岭镇"},{"code":"650502200","name":"沁城乡"},{"code":"650502201","name":"乌拉台哈萨克民族乡"},{"code":"650502202","name":"双井子乡"},{"code":"650502203","name":"大泉湾乡"},{"code":"650502205","name":"回城乡"},{"code":"650502206","name":"花园乡"},{"code":"650502207","name":"南湖乡"},{"code":"650502209","name":"德外里都如克哈萨克乡"},{"code":"650502210","name":"西山乡"},{"code":"650502211","name":"天山乡"},{"code":"650502212","name":"白石头乡"},{"code":"650502214","name":"柳树沟乡"},{"code":"650502404","name":"现代农业园区管理委员会"},{"code":"650502406","name":"哈密工业园区"},{"code":"650502407","name":"东郊开发区管理委员会"},{"code":"650502501","name":"兵团红星二场"},{"code":"650502502","name":"兵团红星四场"},{"code":"650502503","name":"兵团黄田农场"},{"code":"650502504","name":"兵团火箭农场"},{"code":"650502505","name":"兵团柳树泉农场"}]},{"code":"650521","name":"巴里坤哈萨克自治县","children":[{"code":"650521100","name":"巴里坤镇"},{"code":"650521101","name":"博尔羌吉镇"},{"code":"650521102","name":"大河镇"},{"code":"650521103","name":"奎苏镇"},{"code":"650521104","name":"三塘湖镇"},{"code":"650521200","name":"萨尔乔克乡"},{"code":"650521201","name":"海子沿乡"},{"code":"650521202","name":"下涝坝乡"},{"code":"650521205","name":"石人子乡"},{"code":"650521206","name":"花园乡"},{"code":"650521208","name":"大红柳峡乡"},{"code":"650521209","name":"八墙子乡"},{"code":"650521400","name":"良种繁育场"},{"code":"650521401","name":"黄土场开发区"},{"code":"650521402","name":"巴里坤县山南开发区"},{"code":"650521500","name":"兵团红山农场"}]},{"code":"650522","name":"伊吾县","children":[{"code":"650522100","name":"伊吾镇"},{"code":"650522101","name":"淖毛湖镇"},{"code":"650522102","name":"盐池镇"},{"code":"650522201","name":"苇子峡乡"},{"code":"650522202","name":"下马崖乡"},{"code":"650522204","name":"吐葫芦乡"},{"code":"650522205","name":"前山哈萨克民族乡"},{"code":"650522400","name":"伊吾县工业加工区"},{"code":"650522403","name":"伊吾县山南开发区管委会"},{"code":"650522500","name":"兵团淖毛湖农场"}]}]},{"code":"6523","name":"昌吉回族自治州","children":[{"code":"652301","name":"昌吉市","children":[{"code":"652301001","name":"宁边路街道"},{"code":"652301002","name":"延安北路街道"},{"code":"652301003","name":"北京南路街道"},{"code":"652301004","name":"建国路街道"},{"code":"652301005","name":"中山路街道"},{"code":"652301006","name":"绿洲路街道"},{"code":"652301100","name":"硫磺沟镇"},{"code":"652301101","name":"三工镇"},{"code":"652301102","name":"榆树沟镇"},{"code":"652301103","name":"二六工镇"},{"code":"652301104","name":"大西渠镇"},{"code":"652301105","name":"六工镇"},{"code":"652301106","name":"滨湖镇"},{"code":"652301107","name":"佃坝镇"},{"code":"652301202","name":"阿什里哈萨克民族乡"},{"code":"652301203","name":"庙尔沟乡"},{"code":"652301400","name":"新疆昌吉国家农业科技园区管理委员会"},{"code":"652301401","name":"昌吉市北部荒漠生态保护管理站"},{"code":"652301402","name":"昌吉国家高新技术产业开发区"},{"code":"652301500","name":"兵团蔡家湖镇分部"},{"code":"652301503","name":"兵团共青团农场"},{"code":"652301504","name":"兵团军户农场"}]},{"code":"652302","name":"阜康市","children":[{"code":"652302001","name":"博峰街道"},{"code":"652302002","name":"阜新街道"},{"code":"652302003","name":"准东街道"},{"code":"652302100","name":"甘河子镇"},{"code":"652302101","name":"城关镇"},{"code":"652302102","name":"九运街镇"},{"code":"652302103","name":"滋泥泉子镇"},{"code":"652302201","name":"上户沟哈萨克民族乡"},{"code":"652302202","name":"水磨沟乡"},{"code":"652302203","name":"三工河哈萨克民族乡"},{"code":"652302503","name":"兵团农六师土墩子农场"},{"code":"652302504","name":"兵团六运湖农场"},{"code":"652302505","name":"兵团二二二团农场"}]},{"code":"652323","name":"呼图壁县","children":[{"code":"652323100","name":"呼图壁镇"},{"code":"652323101","name":"大丰镇"},{"code":"652323102","name":"雀尔沟镇"},{"code":"652323103","name":"二十里店镇"},{"code":"652323104","name":"园户村镇"},{"code":"652323105","name":"五工台镇"},{"code":"652323201","name":"石梯子哈萨克民族乡"},{"code":"652323402","name":"国有林管理中心"},{"code":"652323405","name":"呼图壁种牛场"},{"code":"652323520","name":"兵团一零五团"},{"code":"652323521","name":"兵团一零六团"},{"code":"652323523","name":"兵团芳草湖总场"}]},{"code":"652324","name":"玛纳斯县","children":[{"code":"652324100","name":"玛纳斯镇"},{"code":"652324101","name":"乐土驿镇"},{"code":"652324102","name":"包家店镇"},{"code":"652324103","name":"凉州户镇"},{"code":"652324104","name":"北五岔镇"},{"code":"652324105","name":"六户地镇"},{"code":"652324106","name":"兰州湾镇"},{"code":"652324201","name":"广东地乡"},{"code":"652324202","name":"清水河子哈萨克民族乡"},{"code":"652324203","name":"塔西河乡"},{"code":"652324204","name":"旱卡子滩乡"},{"code":"652324400","name":"玛电工业区"},{"code":"652324402","name":"自治区林业厅玛纳斯平原林场"},{"code":"652324404","name":"新疆农业科学院玛纳斯县试验站"},{"code":"652324520","name":"兵团农六师新湖农场"},{"code":"652324521","name":"兵团一四七团"},{"code":"652324522","name":"兵团一四八团"},{"code":"652324523","name":"兵团一四九团"},{"code":"652324524","name":"兵团一五零团"}]},{"code":"652325","name":"奇台县","children":[{"code":"652325100","name":"奇台镇"},{"code":"652325101","name":"老奇台镇"},{"code":"652325102","name":"半截沟镇"},{"code":"652325103","name":"吉布库镇"},{"code":"652325104","name":"东湾镇"},{"code":"652325105","name":"西地镇"},{"code":"652325106","name":"碧流河镇"},{"code":"652325107","name":"三个庄子镇"},{"code":"652325108","name":"西北湾镇"},{"code":"652325202","name":"坎尔孜乡"},{"code":"652325203","name":"五马场乡"},{"code":"652325204","name":"古城乡"},{"code":"652325205","name":"乔仁乡"},{"code":"652325206","name":"七户乡"},{"code":"652325208","name":"塔塔尔乡"},{"code":"652325503","name":"兵团奇台农场"},{"code":"652325504","name":"兵团农六师北塔山牧场"}]},{"code":"652327","name":"吉木萨尔县","children":[{"code":"652327100","name":"吉木萨尔镇"},{"code":"652327101","name":"三台镇"},{"code":"652327102","name":"泉子街镇"},{"code":"652327103","name":"北庭镇"},{"code":"652327104","name":"二工镇"},{"code":"652327105","name":"大有镇"},{"code":"652327202","name":"庆阳湖乡"},{"code":"652327203","name":"老台乡"},{"code":"652327205","name":"新地乡"},{"code":"652327400","name":"五彩湾工业园区"},{"code":"652327500","name":"兵团农六师红旗农场"}]},{"code":"652328","name":"木垒哈萨克自治县","children":[{"code":"652328100","name":"木垒镇"},{"code":"652328101","name":"西吉尔镇"},{"code":"652328102","name":"东城镇"},{"code":"652328103","name":"新户镇"},{"code":"652328200","name":"英格堡乡"},{"code":"652328201","name":"照壁山乡"},{"code":"652328203","name":"雀仁乡"},{"code":"652328204","name":"白杨河乡"},{"code":"652328205","name":"大石头乡"},{"code":"652328206","name":"大南沟乌孜别克乡"},{"code":"652328207","name":"博斯坦乡"}]}]},{"code":"6527","name":"博尔塔拉蒙古自治州","children":[{"code":"652701","name":"博乐市","children":[{"code":"652701001","name":"青得里街道"},{"code":"652701002","name":"顾力木图街道"},{"code":"652701004","name":"南城区街道"},{"code":"652701005","name":"青达拉街道"},{"code":"652701006","name":"克尔根卓街道"},{"code":"652701100","name":"小营盘镇"},{"code":"652701101","name":"达勒特镇"},{"code":"652701102","name":"乌图布拉格镇"},{"code":"652701103","name":"青得里镇"},{"code":"652701201","name":"贝林哈日莫墩乡"},{"code":"652701400","name":"阿热勒托海牧场"},{"code":"652701408","name":"五台工业园区"},{"code":"652701504","name":"兵团八十六团分部"}]},{"code":"652702","name":"阿拉山口市","children":[{"code":"652702001","name":"阿拉套街道"},{"code":"652702100","name":"艾比湖镇"}]},{"code":"652722","name":"精河县","children":[{"code":"652722100","name":"精河镇"},{"code":"652722101","name":"大河沿子镇"},{"code":"652722102","name":"托里镇"},{"code":"652722103","name":"托托镇"},{"code":"652722200","name":"茫丁乡"},{"code":"652722400","name":"阿合其农场"},{"code":"652722401","name":"八家户农场"},{"code":"652722402","name":"精河工业园区"},{"code":"652722503","name":"兵团八十三团"},{"code":"652722504","name":"兵团九十一团"}]},{"code":"652723","name":"温泉县","children":[{"code":"652723100","name":"博格达尔镇"},{"code":"652723101","name":"哈日布呼镇"},{"code":"652723102","name":"安格里格镇"},{"code":"652723201","name":"查干屯格乡"},{"code":"652723202","name":"扎勒木特乡"},{"code":"652723203","name":"塔秀乡"},{"code":"652723400","name":"呼和托哈种畜场"},{"code":"652723401","name":"昆得仑牧场"},{"code":"652723502","name":"兵团八十七团"},{"code":"652723503","name":"兵团八十八团"}]}]},{"code":"6528","name":"巴音郭楞蒙古自治州","children":[{"code":"652801","name":"库尔勒市","children":[{"code":"652801001","name":"团结街道"},{"code":"652801002","name":"萨依巴格街道"},{"code":"652801003","name":"天山街道"},{"code":"652801004","name":"新城街道"},{"code":"652801005","name":"建设街道"},{"code":"652801006","name":"朝阳街道"},{"code":"652801007","name":"梨香街道"},{"code":"652801100","name":"塔什店镇"},{"code":"652801101","name":"上户镇"},{"code":"652801102","name":"库尔勒市西尼尔镇"},{"code":"652801200","name":"铁克其乡"},{"code":"652801201","name":"恰尔巴格乡"},{"code":"652801202","name":"英下乡"},{"code":"652801203","name":"库尔勒市兰干乡"},{"code":"652801204","name":"和什力克乡"},{"code":"652801205","name":"哈拉玉宫乡"},{"code":"652801206","name":"阿瓦提乡"},{"code":"652801207","name":"库尔勒市托布力其乡"},{"code":"652801208","name":"普惠乡"},{"code":"652801400","name":"库尔楚园艺场"},{"code":"652801401","name":"包头湖农场"},{"code":"652801402","name":"普惠农场"},{"code":"652801403","name":"巴州阿瓦提农场"},{"code":"652801404","name":"巴州沙依东园艺场"},{"code":"652801408","name":"巴州奶牛场"},{"code":"652801409","name":"普惠牧场"},{"code":"652801410","name":"经济牧场"},{"code":"652801411","name":"良种场"}]},{"code":"652822","name":"轮台县","children":[{"code":"652822100","name":"轮台镇"},{"code":"652822101","name":"轮南镇"},{"code":"652822102","name":"群巴克镇"},{"code":"652822103","name":"阳霞镇"},{"code":"652822201","name":"哈尔巴克乡"},{"code":"652822202","name":"野云沟乡"},{"code":"652822203","name":"阿克萨来乡"},{"code":"652822204","name":"塔尔拉克乡"},{"code":"652822205","name":"草湖乡"},{"code":"652822206","name":"铁热克巴扎乡"},{"code":"652822207","name":"策达雅乡"}]},{"code":"652823","name":"尉犁县","children":[{"code":"652823100","name":"尉犁镇"},{"code":"652823110","name":"团结镇"},{"code":"652823120","name":"兴平镇"},{"code":"652823200","name":"塔里木乡"},{"code":"652823203","name":"墩阔坦乡"},{"code":"652823204","name":"喀尔曲尕乡"},{"code":"652823205","name":"阿克苏普乡"},{"code":"652823206","name":"古勒巴格乡"},{"code":"652823501","name":"兵团三十一团"},{"code":"652823502","name":"兵团三十三团"},{"code":"652823503","name":"兵团三十四团"}]},{"code":"652824","name":"若羌县","children":[{"code":"652824100","name":"若羌镇"},{"code":"652824101","name":"依吞布拉克镇"},{"code":"652824102","name":"罗布泊镇"},{"code":"652824103","name":"瓦石峡镇"},{"code":"652824104","name":"铁干里克镇"},{"code":"652824201","name":"吾塔木乡"},{"code":"652824203","name":"铁木里克乡"},{"code":"652824204","name":"祁曼塔克乡"}]},{"code":"652825","name":"且末县","children":[{"code":"652825100","name":"且末镇"},{"code":"652825101","name":"奥依亚依拉克镇"},{"code":"652825102","name":"塔提让镇"},{"code":"652825103","name":"塔中镇"},{"code":"652825104","name":"阿羌镇"},{"code":"652825105","name":"阿热勒镇"},{"code":"652825201","name":"琼库勒乡"},{"code":"652825202","name":"托格拉克勒克乡"},{"code":"652825203","name":"巴格艾日克乡"},{"code":"652825204","name":"英吾斯塘乡"},{"code":"652825205","name":"阿克提坎墩乡"},{"code":"652825206","name":"阔什萨特玛乡"},{"code":"652825209","name":"库拉木勒克乡"}]},{"code":"652826","name":"焉耆回族自治县","children":[{"code":"652826100","name":"焉耆镇"},{"code":"652826101","name":"七个星镇"},{"code":"652826102","name":"永宁镇"},{"code":"652826103","name":"四十里城子镇"},{"code":"652826200","name":"北大渠乡"},{"code":"652826201","name":"五号渠乡"},{"code":"652826203","name":"查汗采开乡"},{"code":"652826204","name":"包尔海乡"},{"code":"652826400","name":"王家庄牧场"},{"code":"652826401","name":"苏海良种场"}]},{"code":"652827","name":"和静县","children":[{"code":"652827100","name":"和静镇"},{"code":"652827101","name":"巴伦台镇"},{"code":"652827102","name":"巴润哈尔莫敦镇"},{"code":"652827103","name":"哈尔莫敦镇"},{"code":"652827104","name":"巴音布鲁克镇"},{"code":"652827105","name":"巩乃斯镇"},{"code":"652827106","name":"乃门莫敦镇"},{"code":"652827107","name":"协比乃尔布呼镇"},{"code":"652827203","name":"克尔古提乡"},{"code":"652827204","name":"阿拉沟乡"},{"code":"652827205","name":"额勒再特乌鲁乡"},{"code":"652827206","name":"巴音郭楞乡"},{"code":"652827501","name":"兵团二十一团"}]},{"code":"652828","name":"和硕县","children":[{"code":"652828100","name":"特吾里克镇"},{"code":"652828101","name":"塔哈其镇"},{"code":"652828102","name":"曲惠镇"},{"code":"652828200","name":"乌什塔拉回族民族乡"},{"code":"652828203","name":"苏哈特乡"},{"code":"652828204","name":"乃仁克尔乡"},{"code":"652828205","name":"新塔热乡"},{"code":"652828400","name":"清水河农场"},{"code":"652828402","name":"和硕县马兰公安管区"}]},{"code":"652829","name":"博湖县","children":[{"code":"652829100","name":"博湖镇"},{"code":"652829101","name":"本布图镇"},{"code":"652829200","name":"塔温觉肯乡"},{"code":"652829202","name":"乌兰再格森乡"},{"code":"652829203","name":"才坎诺尔乡"},{"code":"652829204","name":"查干诺尔乡"},{"code":"652829205","name":"博斯腾湖乡"},{"code":"652829501","name":"兵团二十五团"}]},{"code":"652871","name":"库尔勒经济技术开发区","children":[{"code":"652871400","name":"开发区乡级单位"}]}]},{"code":"6529","name":"阿克苏地区","children":[{"code":"652901","name":"阿克苏市","children":[{"code":"652901001","name":"兰干街道"},{"code":"652901002","name":"英巴扎街道"},{"code":"652901003","name":"红桥街道"},{"code":"652901004","name":"新城街道"},{"code":"652901005","name":"南城街道"},{"code":"652901006","name":"柯柯牙街道"},{"code":"652901007","name":"多浪街道"},{"code":"652901100","name":"喀拉塔勒镇"},{"code":"652901101","name":"阿依库勒镇"},{"code":"652901200","name":"依干其乡"},{"code":"652901201","name":"拜什吐格曼乡"},{"code":"652901202","name":"托普鲁克乡"},{"code":"652901203","name":"库木巴什乡"},{"code":"652901404","name":"实验林场"},{"code":"652901407","name":"纺织工业城"},{"code":"652901408","name":"经济技术开发区"},{"code":"652901409","name":"特色产业园区"},{"code":"652901410","name":"柳源农场"}]},{"code":"652902","name":"库车市","children":[{"code":"652902001","name":"热斯坦街道"},{"code":"652902002","name":"萨克萨克街道"},{"code":"652902003","name":"新城街道"},{"code":"652902004","name":"东城街道"},{"code":"652902101","name":"乌恰镇"},{"code":"652902102","name":"阿拉哈格镇"},{"code":"652902103","name":"齐满镇"},{"code":"652902104","name":"墩阔坦镇"},{"code":"652902105","name":"牙哈镇"},{"code":"652902106","name":"乌尊镇"},{"code":"652902107","name":"伊西哈拉镇"},{"code":"652902108","name":"二八台镇"},{"code":"652902201","name":"玉奇吾斯塘乡"},{"code":"652902202","name":"比西巴格乡"},{"code":"652902203","name":"哈尼喀塔木乡"},{"code":"652902204","name":"阿克吾斯塘乡"},{"code":"652902205","name":"阿格乡"},{"code":"652902206","name":"塔里木乡"},{"code":"652902500","name":"库车经济技术开发区"}]},{"code":"652922","name":"温宿县","children":[{"code":"652922100","name":"温宿镇"},{"code":"652922101","name":"吐木秀克镇"},{"code":"652922102","name":"克孜勒镇"},{"code":"652922103","name":"阿热勒镇"},{"code":"652922104","name":"佳木镇"},{"code":"652922105","name":"托甫汗镇"},{"code":"652922106","name":"共青团镇"},{"code":"652922107","name":"柯柯牙镇"},{"code":"652922200","name":"托乎拉乡"},{"code":"652922202","name":"恰格拉克乡"},{"code":"652922204","name":"依希来木其乡"},{"code":"652922206","name":"古勒阿瓦提乡"},{"code":"652922207","name":"博孜墩柯尔克孜族乡"}]},{"code":"652924","name":"沙雅县","children":[{"code":"652924100","name":"沙雅镇"},{"code":"652924101","name":"托依堡勒迪镇"},{"code":"652924102","name":"红旗镇"},{"code":"652924103","name":"英买力镇"},{"code":"652924104","name":"沙雅县哈德墩镇"},{"code":"652924105","name":"古勒巴格镇"},{"code":"652924106","name":"海楼镇"},{"code":"652924205","name":"努尔巴格乡"},{"code":"652924206","name":"塔里木乡"},{"code":"652924207","name":"盖孜库木乡"},{"code":"652924208","name":"央塔克协海尔乡"},{"code":"652924402","name":"沙雅县塔河管理委员会"}]},{"code":"652925","name":"新和县","children":[{"code":"652925100","name":"新和镇"},{"code":"652925101","name":"尤鲁都斯巴格镇"},{"code":"652925102","name":"依其艾日克镇"},{"code":"652925103","name":"塔什艾日克镇"},{"code":"652925201","name":"排先拜巴扎乡"},{"code":"652925203","name":"渭干乡"},{"code":"652925204","name":"玉奇喀特乡"},{"code":"652925205","name":"塔木托格拉克乡"},{"code":"652925402","name":"央塔库都片区管委会"},{"code":"652925500","name":"新和县轻工业园区生活区"},{"code":"652925502","name":"新和县物流园区生活区"},{"code":"652925503","name":"新和县新材料园区生活区"}]},{"code":"652926","name":"拜城县","children":[{"code":"652926100","name":"拜城镇"},{"code":"652926101","name":"铁热克镇"},{"code":"652926102","name":"察尔齐镇"},{"code":"652926103","name":"赛里木镇"},{"code":"652926200","name":"黑英山乡"},{"code":"652926201","name":"克孜尔乡"},{"code":"652926203","name":"托克逊乡"},{"code":"652926204","name":"亚吐尔乡"},{"code":"652926205","name":"康其乡"},{"code":"652926206","name":"布隆乡"},{"code":"652926207","name":"米吉克乡"},{"code":"652926208","name":"温巴什乡"},{"code":"652926209","name":"大桥乡"},{"code":"652926210","name":"老虎台乡"},{"code":"652926400","name":"大宛其管理委员会"}]},{"code":"652927","name":"乌什县","children":[{"code":"652927100","name":"乌什镇"},{"code":"652927101","name":"阿合雅镇"},{"code":"652927102","name":"依麻木镇"},{"code":"652927200","name":"阿克托海乡"},{"code":"652927201","name":"亚科瑞克乡"},{"code":"652927202","name":"阿恰塔格乡"},{"code":"652927205","name":"英阿瓦提乡"},{"code":"652927206","name":"亚曼苏柯尔克孜族乡"},{"code":"652927207","name":"奥特贝希乡"}]},{"code":"652928","name":"阿瓦提县","children":[{"code":"652928100","name":"阿瓦提镇"},{"code":"652928101","name":"乌鲁却勒镇"},{"code":"652928102","name":"拜什艾日克镇"},{"code":"652928103","name":"塔木托格拉克镇"},{"code":"652928104","name":"英艾日克镇"},{"code":"652928105","name":"阿依巴格镇"},{"code":"652928106","name":"三河镇"},{"code":"652928203","name":"多浪乡"},{"code":"652928204","name":"巴格托格拉克乡"},{"code":"652928405","name":"阿克苏监狱"}]},{"code":"652929","name":"柯坪县","children":[{"code":"652929100","name":"柯坪镇"},{"code":"652929101","name":"盖孜力克镇"},{"code":"652929102","name":"阿恰勒镇"},{"code":"652929201","name":"玉尔其乡"},{"code":"652929203","name":"启浪乡"}]}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","children":[{"code":"653001","name":"阿图什市","children":[{"code":"653001001","name":"幸福路街道"},{"code":"653001002","name":"光明路街道"},{"code":"653001003","name":"新城街道"},{"code":"653001100","name":"上阿图什镇"},{"code":"653001200","name":"松他克乡"},{"code":"653001201","name":"阿扎克乡"},{"code":"653001202","name":"阿湖乡"},{"code":"653001204","name":"格达良乡"},{"code":"653001205","name":"哈拉峻乡"},{"code":"653001206","name":"吐古买提乡"},{"code":"653001500","name":"兵团农三师红旗农场"}]},{"code":"653022","name":"阿克陶县","children":[{"code":"653022100","name":"阿克陶镇"},{"code":"653022101","name":"奥依塔克镇"},{"code":"653022102","name":"克孜勒陶镇"},{"code":"653022103","name":"恰尔隆镇"},{"code":"653022200","name":"玉麦乡"},{"code":"653022201","name":"皮拉勒乡"},{"code":"653022202","name":"巴仁乡"},{"code":"653022203","name":"喀热开其克乡"},{"code":"653022204","name":"加马铁热克乡"},{"code":"653022205","name":"木吉乡"},{"code":"653022206","name":"布伦口乡"},{"code":"653022210","name":"塔尔塔吉克民族乡"},{"code":"653022400","name":"托尔塔依农场"},{"code":"653022401","name":"阿克达拉牧场"},{"code":"653022402","name":"原种场"},{"code":"653022403","name":"克孜勒苏柯尔克孜自治州林场"},{"code":"653022404","name":"苗圃"}]},{"code":"653023","name":"阿合奇县","children":[{"code":"653023100","name":"阿合奇镇"},{"code":"653023200","name":"库兰萨日克乡"},{"code":"653023201","name":"色帕巴依乡"},{"code":"653023202","name":"苏木塔什乡"},{"code":"653023203","name":"哈拉奇乡"},{"code":"653023204","name":"哈拉布拉克乡"}]},{"code":"653024","name":"乌恰县","children":[{"code":"653024100","name":"乌恰镇"},{"code":"653024101","name":"康苏镇"},{"code":"653024102","name":"巴音库鲁提镇"},{"code":"653024200","name":"乌鲁克恰提乡"},{"code":"653024201","name":"吾合沙鲁乡"},{"code":"653024202","name":"膘尔托阔依乡"},{"code":"653024203","name":"黑孜苇乡"},{"code":"653024204","name":"托云乡"},{"code":"653024205","name":"铁列克乡"},{"code":"653024207","name":"波斯坦铁列克乡"},{"code":"653024208","name":"吉根乡"},{"code":"653024501","name":"兵团托云牧场"}]}]},{"code":"6531","name":"喀什地区","children":[{"code":"653101","name":"喀什市","children":[{"code":"653101001","name":"恰萨街道"},{"code":"653101002","name":"亚瓦格街道"},{"code":"653101003","name":"吾斯塘博依街道"},{"code":"653101004","name":"库木代尔瓦扎街道"},{"code":"653101005","name":"西域大道街道"},{"code":"653101006","name":"东湖街道"},{"code":"653101007","name":"迎宾大道街道"},{"code":"653101008","name":"西公园街道"},{"code":"653101100","name":"乃则尔巴格镇"},{"code":"653101101","name":"夏马勒巴格镇"},{"code":"653101202","name":"多来特巴格乡"},{"code":"653101203","name":"浩罕乡"},{"code":"653101204","name":"色满乡"},{"code":"653101205","name":"荒地乡"},{"code":"653101206","name":"帕哈太克里乡"},{"code":"653101207","name":"伯什克然木乡"},{"code":"653101208","name":"阿瓦提乡"},{"code":"653101209","name":"英吾斯坦乡"},{"code":"653101210","name":"阿克喀什乡"}]},{"code":"653121","name":"疏附县","children":[{"code":"653121100","name":"托克扎克镇"},{"code":"653121101","name":"兰干镇"},{"code":"653121102","name":"吾库萨克镇"},{"code":"653121103","name":"乌帕尔镇"},{"code":"653121201","name":"塔什米里克乡"},{"code":"653121202","name":"铁日木乡"},{"code":"653121203","name":"布拉克苏乡"},{"code":"653121204","name":"萨依巴格乡"},{"code":"653121205","name":"站敏乡"},{"code":"653121211","name":"木什乡"},{"code":"653121400","name":"县种畜场"},{"code":"653121401","name":"县园艺场"},{"code":"653121402","name":"县林场"},{"code":"653121403","name":"县良种场"},{"code":"653121406","name":"疏附广州工业城"}]},{"code":"653122","name":"疏勒县","children":[{"code":"653122100","name":"疏勒镇"},{"code":"653122101","name":"罕南力克镇"},{"code":"653122102","name":"牙甫泉镇"},{"code":"653122200","name":"巴仁乡"},{"code":"653122201","name":"洋大曼乡"},{"code":"653122202","name":"亚曼牙乡"},{"code":"653122203","name":"巴合齐乡"},{"code":"653122204","name":"塔孜洪乡"},{"code":"653122205","name":"英尔力克乡"},{"code":"653122206","name":"库木西力克乡"},{"code":"653122207","name":"塔尕尔其乡"},{"code":"653122208","name":"艾尔木东乡"},{"code":"653122209","name":"阿拉力乡"},{"code":"653122210","name":"阿拉甫乡"},{"code":"653122211","name":"英阿瓦提乡"},{"code":"653122400","name":"高新技术产业孵化园区管委会"}]},{"code":"653123","name":"英吉沙县","children":[{"code":"653123100","name":"英吉沙镇"},{"code":"653123101","name":"乌恰镇"},{"code":"653123102","name":"芒辛镇"},{"code":"653123103","name":"萨罕镇"},{"code":"653123200","name":"城关乡"},{"code":"653123201","name":"乔勒潘乡"},{"code":"653123202","name":"龙甫乡"},{"code":"653123204","name":"色提力乡"},{"code":"653123206","name":"英也尔乡"},{"code":"653123207","name":"克孜勒乡"},{"code":"653123208","name":"托普鲁克乡"},{"code":"653123209","name":"苏盖提乡"},{"code":"653123211","name":"艾古斯乡"},{"code":"653123212","name":"依格孜也尔乡"},{"code":"653123401","name":"英吉沙工业园区"},{"code":"653123500","name":"兵团东风农场"}]},{"code":"653124","name":"泽普县","children":[{"code":"653124100","name":"泽普镇"},{"code":"653124101","name":"奎依巴格镇"},{"code":"653124200","name":"波斯喀木乡"},{"code":"653124201","name":"泽普县依玛乡"},{"code":"653124202","name":"古勒巴格乡"},{"code":"653124203","name":"赛力乡"},{"code":"653124204","name":"依肯苏乡"},{"code":"653124205","name":"图呼其乡"},{"code":"653124206","name":"奎依巴格乡"},{"code":"653124207","name":"阿克塔木乡"},{"code":"653124208","name":"阿依库勒乡"},{"code":"653124209","name":"布依鲁克塔吉克族乡"},{"code":"653124210","name":"桐安乡"},{"code":"653124401","name":"泽普县良种场"},{"code":"653124403","name":"国营林场"}]},{"code":"653125","name":"莎车县","children":[{"code":"653125001","name":"叶尓羌街道"},{"code":"653125002","name":"城中街道"},{"code":"653125003","name":"城东街道"},{"code":"653125004","name":"城西街道"},{"code":"653125005","name":"城北街道"},{"code":"653125100","name":"莎车镇"},{"code":"653125101","name":"恰热克镇"},{"code":"653125102","name":"艾力西湖镇"},{"code":"653125103","name":"荒地镇"},{"code":"653125104","name":"阿瓦提镇"},{"code":"653125105","name":"白什坎特镇"},{"code":"653125106","name":"依盖尔其镇"},{"code":"653125107","name":"古勒巴格镇"},{"code":"653125108","name":"米夏镇"},{"code":"653125109","name":"托木吾斯塘镇"},{"code":"653125110","name":"塔尕尔其镇"},{"code":"653125111","name":"乌达力克镇"},{"code":"653125112","name":"阿拉买提镇"},{"code":"653125113","name":"阿扎特巴格镇"},{"code":"653125201","name":"阿热勒乡"},{"code":"653125202","name":"恰尔巴格乡"},{"code":"653125204","name":"英吾斯塘乡"},{"code":"653125206","name":"阿尔斯兰巴格乡"},{"code":"653125207","name":"孜热甫夏提塔吉克族乡"},{"code":"653125208","name":"亚喀艾日克乡"},{"code":"653125209","name":"喀群乡"},{"code":"653125210","name":"霍什拉甫乡"},{"code":"653125211","name":"达木斯乡"},{"code":"653125213","name":"伊什库力乡"},{"code":"653125214","name":"拍克其乡"},{"code":"653125216","name":"阔什艾日克乡"},{"code":"653125217","name":"墩巴格乡"},{"code":"653125220","name":"巴格阿瓦提乡"},{"code":"653125221","name":"喀拉苏乡"},{"code":"653125401","name":"喀什监狱"},{"code":"653125402","name":"莎车县良种繁育场"},{"code":"653125403","name":"莎车县第一林场(国营苗圃)"},{"code":"653125404","name":"莎车县国营二林场"},{"code":"653125405","name":"莎车县园艺场"},{"code":"653125406","name":"莎车县蚕种场"},{"code":"653125407","name":"莎车县鱼苗场"},{"code":"653125408","name":"农科院莎车农业试验站"},{"code":"653125409","name":"工业园区管委会"},{"code":"653125410","name":"英阿瓦提管理委员会"},{"code":"653125411","name":"永安管理委员会"}]},{"code":"653126","name":"叶城县","children":[{"code":"653126100","name":"喀格勒克镇"},{"code":"653126101","name":"恰尔巴格镇"},{"code":"653126102","name":"乌夏巴什镇"},{"code":"653126103","name":"阿克塔什镇"},{"code":"653126200","name":"洛克乡"},{"code":"653126201","name":"伯西热克乡"},{"code":"653126202","name":"铁提乡"},{"code":"653126203","name":"恰萨美其特乡"},{"code":"653126204","name":"吐古其乡"},{"code":"653126205","name":"江格勒斯乡"},{"code":"653126206","name":"加依提勒克乡"},{"code":"653126207","name":"巴仁乡"},{"code":"653126208","name":"乌吉热克乡"},{"code":"653126209","name":"夏合甫乡"},{"code":"653126210","name":"依力克其乡"},{"code":"653126211","name":"依提木孔乡"},{"code":"653126212","name":"宗朗乡"},{"code":"653126213","name":"柯克亚乡"},{"code":"653126214","name":"西合休乡"},{"code":"653126215","name":"棋盘乡"},{"code":"653126216","name":"萨依巴格乡"},{"code":"653126402","name":"阿克塔什农场"},{"code":"653126403","name":"良种场"},{"code":"653126405","name":"林场"},{"code":"653126409","name":"叶城工业园区"},{"code":"653126500","name":"兵团叶城牧场"}]},{"code":"653127","name":"麦盖提县","children":[{"code":"653127100","name":"麦盖提镇"},{"code":"653127101","name":"巴扎结米镇"},{"code":"653127201","name":"希依提墩乡"},{"code":"653127202","name":"央塔克乡"},{"code":"653127203","name":"吐曼塔勒乡"},{"code":"653127204","name":"尕孜库勒乡"},{"code":"653127205","name":"克孜勒阿瓦提乡"},{"code":"653127206","name":"库木库萨尔乡"},{"code":"653127207","name":"昂格特勒克乡"},{"code":"653127208","name":"库尔玛乡"},{"code":"653127400","name":"胡杨林场"},{"code":"653127401","name":"园艺场"},{"code":"653127402","name":"五一林场"}]},{"code":"653128","name":"岳普湖县","children":[{"code":"653128100","name":"岳普湖镇"},{"code":"653128101","name":"艾西曼镇"},{"code":"653128102","name":"铁热木镇"},{"code":"653128103","name":"也克先拜巴扎镇"},{"code":"653128200","name":"岳普湖乡"},{"code":"653128203","name":"阿其克乡"},{"code":"653128204","name":"色也克乡"},{"code":"653128206","name":"巴依阿瓦提乡"},{"code":"653128207","name":"阿洪鲁库木乡"},{"code":"653128402","name":"岳普湖县奶牛场"}]},{"code":"653129","name":"伽师县","children":[{"code":"653129100","name":"巴仁镇"},{"code":"653129101","name":"西克尔库勒镇"},{"code":"653129102","name":"夏普吐勒镇"},{"code":"653129103","name":"卧里托格拉克镇"},{"code":"653129104","name":"克孜勒博依镇"},{"code":"653129107","name":"和夏阿瓦提镇"},{"code":"653129200","name":"铁日木乡"},{"code":"653129201","name":"英买里乡"},{"code":"653129202","name":"江巴孜乡"},{"code":"653129205","name":"米夏乡"},{"code":"653129208","name":"克孜勒苏乡"},{"code":"653129209","name":"古勒鲁克乡"},{"code":"653129210","name":"玉代克力克乡"}]},{"code":"653130","name":"巴楚县","children":[{"code":"653130100","name":"巴楚镇"},{"code":"653130101","name":"色力布亚镇"},{"code":"653130102","name":"阿瓦提镇"},{"code":"653130103","name":"三岔口镇"},{"code":"653130200","name":"恰尔巴格乡"},{"code":"653130201","name":"多来提巴格乡"},{"code":"653130202","name":"阿纳库勒乡"},{"code":"653130203","name":"夏马勒乡"},{"code":"653130204","name":"阿克萨克玛热勒乡"},{"code":"653130205","name":"阿拉根乡"},{"code":"653130206","name":"琼库恰克乡"},{"code":"653130207","name":"英吾斯坦乡"}]},{"code":"653131","name":"塔什库尔干塔吉克自治县","children":[{"code":"653131100","name":"塔什库尔干镇"},{"code":"653131101","name":"塔吉克阿巴提镇"},{"code":"653131200","name":"塔什库尔干乡"},{"code":"653131201","name":"塔合曼乡"},{"code":"653131202","name":"科克亚尔柯尔克孜族乡"},{"code":"653131203","name":"提孜那甫乡"},{"code":"653131204","name":"达布达尔乡"},{"code":"653131205","name":"马尔洋乡"},{"code":"653131206","name":"瓦恰乡"},{"code":"653131207","name":"班迪尔乡"},{"code":"653131208","name":"库科西鲁格乡"},{"code":"653131210","name":"大同乡"}]}]},{"code":"6532","name":"和田地区","children":[{"code":"653201","name":"和田市","children":[{"code":"653201001","name":"努尔巴格街道"},{"code":"653201002","name":"古江巴格街道"},{"code":"653201003","name":"古勒巴格街道"},{"code":"653201004","name":"纳尔巴格街道"},{"code":"653201100","name":"拉斯奎镇"},{"code":"653201101","name":"玉龙喀什镇"},{"code":"653201102","name":"吐沙拉镇"},{"code":"653201200","name":"肖尔巴格乡"},{"code":"653201201","name":"伊里其乡"},{"code":"653201202","name":"古江巴格乡"},{"code":"653201204","name":"吉亚乡"},{"code":"653201205","name":"阿克恰勒乡"},{"code":"653201401","name":"北京工业园区"},{"code":"653201402","name":"和田市京和物流园区"}]},{"code":"653221","name":"和田县","children":[{"code":"653221100","name":"巴格其镇"},{"code":"653221102","name":"罕艾日克镇"},{"code":"653221202","name":"英阿瓦提乡"},{"code":"653221203","name":"英艾日克乡"},{"code":"653221204","name":"布扎克乡"},{"code":"653221205","name":"拉依喀乡"},{"code":"653221206","name":"朗如乡"},{"code":"653221207","name":"塔瓦库勒乡"},{"code":"653221208","name":"伊斯拉木阿瓦提乡"},{"code":"653221209","name":"色格孜库勒乡"},{"code":"653221210","name":"喀什塔什乡"},{"code":"653221211","name":"吾宗肖乡"},{"code":"653221401","name":"和田县经济新区"}]},{"code":"653222","name":"墨玉县","children":[{"code":"653222100","name":"喀拉喀什镇"},{"code":"653222101","name":"扎瓦镇"},{"code":"653222102","name":"奎牙镇"},{"code":"653222103","name":"喀尔赛镇"},{"code":"653222104","name":"普恰克其镇"},{"code":"653222203","name":"阿克萨拉依乡"},{"code":"653222204","name":"乌尔其乡"},{"code":"653222205","name":"托胡拉乡"},{"code":"653222206","name":"萨依巴格乡"},{"code":"653222207","name":"加汗巴格乡"},{"code":"653222209","name":"芒来乡"},{"code":"653222210","name":"阔依其乡"},{"code":"653222211","name":"雅瓦乡"},{"code":"653222212","name":"吐外特乡"},{"code":"653222213","name":"英也尔乡"},{"code":"653222214","name":"喀瓦克乡"}]},{"code":"653223","name":"皮山县","children":[{"code":"653223001","name":"街道"},{"code":"653223100","name":"固玛镇"},{"code":"653223101","name":"杜瓦镇"},{"code":"653223102","name":"赛图拉镇"},{"code":"653223103","name":"木吉镇"},{"code":"653223104","name":"阔什塔格镇"},{"code":"653223105","name":"桑株镇"},{"code":"653223201","name":"克里阳乡"},{"code":"653223202","name":"科克铁热克乡"},{"code":"653223205","name":"乔达乡"},{"code":"653223206","name":"木奎拉乡"},{"code":"653223207","name":"藏桂乡"},{"code":"653223208","name":"皮亚勒玛乡"},{"code":"653223209","name":"皮西那乡"},{"code":"653223210","name":"巴什兰干乡"},{"code":"653223211","name":"垴阿巴提塔吉克民族乡"},{"code":"653223212","name":"康克尔柯尔克孜民族乡"},{"code":"653223401","name":"皮山三峡工业园区"}]},{"code":"653224","name":"洛浦县","children":[{"code":"653224001","name":"城区街道"},{"code":"653224100","name":"洛浦镇"},{"code":"653224101","name":"山普鲁镇"},{"code":"653224102","name":"杭桂镇"},{"code":"653224103","name":"恰尔巴格镇"},{"code":"653224201","name":"布亚乡"},{"code":"653224205","name":"多鲁乡"},{"code":"653224206","name":"纳瓦乡"},{"code":"653224207","name":"拜什托格拉克乡"},{"code":"653224208","name":"阿其克乡"},{"code":"653224403","name":"洛浦县北京工业园区"}]},{"code":"653225","name":"策勒县","children":[{"code":"653225100","name":"策勒镇"},{"code":"653225101","name":"固拉合玛镇"},{"code":"653225200","name":"策勒乡"},{"code":"653225202","name":"达玛沟乡"},{"code":"653225203","name":"恰哈乡"},{"code":"653225204","name":"乌鲁克萨依乡"},{"code":"653225205","name":"奴尔乡"},{"code":"653225206","name":"博斯坦乡"}]},{"code":"653226","name":"于田县","children":[{"code":"653226100","name":"木尕拉镇"},{"code":"653226101","name":"先拜巴扎镇"},{"code":"653226200","name":"加依乡"},{"code":"653226201","name":"科克亚乡"},{"code":"653226202","name":"阿热勒乡"},{"code":"653226203","name":"阿日希乡"},{"code":"653226204","name":"兰干乡"},{"code":"653226205","name":"斯也克乡"},{"code":"653226206","name":"托格日尕孜乡"},{"code":"653226207","name":"喀拉克尔乡"},{"code":"653226208","name":"奥依托格拉克乡"},{"code":"653226209","name":"阿羌乡"},{"code":"653226210","name":"英巴格乡"},{"code":"653226211","name":"希吾勒乡"},{"code":"653226212","name":"达里雅布依乡"},{"code":"653226402","name":"于田监狱"}]},{"code":"653227","name":"民丰县","children":[{"code":"653227100","name":"尼雅镇"},{"code":"653227200","name":"尼雅乡"},{"code":"653227201","name":"若克雅乡"},{"code":"653227202","name":"萨勒吾则克乡"},{"code":"653227203","name":"叶亦克乡"},{"code":"653227204","name":"安迪尔乡"},{"code":"653227205","name":"亚瓦通古孜乡"}]}]},{"code":"6540","name":"伊犁哈萨克自治州","children":[{"code":"654002","name":"伊宁市","children":[{"code":"654002001","name":"萨依布依街道"},{"code":"654002002","name":"墩买里街道"},{"code":"654002003","name":"伊犁河路街道"},{"code":"654002004","name":"喀赞其街道"},{"code":"654002005","name":"都来提巴格街道"},{"code":"654002006","name":"琼科瑞克街道"},{"code":"654002007","name":"艾兰木巴格街道"},{"code":"654002008","name":"解放路街道"},{"code":"654002100","name":"巴彦岱镇"},{"code":"654002101","name":"潘津镇"},{"code":"654002102","name":"英也尔镇"},{"code":"654002103","name":"达达木图镇"},{"code":"654002201","name":"汉宾乡"},{"code":"654002202","name":"塔什科瑞克乡"},{"code":"654002203","name":"喀尔墩乡"},{"code":"654002204","name":"托格拉克乡"},{"code":"654002205","name":"克伯克于孜乡"},{"code":"654002403","name":"伊宁市边境经济合作区"},{"code":"654002404","name":"伊犁河南岸新区"}]},{"code":"654003","name":"奎屯市","children":[{"code":"654003001","name":"团结路街道"},{"code":"654003002","name":"乌东路街道"},{"code":"654003003","name":"北京路街道"},{"code":"654003004","name":"乌鲁木齐西路街道"},{"code":"654003005","name":"火车站街道"},{"code":"654003006","name":"北京西路街道"},{"code":"654003201","name":"开干齐乡"},{"code":"654003508","name":"兵团一三一团"},{"code":"654003510","name":"天北新区"}]},{"code":"654004","name":"霍尔果斯市","children":[{"code":"654004001","name":"卡拉苏街道"},{"code":"654004002","name":"亚欧东路街道"},{"code":"654004003","name":"亚欧西路街道"},{"code":"654004004","name":"工业园区街道"},{"code":"654004200","name":"伊车嘎善乡"},{"code":"654004505","name":"兵团六十一团"},{"code":"654004506","name":"兵团六十二团"}]},{"code":"654021","name":"伊宁县","children":[{"code":"654021100","name":"吉里于孜镇"},{"code":"654021101","name":"墩麻扎镇"},{"code":"654021102","name":"英塔木镇"},{"code":"654021103","name":"胡地于孜镇"},{"code":"654021104","name":"巴依托海镇"},{"code":"654021105","name":"阿热吾斯塘镇"},{"code":"654021106","name":"萨木于孜镇"},{"code":"654021107","name":"喀什镇"},{"code":"654021108","name":"维吾尔玉其温镇"},{"code":"654021109","name":"温亚尔镇"},{"code":"654021201","name":"吐鲁番于孜乡"},{"code":"654021202","name":"喀拉亚尕奇乡"},{"code":"654021203","name":"武功乡"},{"code":"654021204","name":"萨地克于孜乡"},{"code":"654021205","name":"愉群翁回族乡"},{"code":"654021212","name":"麻扎乡"},{"code":"654021214","name":"阿乌利亚乡"},{"code":"654021215","name":"曲鲁海乡"},{"code":"654021501","name":"兵团七十团中心团场"}]},{"code":"654022","name":"察布查尔锡伯自治县","children":[{"code":"654022100","name":"察布查尔镇"},{"code":"654022101","name":"爱新色里镇"},{"code":"654022102","name":"孙扎齐牛录镇"},{"code":"654022103","name":"绰霍尔镇"},{"code":"654022104","name":"加尕斯台镇"},{"code":"654022105","name":"琼博拉镇"},{"code":"654022106","name":"海努克镇"},{"code":"654022200","name":"堆齐牛录乡"},{"code":"654022203","name":"纳达齐牛录乡"},{"code":"654022204","name":"扎库齐牛录乡"},{"code":"654022205","name":"米粮泉回族乡"},{"code":"654022206","name":"坎乡"},{"code":"654022207","name":"阔洪奇乡"},{"code":"654022401","name":"安班巴格良繁场"},{"code":"654022403","name":"伊犁州平原林场"},{"code":"654022404","name":"山区林场"},{"code":"654022408","name":"都拉塔口岸"},{"code":"654022503","name":"兵团六十七团分部"},{"code":"654022504","name":"兵团六十九团"}]},{"code":"654023","name":"霍城县","children":[{"code":"654023100","name":"水定镇"},{"code":"654023101","name":"清水河镇"},{"code":"654023102","name":"芦草沟镇"},{"code":"654023103","name":"惠远镇"},{"code":"654023104","name":"萨尔布拉克镇"},{"code":"654023105","name":"兰干镇"},{"code":"654023201","name":"三道河乡"},{"code":"654023204","name":"三宫乡"},{"code":"654023205","name":"大西沟乡"},{"code":"654023403","name":"良种繁育中心"},{"code":"654023509","name":"兵团六十六团分部"}]},{"code":"654024","name":"巩留县","children":[{"code":"654024100","name":"巩留镇"},{"code":"654024101","name":"阿克吐别克镇"},{"code":"654024102","name":"库尔德宁镇"},{"code":"654024103","name":"东买里镇"},{"code":"654024104","name":"阿尕尔森镇"},{"code":"654024105","name":"提克阿热克镇"},{"code":"654024201","name":"吉尔格郎乡"},{"code":"654024204","name":"塔斯托别乡"},{"code":"654024400","name":"综合农场"},{"code":"654024401","name":"阔什阿尕什羊场"},{"code":"654024402","name":"牛场"},{"code":"654024403","name":"良凡场"},{"code":"654024405","name":"林场"},{"code":"654024510","name":"兵团七十三团"}]},{"code":"654025","name":"新源县","children":[{"code":"654025100","name":"新源镇"},{"code":"654025101","name":"则克台镇"},{"code":"654025102","name":"阿热勒托别镇"},{"code":"654025103","name":"塔勒德镇"},{"code":"654025104","name":"那拉提镇"},{"code":"654025105","name":"肖尔布拉克镇"},{"code":"654025106","name":"喀拉布拉镇"},{"code":"654025107","name":"阿勒玛勒镇"},{"code":"654025108","name":"坎苏镇"},{"code":"654025200","name":"别斯托别乡"},{"code":"654025204","name":"吐尔根乡"},{"code":"654025400","name":"种羊场"},{"code":"654025403","name":"公安农场"},{"code":"654025511","name":"兵团七十一团"},{"code":"654025512","name":"兵团七十二团"}]},{"code":"654026","name":"昭苏县","children":[{"code":"654026100","name":"昭苏镇"},{"code":"654026101","name":"喀夏加尔镇"},{"code":"654026102","name":"阿克达拉镇"},{"code":"654026103","name":"喀拉苏镇"},{"code":"654026104","name":"洪纳海镇"},{"code":"654026201","name":"乌尊布拉克乡"},{"code":"654026203","name":"萨尔阔布乡"},{"code":"654026206","name":"察汗乌苏蒙古族乡"},{"code":"654026207","name":"夏特柯尔克孜族乡"},{"code":"654026208","name":"胡松图喀尔逊蒙古族乡"},{"code":"654026513","name":"兵团七十四团"},{"code":"654026514","name":"兵团七十五团"},{"code":"654026515","name":"兵团七十六团"},{"code":"654026516","name":"兵团七十七团"}]},{"code":"654027","name":"特克斯县","children":[{"code":"654027100","name":"特克斯镇"},{"code":"654027101","name":"乔拉克铁热克镇"},{"code":"654027102","name":"喀拉达拉镇"},{"code":"654027103","name":"齐勒乌泽克镇"},{"code":"654027104","name":"喀拉托海镇"},{"code":"654027200","name":"呼吉尔特蒙古民族乡"},{"code":"654027201","name":"阔克苏乡"},{"code":"654027203","name":"阔克铁热克柯尔克孜民族乡"},{"code":"654027404","name":"特克斯县马场"},{"code":"654027405","name":"科克苏林场"},{"code":"654027517","name":"兵团七十八团"}]},{"code":"654028","name":"尼勒克县","children":[{"code":"654028100","name":"尼勒克镇"},{"code":"654028101","name":"乌拉斯台镇"},{"code":"654028102","name":"乌赞镇"},{"code":"654028103","name":"木斯镇"},{"code":"654028104","name":"克令镇"},{"code":"654028200","name":"苏布台乡"},{"code":"654028201","name":"喀拉苏乡"},{"code":"654028202","name":"加哈乌拉斯台乡"},{"code":"654028204","name":"科克浩特浩尔蒙古民族乡"},{"code":"654028207","name":"喀拉托别乡"},{"code":"654028208","name":"胡吉尔台乡"},{"code":"654028404","name":"种蜂场"},{"code":"654028518","name":"兵团七十九团"}]}]},{"code":"6542","name":"塔城地区","children":[{"code":"654201","name":"塔城市","children":[{"code":"654201001","name":"和平街道"},{"code":"654201002","name":"杜别克街道"},{"code":"654201003","name":"新城街道"},{"code":"654201100","name":"二工镇"},{"code":"654201101","name":"恰夏镇"},{"code":"654201102","name":"博孜达克镇"},{"code":"654201200","name":"喀拉哈巴克乡"},{"code":"654201202","name":"阿西尔达斡尔民族乡"},{"code":"654201203","name":"阿不都拉乡"},{"code":"654201204","name":"也门勒乡"},{"code":"654201502","name":"兵团第九师一六二团"},{"code":"654201503","name":"兵团农九师一六三团"},{"code":"654201504","name":"兵团农九师一六四团"},{"code":"654201512","name":"巴克图经济开发区"}]},{"code":"654202","name":"乌苏市","children":[{"code":"654202001","name":"南苑街道"},{"code":"654202002","name":"虹桥街道"},{"code":"654202003","name":"新市区街道"},{"code":"654202006","name":"西城街道"},{"code":"654202007","name":"奎河街道"},{"code":"654202100","name":"白杨沟镇"},{"code":"654202101","name":"哈图布呼镇"},{"code":"654202102","name":"皇宫镇"},{"code":"654202103","name":"车排子镇"},{"code":"654202104","name":"甘河子镇"},{"code":"654202105","name":"百泉镇"},{"code":"654202106","name":"四棵树镇"},{"code":"654202107","name":"古尔图镇"},{"code":"654202108","name":"西湖镇"},{"code":"654202109","name":"西大沟镇"},{"code":"654202200","name":"八十四户乡"},{"code":"654202201","name":"夹河子乡"},{"code":"654202202","name":"九间楼乡"},{"code":"654202203","name":"石桥乡"},{"code":"654202204","name":"头台乡"},{"code":"654202205","name":"吉尔格勒特郭愣蒙古民族乡"},{"code":"654202206","name":"塔布勒合特蒙古民族乡"},{"code":"654202400","name":"甘家湖牧场"},{"code":"654202401","name":"巴音沟牧场"},{"code":"654202402","name":"赛力克提牧场"},{"code":"654202403","name":"乌苏监狱"},{"code":"654202500","name":"兵团一二三团生活区"},{"code":"654202501","name":"兵团一二四团生活区"},{"code":"654202502","name":"兵团一二五团分部生活区"},{"code":"654202503","name":"兵团一二六团生活区"},{"code":"654202504","name":"兵团一二七团生活区"},{"code":"654202505","name":"兵团一二八团分部生活区"},{"code":"654202507","name":"兵团一三零团分部生活区"}]},{"code":"654203","name":"沙湾市","children":[{"code":"654203101","name":"四道河子镇"},{"code":"654203102","name":"老沙湾镇"},{"code":"654203103","name":"乌兰乌苏镇"},{"code":"654203104","name":"安集海镇"},{"code":"654203105","name":"东湾镇"},{"code":"654203106","name":"西戈壁镇"},{"code":"654203107","name":"柳毛湾镇"},{"code":"654203108","name":"金沟河镇"},{"code":"654203109","name":"三道河子镇"},{"code":"654203200","name":"商户地乡"},{"code":"654203201","name":"大泉乡"},{"code":"654203202","name":"博尔通古乡"},{"code":"654203402","name":"良种场"},{"code":"654203500","name":"兵团北泉镇分部"},{"code":"654203503","name":"兵团一二一团"},{"code":"654203506","name":"兵团一三三团"},{"code":"654203507","name":"兵团一三四团"},{"code":"654203509","name":"兵团一四一团"},{"code":"654203510","name":"兵团一四二团"},{"code":"654203511","name":"兵团一四三团"},{"code":"654203512","name":"兵团一四四团"}]},{"code":"654221","name":"额敏县","children":[{"code":"654221100","name":"额敏镇"},{"code":"654221101","name":"玉什喀拉苏镇"},{"code":"654221102","name":"杰勒阿尕什镇"},{"code":"654221103","name":"上户镇"},{"code":"654221104","name":"玛热勒苏镇"},{"code":"654221105","name":"喀拉也木勒镇"},{"code":"654221200","name":"郊区乡"},{"code":"654221202","name":"额玛勒郭楞蒙古民族乡"},{"code":"654221207","name":"喇嘛昭乡"},{"code":"654221208","name":"霍吉尔特蒙古民族乡"},{"code":"654221209","name":"二道桥乡"},{"code":"654221400","name":"二支河牧场"},{"code":"654221401","name":"加尔布拉克农场"},{"code":"654221402","name":"阔什比克良种场"},{"code":"654221403","name":"萨尔也木勒牧场"},{"code":"654221404","name":"也木勒牧场"},{"code":"654221405","name":"塔城地区种羊场"},{"code":"654221406","name":"吾宗布拉克牧场"},{"code":"654221407","name":"额敏(兵地、辽阳)工业园区"},{"code":"654221505","name":"兵团农九师一六五团"},{"code":"654221506","name":"兵团农九师一六六团"},{"code":"654221507","name":"兵团农九师一六七团"},{"code":"654221508","name":"兵团农九师一六八团"},{"code":"654221511","name":"兵团农九师团结农场"}]},{"code":"654224","name":"托里县","children":[{"code":"654224100","name":"托里镇"},{"code":"654224101","name":"铁厂沟镇"},{"code":"654224102","name":"庙尔沟镇"},{"code":"654224103","name":"哈图镇"},{"code":"654224200","name":"多拉特乡"},{"code":"654224201","name":"乌雪特乡"},{"code":"654224202","name":"库普乡"},{"code":"654224203","name":"阿克别里斗乡"},{"code":"654224401","name":"白杨河林场"},{"code":"654224402","name":"老风口林场"},{"code":"654224403","name":"巴尔鲁克山塔斯特林场"},{"code":"654224510","name":"兵团农九师一七零团"}]},{"code":"654225","name":"裕民县","children":[{"code":"654225100","name":"哈拉布拉镇"},{"code":"654225101","name":"吉也克镇"},{"code":"654225200","name":"哈拉布拉乡"},{"code":"654225201","name":"新地乡"},{"code":"654225202","name":"阿勒腾也木勒乡"},{"code":"654225204","name":"江格斯乡"},{"code":"654225501","name":"兵团农九师一六一团"}]},{"code":"654226","name":"和布克赛尔蒙古自治县","children":[{"code":"654226100","name":"和布克赛尔镇"},{"code":"654226101","name":"和什托洛盖镇"},{"code":"654226200","name":"夏孜盖乡"},{"code":"654226201","name":"铁布肯乌散乡"},{"code":"654226202","name":"查干库勒乡"},{"code":"654226203","name":"巴音傲瓦乡"},{"code":"654226204","name":"莫特格乡"},{"code":"654226205","name":"查和特乡"},{"code":"654226400","name":"伊克乌图布拉格牧场"},{"code":"654226401","name":"那仁和布克牧场"},{"code":"654226402","name":"巴尕乌图布拉格牧场"},{"code":"654226403","name":"布斯屯格牧场"},{"code":"654226500","name":"兵团一八四团"},{"code":"654226501","name":"新疆屯南煤业有限责任公司"}]}]},{"code":"6543","name":"阿勒泰地区","children":[{"code":"654301","name":"阿勒泰市","children":[{"code":"654301001","name":"金山路街道"},{"code":"654301002","name":"解放路街道"},{"code":"654301003","name":"团结路街道"},{"code":"654301004","name":"恰秀路街道"},{"code":"654301100","name":"北屯镇"},{"code":"654301101","name":"阿苇滩镇"},{"code":"654301102","name":"红墩镇"},{"code":"654301103","name":"切木尔切克镇"},{"code":"654301104","name":"阿拉哈克镇"},{"code":"654301202","name":"汗德尕特蒙古族乡"},{"code":"654301203","name":"拉斯特乡"},{"code":"654301204","name":"喀拉希力克乡"},{"code":"654301205","name":"萨尔胡松乡"},{"code":"654301206","name":"巴里巴盖乡"},{"code":"654301207","name":"切尔克齐乡"},{"code":"654301400","name":"喀拉尕什牧场"},{"code":"654301401","name":"阿克吐木斯克牧场"},{"code":"654301500","name":"兵团一八一团"}]},{"code":"654321","name":"布尔津县","children":[{"code":"654321100","name":"布尔津镇"},{"code":"654321101","name":"冲乎尔镇"},{"code":"654321102","name":"窝依莫克镇"},{"code":"654321103","name":"阔斯特克镇"},{"code":"654321201","name":"杜来提乡"},{"code":"654321204","name":"也格孜托别乡"},{"code":"654321205","name":"禾木哈纳斯蒙古族乡"}]},{"code":"654322","name":"富蕴县","children":[{"code":"654322100","name":"库额尔齐斯镇"},{"code":"654322101","name":"可可托海镇"},{"code":"654322102","name":"恰库尔图镇"},{"code":"654322103","name":"喀拉通克镇"},{"code":"654322104","name":"杜热镇"},{"code":"654322200","name":"吐尔洪乡"},{"code":"654322202","name":"库尔特乡"},{"code":"654322203","name":"克孜勒希力克乡"},{"code":"654322204","name":"铁买克乡"},{"code":"654322205","name":"喀拉布勒根乡"}]},{"code":"654323","name":"福海县","children":[{"code":"654323100","name":"福海镇"},{"code":"654323101","name":"喀拉玛盖镇"},{"code":"654323102","name":"解特阿热勒镇"},{"code":"654323201","name":"阔克阿尕什乡"},{"code":"654323202","name":"齐干吉迭乡"},{"code":"654323204","name":"阿尔达乡"},{"code":"654323400","name":"地区一农场"},{"code":"654323401","name":"福海监狱"},{"code":"654323500","name":"兵团一八二团"},{"code":"654323504","name":"兵团一八三团分部"},{"code":"654323505","name":"兵团一八八团分部"}]},{"code":"654324","name":"哈巴河县","children":[{"code":"654324100","name":"阿克齐镇"},{"code":"654324101","name":"萨尔布拉克镇"},{"code":"654324102","name":"齐巴尔镇"},{"code":"654324103","name":"库勒拜镇"},{"code":"654324200","name":"萨尔塔木乡"},{"code":"654324201","name":"加依勒玛乡"},{"code":"654324204","name":"铁热克提乡"},{"code":"654324500","name":"兵团一八五团"}]},{"code":"654325","name":"青河县","children":[{"code":"654325100","name":"青河镇"},{"code":"654325101","name":"塔克什肯镇"},{"code":"654325102","name":"阿热勒托别镇"},{"code":"654325103","name":"阿格达拉镇"},{"code":"654325104","name":"阿热勒镇"},{"code":"654325202","name":"萨尔托海乡"},{"code":"654325203","name":"查干郭勒乡"},{"code":"654325204","name":"阿尕什敖包乡"}]},{"code":"654326","name":"吉木乃县","children":[{"code":"654326100","name":"托普铁热克镇"},{"code":"654326101","name":"吉木乃镇"},{"code":"654326102","name":"喀尔交镇"},{"code":"654326103","name":"乌拉斯特镇"},{"code":"654326201","name":"托斯特乡"},{"code":"654326202","name":"恰勒什海乡"},{"code":"654326204","name":"别斯铁热克乡"},{"code":"654326500","name":"兵团一八六团"}]}]},{"code":"6590","name":"自治区直辖县级行政区划","children":[{"code":"659001","name":"石河子市","children":[{"code":"659001001","name":"新城街道"},{"code":"659001002","name":"向阳街道"},{"code":"659001003","name":"红山街道"},{"code":"659001004","name":"老街街道"},{"code":"659001005","name":"东城街道"},{"code":"659001100","name":"北泉镇"},{"code":"659001101","name":"石河子镇"},{"code":"659001500","name":"兵团一五二团"}]},{"code":"659002","name":"阿拉尔市","children":[{"code":"659002001","name":"金银川路街道"},{"code":"659002002","name":"幸福路街道"},{"code":"659002003","name":"青松路街道"},{"code":"659002100","name":"金银川镇"},{"code":"659002101","name":"新井子镇"},{"code":"659002102","name":"甘泉镇"},{"code":"659002103","name":"永宁镇"},{"code":"659002104","name":"沙河镇"},{"code":"659002105","name":"双城镇"},{"code":"659002106","name":"花桥镇"},{"code":"659002107","name":"幸福镇"},{"code":"659002108","name":"金杨镇"},{"code":"659002109","name":"玛滩镇"},{"code":"659002110","name":"塔门镇"},{"code":"659002111","name":"梨花镇"},{"code":"659002112","name":"昌安镇"},{"code":"659002113","name":"塔南镇"},{"code":"659002114","name":"新开岭镇"},{"code":"659002200","name":"托喀依乡"},{"code":"659002402","name":"工业园区"},{"code":"659002518","name":"西工业园区"}]},{"code":"659003","name":"图木舒克市","children":[{"code":"659003001","name":"锦绣街道"},{"code":"659003002","name":"前海街道"},{"code":"659003003","name":"永安坝街道"},{"code":"659003100","name":"草湖镇"},{"code":"659003101","name":"龙口镇"},{"code":"659003102","name":"前海镇"},{"code":"659003103","name":"永兴镇"},{"code":"659003104","name":"兴安镇"},{"code":"659003105","name":"嘉和镇"},{"code":"659003106","name":"河东镇"},{"code":"659003107","name":"夏河镇"},{"code":"659003108","name":"永安镇"},{"code":"659003109","name":"海安镇"},{"code":"659003110","name":"唐驿镇"},{"code":"659003111","name":"金胡杨镇"}]},{"code":"659004","name":"五家渠市","children":[{"code":"659004001","name":"军垦路街道"},{"code":"659004002","name":"青湖路街道"},{"code":"659004003","name":"人民路街道"},{"code":"659004100","name":"梧桐镇"},{"code":"659004101","name":"蔡家湖镇"},{"code":"659004500","name":"兵团一零一团"},{"code":"659004501","name":"五家渠经济技术开区"}]},{"code":"659005","name":"北屯市","children":[{"code":"659005100","name":"双渠镇"},{"code":"659005101","name":"丰庆镇"},{"code":"659005102","name":"海川镇"},{"code":"659005400","name":"北屯市核心区"}]},{"code":"659006","name":"铁门关市","children":[{"code":"659006001","name":"迎宾街道"},{"code":"659006100","name":"博古其镇"},{"code":"659006101","name":"双丰镇"},{"code":"659006102","name":"河畔镇"},{"code":"659006103","name":"高桥镇"},{"code":"659006104","name":"天湖镇"},{"code":"659006105","name":"开泽镇"},{"code":"659006106","name":"米兰镇"},{"code":"659006107","name":"金山镇"},{"code":"659006108","name":"南屯镇"}]},{"code":"659007","name":"双河市","children":[{"code":"659007100","name":"双桥镇"},{"code":"659007101","name":"石峪镇"},{"code":"659007102","name":"博河镇"},{"code":"659007103","name":"双乐镇"},{"code":"659007400","name":"双河市核心区"},{"code":"659007500","name":"兵团八十九团"}]},{"code":"659008","name":"可克达拉市","children":[{"code":"659008100","name":"榆树庄镇"},{"code":"659008101","name":"苇湖镇"},{"code":"659008102","name":"长丰镇"},{"code":"659008103","name":"金梁镇"},{"code":"659008104","name":"金屯镇"},{"code":"659008400","name":"可克达拉市核心区"}]},{"code":"659009","name":"昆玉市","children":[{"code":"659009100","name":"老兵镇"},{"code":"659009101","name":"昆泉镇"},{"code":"659009102","name":"昆牧镇"},{"code":"659009103","name":"玉泉镇"},{"code":"659009400","name":"昆玉市核心区"},{"code":"659009500","name":"兵团二二四团"},{"code":"659009501","name":"北京皮墨工业园区"}]},{"code":"659010","name":"胡杨河市","children":[{"code":"659010400","name":"胡杨河市核心区"},{"code":"659010500","name":"兵团一二五团"},{"code":"659010501","name":"兵团一二八团"},{"code":"659010502","name":"兵团一二九团"},{"code":"659010503","name":"兵团一三零团"}]},{"code":"659011","name":"新星市","children":[{"code":"659011400","name":"新星市核心区"},{"code":"659011500","name":"兵团红星一场"},{"code":"659011501","name":"红星四场"},{"code":"659011502","name":"黄田农场"}]}]}]}] \ No newline at end of file diff --git a/admin/src/components/SearchBar/index.vue b/admin/src/components/SearchBar/index.vue new file mode 100644 index 0000000..36250a1 --- /dev/null +++ b/admin/src/components/SearchBar/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/admin/src/components/SvgIcon/index.vue b/admin/src/components/SvgIcon/index.vue new file mode 100644 index 0000000..01a2257 --- /dev/null +++ b/admin/src/components/SvgIcon/index.vue @@ -0,0 +1,47 @@ + + + diff --git a/admin/src/components/SystemInfo/index.vue b/admin/src/components/SystemInfo/index.vue new file mode 100644 index 0000000..d4f4f4b --- /dev/null +++ b/admin/src/components/SystemInfo/index.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/admin/src/components/Trend/index.vue b/admin/src/components/Trend/index.vue new file mode 100644 index 0000000..aa9ba39 --- /dev/null +++ b/admin/src/components/Trend/index.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/admin/src/constants/copyright.ts b/admin/src/constants/copyright.ts new file mode 100644 index 0000000..9e134c5 --- /dev/null +++ b/admin/src/constants/copyright.ts @@ -0,0 +1,17 @@ +export const copyRight = { + wex: '5qyi6L+O5L2T6aqMTmluZUFJ', + qnum: 'MjAyMyAtIDIwMjQ=', + website: '', + /* 下三个是个人的 上面是公开的 */ + // wex: 'Vng6IEpfbG9uZ3lhbg==', + // qnum: 'UVE6IDkyNzg5ODYzOQ==', + // website: 'aHR0cHM6Ly9haS5qaWFuZ2x5LmNvbQ==', + name: 'TmluZSBBaQ==', +} + +export function atob(str) { + if (!str) { + return '' + } + return decodeURIComponent(escape(window.atob(str))) +} diff --git a/admin/src/constants/index.ts b/admin/src/constants/index.ts new file mode 100644 index 0000000..1047f33 --- /dev/null +++ b/admin/src/constants/index.ts @@ -0,0 +1,394 @@ +export const USER_STATUS_OPTIONS = [ + { value: 0, label: "待激活" }, + { value: 1, label: "正常" }, + { value: 2, label: "已封禁" }, + { value: 3, label: "黑名单" }, +]; + +export const USER_STATUS_MAP = { + 0: "待激活", + 1: "正常", + 2: "已封禁", + 3: "黑名单", +}; + +export const USER_STATUS_TYPE_MAP = { + 0: "info", + 1: "success", + 2: "danger", + 3: "danger", +}; + +// 充值类型map 1: 注册赠送 2: 受邀请赠送 3: 邀请人赠送 4: 购买套餐赠送 5: 管理员赠送 6:扫码支付 7: 绘画失败退款 8: 签到奖励 +export const RECHARGE_TYPE_MAP = { + 1: "注册赠送", + 2: "受邀请赠送", + 3: "邀请人赠送", + 4: "购买套餐赠送", + 5: "管理员赠送", + 6: "扫码支付", + 7: "绘画失败退款", + 8: "签到奖励", +}; + +// 充值数组 +export const RECHARGE_TYPE_OPTIONS = [ + { value: 1, label: "注册赠送" }, + { value: 2, label: "受邀请赠送" }, + { value: 3, label: "邀请人赠送" }, + { value: 4, label: "购买套餐赠送" }, + { value: 5, label: "管理员赠送" }, + { value: 6, label: "扫码支付" }, + { value: 7, label: "绘画失败退款" }, + { value: 8, label: "签到奖励" }, +]; + +export type UserStatus = keyof typeof USER_STATUS_TYPE_MAP; + +// 是否开启额外赠送 +export const IS_OPTIONS = { + 0: "关闭", + 1: "开启", +}; + +// 是否开启额外赠送类型 +export const IS_TYPE_MAP = { + 0: "danger", + 1: "success", +}; + +export const PACKAGE_TYPE_OPTIONS = [ + { value: 0, label: "禁用" }, + { value: 1, label: "启动" }, +]; + +// 扣费形式 1: 按次数扣费 2:按Token扣费 +export const DEDUCTION_TYPE_OPTIONS = [ + { value: 1, label: "按次数扣费" }, + { value: 2, label: "按Token扣费" }, +]; + +// 扣费形式 map +export const DEDUCTION_TYPE_MAP = { + 1: "按次数扣费", + 2: "按Token扣费", +}; + +export const CRAMI_STATUS_OPTIONS = [ + { value: 0, label: "未使用" }, + { value: 1, label: "已使用" }, +]; + +// 图片推荐状态0未推荐1已推荐 +export const RECOMMEND_STATUS_OPTIONS = [ + { value: 0, label: "未推荐" }, + { value: 1, label: "已推荐" }, +]; + +// 0 禁用 1 启用 +export const ENABLE_STATUS_OPTIONS = [ + { value: 0, label: "禁用" }, + { value: 1, label: "启用" }, + { value: 3, label: "待审核" }, + { value: 4, label: "拒绝共享" }, + { value: 5, label: "通过共享" }, +]; + +// 问题状态 0 未解决 1 已解决 +export const QUESTION_STATUS_OPTIONS = [ + { value: "0", label: "未启用" }, + { value: "1", label: "已启用" }, +]; + +// 问题状态 0 未解决 1 已解决 +export const ORDER_STATUS_OPTIONS = [ + { value: 0, label: "待审核" }, + { value: 1, label: "已通过" }, + { value: -1, label: "已拒绝" }, +]; + +// 0:未推荐 1:已推荐 数组 +export const RECOMMEND_STATUS = [ + { value: 0, label: "未推荐" }, + { value: 1, label: "已推荐" }, +]; + +// 提现渠道 支付宝 微信 +export const WITHDRAW_CHANNEL_OPTIONS = [ + { value: 1, label: "支付宝" }, + { value: 2, label: "微信" }, +]; + +// 1 排队中 2 处理中 3 已完成 4 失败 5 超时 +export const WITHDRAW_STATUS_OPTIONS = [ + { value: 1, label: "正在排队" }, + { value: 2, label: "正在绘制" }, + { value: 3, label: "绘制完成" }, + { value: 4, label: "绘制失败" }, + { value: 5, label: "绘制超时" }, +]; + +// 0 禁用 warning 1启用 状态 success +export const ENABLE_STATUS_TYPE_MAP: QuestionStatusMap = { + 0: "danger", + 1: "success", +}; + +interface QuestionStatusMap { + [key: number]: string; +} + +// 问题状态 0 未解决 1 已解决 映射 +export const QUESTION_STATUS_MAP: QuestionStatusMap = { + "-1": "欠费锁定", + "0": "未启用", + "1": "已启用", + "3": "待审核", + "4": "拒绝共享", + "5": "通过共享", +}; + +// 问题状态 0 被封号 1 正常 映射 +export const KEY_STATUS_MAP: QuestionStatusMap = { + 0: "被封禁", + 1: "工作中", +}; +// 账号类型 5$ 18$ 120$ +export const ACCOUNT_TYPE_MAP: QuestionStatus = [ + { value: "5$", label: "5$" }, + { value: "18$", label: "18$" }, + { value: "120$", label: "120$" }, + { value: "其他", label: "其他" }, +]; + +// 模型列表 +export const MODEL_LIST = [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-1106", + "gpt-3.5-turbo-16k", + "gpt-3.5-turbo-instruct", + "gpt-4", + "gpt-4-0613", + "gpt-4-32k", + "gpt-4-32k-0613", + "gpt-4-1106-preview", + "gpt-4-vision-preview", + "gpt-4-all", + "gpt-4-0125-preview", + "gpt-4-turbo-2024-04-09", + "gpt-4-turbo-preview", + "gpt-4o", + "gpt-4o-2024-05-13", + "gpt-4o-all", + "dall-e-3", + // claude + "claude-2.0", + "claude-2.1", + "claude-3.0", + "claude-3-5-sonnet-20240620", + "claude-3-haiku-20240307", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-instant-1.2", + // gemini + "gemini-pro", + // 百度文心 + "ERNIE-Bot", + "ERNIE-Bot-4", + "ERNIE-Bot-turbo", + // 阿里通义 + "qwen-turbo", + "qwen-plus", + "qwen-max", + "qwen-max-lingcontext", + // 腾讯混元 + "hunyuan", + // 清华智谱 + "chatglm_turbo", + "chatglm_pro", + "chatglm_std", + "chatglm_lite", + // 360 智脑 + "360GPT_S2_V9", + // 讯飞星火 + "SparkDesk", + "SparkDesk-v3.5", + // kimi + "kimi", + "kimi-128k", + "kimi-all", + //deepseek + "deepseek", + "deepseek-chat", + "deepseek-coder", +]; + +// 模型列表 0 mj 1 Dall-e +export const DRAW_MODEL_LIST = [ + { value: "mj", label: "MidjourneyAi" }, + { value: "DALL-E2", label: "DALL-E" }, +]; +// 支付状态列表 status 0:未支付、1:已支付、2、支付失败、3:支付超时 +export const PAY_STATUS_OPTIONS = [ + { value: 0, label: "未支付" }, + { value: 1, label: "已支付" }, + { value: 2, label: "支付失败" }, + { value: 3, label: "支付超时" }, +]; + +// 支付状态 status 0:未支付、1:已支付、2、支付失败、3:支付超时 +export const PAY_STATUS_MAP: QuestionStatusMap = { + 0: "未支付", + 1: "已支付", + 2: "支付失败", + 3: "支付超时", +}; + +// 平台列表 epay: 易支付 hupi:虎皮椒 +export const PAY_PLATFORM_LIST = [ + { value: "epay", label: "易支付" }, + { value: "hupi", label: "虎皮椒" }, + { value: "wechat", label: "微信支付" }, + { value: "mpay", label: "码支付" }, +]; + +// 支付对应 +export const PAY_PLATFORM_MAP = { + epay: "易支付", + hupi: "虎皮椒", + wechat: "微信支付", + mpay: "码支付", +}; + +// 绘画状态 1: 等待中 2: 绘制中 3: 绘制完成 4: 绘制失败 5: 绘制超时 +export const DRAW_MJ_STATUS_LIST = [ + { value: 1, label: "等待中" }, + { value: 2, label: "绘制中" }, + { value: 3, label: "绘制完成" }, + { value: 4, label: "绘制失败" }, + { value: 5, label: "绘制超时" }, +]; + +// App角色 系统 system 用户 user +export const APP_ROLE_LIST = [ + { value: "system", label: "系统" }, + { value: "user", label: "用户" }, +]; + +// 绘画状态 1:排队中 2:绘制中 3:绘制完成 4:绘制失败 5:绘制超时 +export const DRAW_STATUS_MAP = { + 1: "排队中", + 2: "绘制中", + 3: "绘制完成", + 4: "绘制失败", + 5: "绘制超时", +}; + +export const TYPEORIGINLIST = [ + { value: "百度云检测", label: "百度云检测" }, + { value: "自定义检测", label: "自定义检测" }, + { value: "NineAI检测", label: "NineAI检测" }, +]; + +export const MODELTYPELIST = [ + { value: 1, label: "OpenAi - [chatGpt]" }, + { value: 2, label: "百度 - [千帆大模型]" }, + { value: 3, label: "清华 - [智谱大模型]" }, +]; + +export const MODELSMAP = { + 1: "OPENAI", + 2: "百度文心", + 3: "清华智谱", +}; + +export const MODELSMAPLIST = { + 1: [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-1106", + "gpt-3.5-turbo-16k", + "gpt-3.5-turbo-instruct", + "gpt-4", + "gpt-4-0613", + "gpt-4-32k", + "gpt-4-32k-0613", + "gpt-4-1106-preview", + "gpt-4-vision-preview", + "gpt-4-all", + "gpt-4-0125-preview", + "gpt-4-turbo-2024-04-09", + "gpt-4-turbo-preview", + "gpt-4o", + "gpt-4o-2024-05-13", + "gpt-4o-all", + "dall-e-3", + // claude + "claude-2.0", + "claude-2.1", + "claude-3.0", + "claude-3-5-sonnet-20240620", + "claude-3-haiku-20240307", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-instant-1.2", + // gemini + "gemini-pro", + // 百度文心 + "ERNIE-Bot", + "ERNIE-Bot-4", + "ERNIE-Bot-turbo", + // 阿里通义 + "qwen-turbo", + "qwen-plus", + "qwen-max", + "qwen-max-lingcontext", + // 腾讯混元 + "hunyuan", + // 清华智谱 + "chatglm_turbo", + "chatglm_pro", + "chatglm_std", + "chatglm_lite", + // 360 智脑 + "360GPT_S2_V9", + // 讯飞星火 + "SparkDesk", + "SparkDesk-v3.5", + // kimi + "kimi", + "kimi-128k", + "kimi-all", + //deepseek + "deepseek", + "deepseek-chat", + "deepseek-coder", + ], + 2: [ + "ERNIE-Bot", + "ERNIE-Bot", + "ERNIE-Bot-4", + "ERNIE-Bot-turbo", + "BLOOMZ-7B", + "Llama-2-7b-chat", + "Llama-2-13b-chat", + // 'Llama-2-70b-chat', + // 'ChatGLM2-6B-32K', + "Qianfan-BLOOMZ-7B-compressed", + "Qianfan-Chinese-Llama-2-7B", + "AquilaChat-7B", + ], + 3: ["chatglm_pro", "chatglm_std", "chatglm_lite", "chatglm_lite_32k"], +}; + +/* 扣费类型 普通余额还是高级余额 */ +export const DEDUCTTYPELIST = [ + { value: 1, label: "普通余额" }, + { value: 2, label: "高级余额" }, +]; + +/* 不同模型在填入key字段的时候 key代表的含义不同 */ +export const ModelTypeLabelMap = { + 1: "APIKey", + 2: "client_id", + 3: "AppKey", +}; diff --git a/admin/src/iconify-ep/index.ts b/admin/src/iconify-ep/index.ts new file mode 100644 index 0000000..37deffa --- /dev/null +++ b/admin/src/iconify-ep/index.ts @@ -0,0 +1,6 @@ +import { addCollection } from '@iconify/vue' + +export async function downloadAndInstall() { + const data = Object.freeze(await fetch('./icons/icons.json').then(r => r.json())) + addCollection(data) +} diff --git a/admin/src/layouts/components/AppSetting/index.vue b/admin/src/layouts/components/AppSetting/index.vue new file mode 100644 index 0000000..7025204 --- /dev/null +++ b/admin/src/layouts/components/AppSetting/index.vue @@ -0,0 +1,533 @@ + + + + + diff --git a/admin/src/layouts/components/Header/index.vue b/admin/src/layouts/components/Header/index.vue new file mode 100644 index 0000000..ea95a40 --- /dev/null +++ b/admin/src/layouts/components/Header/index.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/admin/src/layouts/components/HotkeysIntro/index.vue b/admin/src/layouts/components/HotkeysIntro/index.vue new file mode 100644 index 0000000..d131c6b --- /dev/null +++ b/admin/src/layouts/components/HotkeysIntro/index.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/admin/src/layouts/components/Logo/index.vue b/admin/src/layouts/components/Logo/index.vue new file mode 100644 index 0000000..27d2a21 --- /dev/null +++ b/admin/src/layouts/components/Logo/index.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/admin/src/layouts/components/MainSidebar/index.vue b/admin/src/layouts/components/MainSidebar/index.vue new file mode 100644 index 0000000..8fc0860 --- /dev/null +++ b/admin/src/layouts/components/MainSidebar/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/admin/src/layouts/components/Search/index.vue b/admin/src/layouts/components/Search/index.vue new file mode 100644 index 0000000..80ca32d --- /dev/null +++ b/admin/src/layouts/components/Search/index.vue @@ -0,0 +1,484 @@ + + + + + diff --git a/admin/src/layouts/components/SidebarItem/index.vue b/admin/src/layouts/components/SidebarItem/index.vue new file mode 100644 index 0000000..3962dc9 --- /dev/null +++ b/admin/src/layouts/components/SidebarItem/index.vue @@ -0,0 +1,154 @@ + + + + + + + diff --git a/admin/src/layouts/components/SubSidebar/index.vue b/admin/src/layouts/components/SubSidebar/index.vue new file mode 100644 index 0000000..f2a139c --- /dev/null +++ b/admin/src/layouts/components/SubSidebar/index.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/admin/src/layouts/components/Tools/index.vue b/admin/src/layouts/components/Tools/index.vue new file mode 100644 index 0000000..146416d --- /dev/null +++ b/admin/src/layouts/components/Tools/index.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/admin/src/layouts/components/Topbar/index.vue b/admin/src/layouts/components/Topbar/index.vue new file mode 100644 index 0000000..42df53d --- /dev/null +++ b/admin/src/layouts/components/Topbar/index.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/admin/src/layouts/components/views/link.vue b/admin/src/layouts/components/views/link.vue new file mode 100644 index 0000000..61c3be6 --- /dev/null +++ b/admin/src/layouts/components/views/link.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/admin/src/layouts/index.vue b/admin/src/layouts/index.vue new file mode 100644 index 0000000..6c237e6 --- /dev/null +++ b/admin/src/layouts/index.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/admin/src/main.ts b/admin/src/main.ts new file mode 100644 index 0000000..795b927 --- /dev/null +++ b/admin/src/main.ts @@ -0,0 +1,33 @@ +import './utils/system.copyright' +import ElementPlus from 'element-plus' +import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import App from './App.vue' +import pinia from './store' +import router from './router' +import useSettingsStore from './store/modules/settings' + +// 自定义指令 +import directive from '@/utils/directive' + +// 加载 svg 图标 +import 'virtual:svg-icons-register' + +// 全局样式 +import '@/assets/styles/globals.scss' + +// 加载 iconify 图标(element plus) +import { downloadAndInstall } from '@/iconify-ep' + +const app = createApp(App) +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component) +} +app.use(ElementPlus) +app.use(pinia) +app.use(router) +directive(app) +if (useSettingsStore().settings.app.iconifyOfflineUse) { + downloadAndInstall() +} + +app.mount('#app') diff --git a/admin/src/menu/index.ts b/admin/src/menu/index.ts new file mode 100644 index 0000000..f7c8e6d --- /dev/null +++ b/admin/src/menu/index.ts @@ -0,0 +1,17 @@ +import MultilevelMenuExample from './modules/multilevel.menu.example' + +import type { Menu } from '#/global' + +const menu: Menu.recordMainRaw[] = [ + { + meta: { + title: 'NineAi', + icon: 'sidebar-default', + }, + children: [ + MultilevelMenuExample, + ], + }, +] + +export default menu diff --git a/admin/src/menu/modules/multilevel.menu.example.ts b/admin/src/menu/modules/multilevel.menu.example.ts new file mode 100644 index 0000000..0c60ce7 --- /dev/null +++ b/admin/src/menu/modules/multilevel.menu.example.ts @@ -0,0 +1,50 @@ +import type { Menu } from '#/global' + +const menus: Menu.recordRaw = { + meta: { + title: '多级导航', + icon: 'sidebar-menu', + }, + children: [ + { + path: '/multilevel_menu_example/page', + meta: { + title: '导航1', + }, + }, + { + meta: { + title: '导航2', + }, + children: [ + { + path: '/multilevel_menu_example/level2/page', + meta: { + title: '导航2-1', + }, + }, + { + meta: { + title: '导航2-2', + }, + children: [ + { + path: '/multilevel_menu_example/level2/level3/page1', + meta: { + title: '导航2-2-1', + }, + }, + { + path: '/multilevel_menu_example/level2/level3/page2', + meta: { + title: '导航2-2-2', + }, + }, + ], + }, + ], + }, + ], +} + +export default menus diff --git a/admin/src/mock/user.ts b/admin/src/mock/user.ts new file mode 100644 index 0000000..e372cf6 --- /dev/null +++ b/admin/src/mock/user.ts @@ -0,0 +1,55 @@ +export default [ + { + url: '/mock/user/login', + method: 'post', + response: ({ body }: any) => { + return { + error: '', + status: 1, + data: { + account: body.account, + token: `${body.account}_@string`, + failure_time: Math.ceil(new Date().getTime() / 1000) + 24 * 60 * 60, + }, + } + }, + }, + { + url: '/mock/user/permission', + method: 'get', + response: ({ headers }: any) => { + let permissions: string[] = [] + if (headers.token.indexOf('admin') === 0) { + permissions = [ + 'permission.browse', + 'permission.create', + 'permission.edit', + 'permission.remove', + ] + } + else if (headers.token.indexOf('test') === 0) { + permissions = [ + 'permission.browse', + ] + } + return { + error: '', + status: 1, + data: { + permissions, + }, + } + }, + }, + { + url: '/mock/user/password/edit', + method: 'post', + response: { + error: '', + status: 1, + data: { + isSuccess: true, + }, + }, + }, +] diff --git a/admin/src/mockProdServer.ts b/admin/src/mockProdServer.ts new file mode 100644 index 0000000..c5f0fc8 --- /dev/null +++ b/admin/src/mockProdServer.ts @@ -0,0 +1,11 @@ +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer' + +const mocks: any[] = [] +const mockContext = import.meta.glob('./mock/*.ts', { eager: true }) +Object.keys(mockContext).forEach((v) => { + mocks.push(...(mockContext[v] as any).default) +}) + +export function setupProdMockServer() { + createProdMockServer(mocks) +} diff --git a/admin/src/router/index.ts b/admin/src/router/index.ts new file mode 100644 index 0000000..1904b5a --- /dev/null +++ b/admin/src/router/index.ts @@ -0,0 +1,165 @@ +import { createRouter, createWebHashHistory } from 'vue-router' +import type { RouteRecordRaw } from 'vue-router' +import { useNProgress } from '@vueuse/integrations/useNProgress' +import '@/assets/styles/nprogress.scss' + +// 路由相关数据 +import { asyncRoutes, asyncRoutesByFilesystem, constantRoutes, constantRoutesByFilesystem } from './routes' +import pinia from '@/store' +import useSettingsStore from '@/store/modules/settings' +import useKeepAliveStore from '@/store/modules/keepAlive' +import useUserStore from '@/store/modules/user' +import useMenuStore from '@/store/modules/menu' +import useRouteStore from '@/store/modules/route' + +const { isLoading } = useNProgress() + +const router = createRouter({ + history: createWebHashHistory(import.meta.env.VITE_BASE_PATH), + routes: useSettingsStore(pinia).settings.app.routeBaseOn === 'filesystem' ? constantRoutesByFilesystem : constantRoutes as RouteRecordRaw[], +}) + +router.beforeEach(async (to, from, next) => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + const menuStore = useMenuStore() + const routeStore = useRouteStore() + settingsStore.settings.app.enableProgress && (isLoading.value = true) + // 是否已登录 + if (userStore.isLogin) { + // 是否已根据权限动态生成并注册路由 + if (routeStore.isGenerate) { + // 导航栏如果不是 single 模式,则需要根据 path 定位主导航的选中状态 + settingsStore.settings.menu.menuMode !== 'single' && menuStore.setActived(to.path) + // 如果已登录状态下,进入登录页会强制跳转到主页 + if (to.name === 'login') { + next({ + name: 'home', + replace: true, + }) + } + // 如果未开启主页,但进入的是主页,则会进入侧边栏导航第一个模块 + else if (!settingsStore.settings.home.enable && to.name === 'home') { + if (menuStore.sidebarMenus.length > 0) { + next({ + path: menuStore.sidebarMenusFirstDeepestPath, + replace: true, + }) + } + // 如果侧边栏导航第一个模块无法命中,则还是进入主页 + else { + next() + } + } + // 正常访问页面 + else { + next() + } + } + else { + // 生成动态路由 + switch (settingsStore.settings.app.routeBaseOn) { + case 'frontend': + await routeStore.generateRoutesAtFront(asyncRoutes) + break + case 'backend': + await routeStore.generateRoutesAtBack() + break + case 'filesystem': + await routeStore.generateRoutesAtFilesystem(asyncRoutesByFilesystem) + // 文件系统生成的路由,需要手动生成导航数据 + switch (settingsStore.settings.menu.baseOn) { + case 'frontend': + await menuStore.generateMenusAtFront() + break + case 'backend': + await menuStore.generateMenusAtBack() + break + } + break + } + // 注册并记录路由数据 + // 记录的数据会在登出时会使用到,不使用 router.removeRoute 是考虑配置的路由可能不一定有设置 name ,则通过调用 router.addRoute() 返回的回调进行删除 + const removeRoutes: Function[] = [] + routeStore.flatRoutes.forEach((route) => { + if (!/^(https?:|mailto:|tel:)/.test(route.path)) { + removeRoutes.push(router.addRoute(route as RouteRecordRaw)) + } + }) + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + routeStore.flatSystemRoutes.forEach((route) => { + removeRoutes.push(router.addRoute(route as RouteRecordRaw)) + }) + } + routeStore.setCurrentRemoveRoutes(removeRoutes) + // 动态路由生成并注册后,重新进入当前路由 + next({ + path: to.path, + query: to.query, + replace: true, + }) + } + } + else { + if (to.name !== 'login') { + next({ + name: 'login', + query: { + redirect: to.fullPath !== '/' ? to.fullPath : undefined, + }, + }) + } + else { + next() + } + } +}) + +router.afterEach((to, from) => { + const settingsStore = useSettingsStore() + const keepAliveStore = useKeepAliveStore() + settingsStore.settings.app.enableProgress && (isLoading.value = false) + // 设置页面 title + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + settingsStore.setTitle(to.meta.breadcrumbNeste?.at(-1)?.title ?? to.meta.title) + } + else { + settingsStore.setTitle(to.meta.title) + } + // 判断当前页面是否开启缓存,如果开启,则将当前页面的 name 信息存入 keep-alive 全局状态 + if (to.meta.cache) { + const componentName = to.matched.at(-1)?.components?.default.name + if (componentName) { + keepAliveStore.add(componentName) + } + else { + + } + } + // 判断离开页面是否开启缓存,如果开启,则根据缓存规则判断是否需要清空 keep-alive 全局状态里离开页面的 name 信息 + if (from.meta.cache) { + const componentName = from.matched.at(-1)?.components?.default.name + if (componentName) { + // 通过 meta.cache 判断针对哪些页面进行缓存 + switch (typeof from.meta.cache) { + case 'string': + if (from.meta.cache !== to.name) { + keepAliveStore.remove(componentName) + } + break + case 'object': + if (!from.meta.cache.includes(to.name as string)) { + keepAliveStore.remove(componentName) + } + break + } + // 如果进入的是 reload 页面,则也将离开页面的缓存清空 + if (to.name === 'reload') { + keepAliveStore.remove(componentName) + } + } + } + document.documentElement.scrollTop = 0 +}) + +export default router diff --git a/admin/src/router/modules/ai.menu.ts b/admin/src/router/modules/ai.menu.ts new file mode 100644 index 0000000..0e58ebc --- /dev/null +++ b/admin/src/router/modules/ai.menu.ts @@ -0,0 +1,56 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/ai', + component: Layout, + redirect: '/ai/chat-key-list', + name: 'AiMenu', + meta: { + title: '模型管理', + icon: 'sidebar-ai', + }, + children: [ + // { + // path: 'models', + // name: 'AiMenuModels', + // component: () => import('@/views/models/index.vue'), + // meta: { title: '模型设置', icon: 'menu-model', }, + // }, + { + path: 'keys', + name: 'AiMenuKeys', + component: () => import('@/views/models/key.vue'), + meta: { title: '卡池设置', icon: 'menu-key', }, + }, + { + path: 'model', + name: 'AiMenuInterface', + component: () => import('@/views/system/interface.vue'), + meta: { + title: '模型全局配置', + icon: 'menu-model', + }, + }, + // { + // path: 'chat-key-list', + // name: 'AiMenuChatKeyList', + // component: () => import('@/views/keys/list.vue'), + // meta: { + // title: 'key列表[废弃]', + // icon: 'menu-key', + // }, + // }, + { + path: 'model-pre', + name: 'AiMenuModelPre', + component: () => import('@/views/ai/globalPre.vue'), + meta: { title: '头部预设', icon: 'menu-header', }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/app.menu.ts b/admin/src/router/modules/app.menu.ts new file mode 100644 index 0000000..e90efbd --- /dev/null +++ b/admin/src/router/modules/app.menu.ts @@ -0,0 +1,38 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/app', + component: Layout, + redirect: '/app/classify', + name: 'AppMenu', + meta: { + title: '应用管理', + icon: 'sidebar-app', + }, + children: [ + { + path: 'classify', + name: 'AppMenuClassify', + component: () => import('@/views/app/classify.vue'), + meta: { + title: '分类列表', + icon: 'menu-type', + }, + }, + { + path: 'application', + name: 'Application', + component: () => import('@/views/app/application.vue'), + meta: { + title: '应用列表', + icon: 'menu-list', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/chat.menu.ts b/admin/src/router/modules/chat.menu.ts new file mode 100644 index 0000000..a3b5949 --- /dev/null +++ b/admin/src/router/modules/chat.menu.ts @@ -0,0 +1,47 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/chat', + component: Layout, + redirect: '/chat/chat', + name: 'chatMenu', + meta: { + title: '数据管理', + icon: 'sidebar-chat', + }, + children: [ + { + path: 'list', + name: 'chatMenuList', + component: () => import('@/views/chat/chat.vue'), + meta: { + title: 'GPT对话管理', + icon: 'menu-chat', + }, + }, + { + path: 'draw', + name: 'drawMenuList', + component: () => import('@/views/chat/draw.vue'), + meta: { + title: 'Dall-E绘画管理', + icon: 'menu-draw', + }, + }, + { + path: 'midjourney', + name: 'MjMenuList', + component: () => import('@/views/chat/midjourney.vue'), + meta: { + title: 'midjourney绘画管理', + icon: 'menu-midjourney', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/client.menu.ts b/admin/src/router/modules/client.menu.ts new file mode 100644 index 0000000..3ec8878 --- /dev/null +++ b/admin/src/router/modules/client.menu.ts @@ -0,0 +1,110 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/client', + component: Layout, + redirect: '/client/classify', + name: 'ClientMenu', + meta: { + title: '用户端设置', + icon: 'sidebar-client', + }, + children: [ + { + path: 'base', + name: 'ClientBaseConfig', + component: () => import('@/views/client/base.vue'), + meta: { + title: '基础配置', + icon: 'menu-baseconfig', + }, + }, + { + path: 'chatBox', + name: 'ClientChatBoxConfig', + component: () => import('@/views/client/chatBox.vue'), + meta: { + title: '九宫格预设', + icon: 'menu-baseconfig', + }, + }, + { + path: 'chatPre', + name: 'ClientChatPreConfig', + component: () => import('@/views/client/chatPre.vue'), + meta: { + title: '快问预设', + icon: 'menu-book', + }, + }, + // { + // path: 'copyRight', + // name: 'ClientCopyRightConfig', + // component: () => import('@/views/client/logo.vue'), + // meta: { + // title: '用户端logo', + // icon: 'menu-logo', + // }, + // }, + { + path: 'menu', + name: 'ClientMenuConfig', + component: () => import('@/views/client/menu.vue'), + meta: { + title: '动态菜单', + icon: 'menu-menu', + }, + }, + { + path: 'notice', + name: 'systemMenuNotice', + component: () => import('@/views/client/notice.vue'), + meta: { + title: '公告设置', + icon: 'menu-notice', + }, + }, + { + path: 'mind', + name: 'systemMenuMind', + component: () => import('@/views/client/mind.vue'), + meta: { + title: '思维导图', + icon: 'menu-mind', + }, + }, + { + path: 'visitor', + name: 'systemMenuVisitor', + component: () => import('@/views/client/visitor.vue'), + meta: { + title: '访客设置', + icon: 'menu-visitor', + }, + }, + { + path: 'signIn', + name: 'SignInMenu', + component: () => import('@/views/users/signIn.vue'), + meta: { + title: '签到奖励赠送', + icon: 'menu-signIn', + }, + }, + { + path: 'visible', + name: 'VisibleMenu', + component: () => import('@/views/client/visible.vue'), + meta: { + title: 'UI显示设置', + icon: 'menu-visible', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/login.menu.ts b/admin/src/router/modules/login.menu.ts new file mode 100644 index 0000000..a6470d3 --- /dev/null +++ b/admin/src/router/modules/login.menu.ts @@ -0,0 +1,47 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/login', + component: Layout, + redirect: '/login/email', + name: 'RegisterMenu', + meta: { + title: '注册管理', + icon: 'sidebar-register', + }, + children: [ + { + path: 'email', + name: 'systemMenuEmail', + component: () => import('@/views/system/email.vue'), + meta: { + title: '邮件注册登录', + icon: 'menu-email', + }, + }, + { + path: 'wechat', + name: 'systemMenuWechat', + component: () => import('@/views/system/wechat.vue'), + meta: { + title: '微信登录配置', + icon: 'menu-vx', + }, + }, + { + path: 'ali-phone', + name: 'AliPhoneMenu', + component: () => import('@/views/users/phone.vue'), + meta: { + title: '短信验证登录', + icon: 'menu-message', + }, + } + ], +} + +export default routes diff --git a/admin/src/router/modules/mj.menu.ts b/admin/src/router/modules/mj.menu.ts new file mode 100644 index 0000000..faf3ff2 --- /dev/null +++ b/admin/src/router/modules/mj.menu.ts @@ -0,0 +1,74 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/mj', + component: Layout, + redirect: '/mj/config', + name: 'MjMenu', + meta: { + title: 'MJ绘画管理', + icon: 'sidebar-mj', + }, + children: [ + { + path: 'draw', + name: 'mjDrawManage', + component: () => import('@/views/mjDraw/draw.vue'), + meta: { + title: '绘图历史', + icon: 'menu-history', + }, + }, + // { + // path: 'config', + // name: 'mjManage', + // component: () => import('@/views/mjDraw/index.vue'), + // meta: { + // title: '参数配置', + // icon: 'menu-params', + // }, + // }, + { + path: 'proxy', + name: 'mjProxyManage', + component: () => import('@/views/mjDraw/proxy.vue'), + meta: { + title: '参数配置', + icon: 'menu-proxy', + }, + }, + { + path: 'prompt', + name: 'mjPromptManage', + component: () => import('@/views/mjDraw/prompt.vue'), + meta: { + title: '功能预设', + icon: 'menu-preset', + }, + }, + { + path: 'prompts', + name: 'mjPromptsManage', + component: () => import('@/views/mjDraw/prompts.vue'), + meta: { + title: '提示词预设', + icon: 'menu-prompt', + }, + }, + { + path: 'fanyi', + name: 'BaiduFanyi', + component: () => import('@/views/system/baidufanyi.vue'), + meta: { + title: '百度翻译配置', + icon: 'menu-baidufanyi', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/order.menu.ts b/admin/src/router/modules/order.menu.ts new file mode 100644 index 0000000..92f256e --- /dev/null +++ b/admin/src/router/modules/order.menu.ts @@ -0,0 +1,29 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/order', + component: Layout, + redirect: '/order/list', + name: 'OrderMenu', + meta: { + title: '订单管理', + icon: 'sidebar-order', + }, + children: [ + { + path: 'list', + name: 'OrderMenuList', + component: () => import('@/views/order/index.vue'), + meta: { + title: '订单列表', + icon: 'menu-order', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/package.menu.ts b/admin/src/router/modules/package.menu.ts new file mode 100644 index 0000000..3aa2dd8 --- /dev/null +++ b/admin/src/router/modules/package.menu.ts @@ -0,0 +1,38 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/package', + component: Layout, + redirect: '/package/list', + name: 'packageMenu', + meta: { + title: '套餐管理', + icon: 'sidebar-package', + }, + children: [ + { + path: 'list', + name: 'packageMenuList', + component: () => import('@/views/package/package.vue'), + meta: { + title: '套餐设置', + icon: 'menu-package', + }, + }, + { + path: 'crami', + name: 'cramiMenuList', + component: () => import('@/views/package/crami.vue'), + meta: { + title: '卡密管理', + icon: 'menu-crami', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/pay.menu.ts b/admin/src/router/modules/pay.menu.ts new file mode 100644 index 0000000..1898b2b --- /dev/null +++ b/admin/src/router/modules/pay.menu.ts @@ -0,0 +1,57 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/pay', + component: Layout, + redirect: '/pay/hupijiao', + name: 'PayMenu', + meta: { + title: '支付管理', + icon: 'sidebar-pay', + }, + children: [ + { + path: 'wechat', + name: 'WechatConfig', + component: () => import('@/views/pay/wechat.vue'), + meta: { + title: '微信支付', + icon: 'menu-weixinpay', + }, + }, + { + path: 'epay', + name: 'EpayConfig', + component: () => import('@/views/pay/epay.vue'), + meta: { + title: '易支付', + icon: 'menu-yipay', + }, + }, + { + path: 'mpay', + name: 'MpayConfig', + component: () => import('@/views/pay/mpay.vue'), + meta: { + title: '码支付', + icon: 'menu-mapay', + }, + }, + { + path: 'hupi', + name: 'HupioConfig', + component: () => import('@/views/pay/hupijiao.vue'), + meta: { + title: '虎皮椒支付', + icon: 'menu-hupipay', + }, + }, + + ], +} + +export default routes diff --git a/admin/src/router/modules/sales.menu.ts b/admin/src/router/modules/sales.menu.ts new file mode 100644 index 0000000..1fba8c4 --- /dev/null +++ b/admin/src/router/modules/sales.menu.ts @@ -0,0 +1,56 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/sales', + component: Layout, + redirect: '/sales/config', + name: 'SalesMenu', + meta: { + title: '分销系统', + icon: 'sidebar-share', + }, + children: [ + { + path: 'config', + name: 'SalesBaseManage', + component: () => import('@/views/sales/base.vue'), + meta: { + title: '基础分销配置', + icon: 'menu-distribution', + }, + }, + { + path: 'salesUser', + name: 'SalesUserManage', + component: () => import('@/views/sales/salesUser.vue'), + meta: { + title: '佣金账户列表', + icon: 'menu-commission', + }, + }, + { + path: 'records', + name: 'SalesRecoredManage', + component: () => import('@/views/sales/records.vue'), + meta: { + title: '佣金分销明细', + icon: 'menu-records' + }, + }, + { + path: 'order', + name: 'SalesOrderManage', + component: () => import('@/views/sales/order.vue'), + meta: { + title: '提现工单管理', + icon: 'menu-tiixan' + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/secure.menu.ts b/admin/src/router/modules/secure.menu.ts new file mode 100644 index 0000000..b5ecd58 --- /dev/null +++ b/admin/src/router/modules/secure.menu.ts @@ -0,0 +1,65 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/secure', + component: Layout, + redirect: '/secure/sensitive-baidu', + name: 'SecureMenu', + meta: { + title: '风控管理', + icon: 'sidebar-secure', + }, + children: [ + { + path: 'sensitive-violation', + name: 'SensitiveViolationLog', + component: () => import('@/views/sensitive/violation.vue'), + meta: { + title: '违规检测记录', + icon: 'menu-weigui', + }, + }, + { + path: 'sensitive-baidu', + name: 'SensitiveBaiduyun', + component: () => import('@/views/sensitive/baiduSensitive.vue'), + meta: { + title: '百度云敏感词', + icon: 'menu-baiduyunminganci', + }, + }, + { + path: 'sensitive-builtIn', + name: 'SensitiveBuiltIn', + component: () => import('@/views/sensitive/builtIn.vue'), + meta: { + title: 'NineAi敏感词', + icon: 'menu-minganci', + }, + }, + { + path: 'sensitive-custom', + name: 'SensitiveCuston', + component: () => import('@/views/sensitive/custom.vue'), + meta: { + title: '自定义敏感词', + icon: 'menu-zidingyi', + }, + }, + { + path: 'auto-reply', + name: 'ReplyMenuList', + component: () => import('@/views/sensitive/autpReply.vue'), + meta: { + title: '自定义回复预设', + icon: 'menu-huifuyushe', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/sensitive.menu.ts b/admin/src/router/modules/sensitive.menu.ts new file mode 100644 index 0000000..4b2efc4 --- /dev/null +++ b/admin/src/router/modules/sensitive.menu.ts @@ -0,0 +1,36 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/sensitive', + component: Layout, + redirect: '/sensitive/list', + name: 'SensitiveMenu', + meta: { + title: '敏感词设置', + icon: 'sidebar-sensitive', + }, + children: [ + { + path: 'baidu', + name: 'SensitiveBaiduyun', + component: () => import('@/views/sensitive/baiduSensitive.vue'), + meta: { + title: '百度云敏感词', + }, + }, + { + path: 'list', + name: 'SensitiveCuston', + component: () => import('@/views/sensitive/index.vue'), + meta: { + title: '自定义敏感词', + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/modules/storage.menu.ts b/admin/src/router/modules/storage.menu.ts new file mode 100644 index 0000000..6efaba3 --- /dev/null +++ b/admin/src/router/modules/storage.menu.ts @@ -0,0 +1,55 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/storage', + component: Layout, + redirect: '/storage/config', + name: 'StorageMenu', + meta: { + title: '存储配置', + icon: 'sidebar-storage', + }, + children: [ + { + path: 'tencent', + name: 'StorageTencent', + component: () => import('@/views/storage/tencent.vue'), + meta: { + title: '腾讯云COS', + icon: 'menu-tengxuncos', + }, + }, + { + path: 'ali', + name: 'StorageAli', + component: () => import('@/views/storage/ali.vue'), + meta: { + title: '阿里云OSS', + icon: 'menu-alioss', + }, + }, + { + path: 'chevereto', + name: 'StorageChevereto', + component: () => import('@/views/storage/chevereto.vue'), + meta: { + title: 'chevereto图床', + icon: 'menu-chevereto' + }, + }, + // { + // path: 'other', + // name: 'OtherCos', + // component: () => import('@/views/storage/other.vue'), + // meta: { + // title: '三方开发API', + // }, + // }, + ], +} + +export default routes diff --git a/admin/src/router/modules/system.menu.ts b/admin/src/router/modules/system.menu.ts new file mode 100644 index 0000000..8c18cbc --- /dev/null +++ b/admin/src/router/modules/system.menu.ts @@ -0,0 +1,73 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/system', + component: Layout, + redirect: '/system/base', + name: 'systemMenu', + meta: { + title: '系统设置', + icon: 'sidebar-system', + }, + children: [ + { + path: 'base', + name: 'systemMenuBase', + component: () => import('@/views/system/base.vue'), + meta: { + title: '百度统计设置', + icon: 'menu-baidutongji', + }, + }, + // { + // path: 'fanyi', + // name: 'BaiduFanyi', + // component: () => import('@/views/system/baidufanyi.vue'), + // meta: { + // title: '百度翻译配置', + // icon: 'menu-baidufanyi', + // }, + // }, + + // { + // path: 'cos', + // name: 'systemMenuCos', + // component: () => import('@/views/system/cos.vue'), + // meta: { + // title: '存储设置', + // }, + // }, + // { + // path: 'secret', + // name: 'systemMenuSecret', + // component: () => import('@/views/system/secret.vue'), + // meta: { + // title: 'key池设置', + // }, + // }, + { + path: 'copyright', + name: 'copyrightConfig', + component: () => import('@/views/system/copyright.vue'), + meta: { + title: '后台版权信息', + icon: 'menu-copyright', + }, + }, + // { + // path: 'upgrade', + // name: 'upgradeConfig', + // component: () => import('@/views/system/upgrade.vue'), + // meta: { + // title: '迁移助手', + // icon: 'menu-qianyizhushou', + // }, + // }, + ], +} + +export default routes diff --git a/admin/src/router/modules/user.menu.ts b/admin/src/router/modules/user.menu.ts new file mode 100644 index 0000000..fd24bed --- /dev/null +++ b/admin/src/router/modules/user.menu.ts @@ -0,0 +1,47 @@ +import type { RouteRecordRaw } from 'vue-router' + +function Layout() { + return import('@/layouts/index.vue') +} + +const routes: RouteRecordRaw = { + path: '/user', + component: Layout, + redirect: '/user/list', + name: 'userMenu', + meta: { + title: '用户管理', + icon: 'sidebar-client', + }, + children: [ + { + path: 'list', + name: 'userMenuList', + component: () => import('@/views/users/index.vue'), + meta: { + title: '用户数据列表', + icon: 'menu-userlist' + }, + }, + { + path: 'account-log', + name: 'AccountLogMenu', + component: () => import('@/views/users/accountLog.vue'), + meta: { + title: '用户账户明细', + icon: 'menu-account' + }, + }, + { + path: 'register', + name: 'systemMenuRegister', + component: () => import('@/views/system/register.vue'), + meta: { + title: '用户注册设置', + icon: 'menu-register' + }, + }, + ], +} + +export default routes diff --git a/admin/src/router/routes.ts b/admin/src/router/routes.ts new file mode 100644 index 0000000..152e533 --- /dev/null +++ b/admin/src/router/routes.ts @@ -0,0 +1,132 @@ +import { setupLayouts } from 'virtual:meta-layouts' +import generatedRoutes from 'virtual:generated-pages' +import type { RouteRecordRaw } from 'vue-router' +import UserMenu from './modules/user.menu' +import SalesMenu from './modules/sales.menu' +import PackageMenu from './modules/package.menu' +import ChatMenu from './modules/chat.menu' +import OrderMenu from './modules/order.menu' +import AppMenu from './modules/app.menu' +import SystemMenu from './modules/system.menu' +import MjMenu from './modules/mj.menu' +import PayMenu from './modules/pay.menu' +import ClientMenu from './modules/client.menu' +import StorageMenu from './modules/storage.menu' +import SecureMenu from './modules/secure.menu' +import AiMenu from './modules/ai.menu' +import LoginMenu from './modules/login.menu' + +import type { Route } from '#/global' +import useSettingsStore from '@/store/modules/settings' +import Home from '@/views/index.vue' + +// 固定路由(默认路由) +const constantRoutes: RouteRecordRaw[] = [ + { + path: '/login', + name: 'login', + component: () => import('@/views/login.vue'), + meta: { + title: '登录', + }, + }, + { + path: '/:all(.*)*', + name: 'notFound', + component: () => import('@/views/[...all].vue'), + meta: { + title: '找不到页面', + }, + }, +] + +// 系统路由 +const systemRoutes: RouteRecordRaw[] = [ + { + path: '/', + component: () => import('@/layouts/index.vue'), + meta: { + title: () => useSettingsStore().settings.home.title, + breadcrumb: false, + }, + children: [ + { + path: '', + name: 'home', + component: Home, + meta: { + title: () => useSettingsStore().settings.home.title, + breadcrumb: false, + }, + }, + { + path: 'reload', + name: 'reload', + component: () => import('@/views/reload.vue'), + meta: { + title: '重新加载', + breadcrumb: false, + }, + }, + { + path: 'setting', + name: 'personalSetting', + component: () => import('@/views/personal/setting.vue'), + meta: { + title: '个人设置', + cache: 'personalEditPassword', + }, + }, + { + path: 'edit/password', + name: 'personalEditPassword', + component: () => import('@/views/personal/edit.password.vue'), + meta: { + title: '修改密码', + }, + }, + ], + }, +] + +// 动态路由(异步路由、导航栏路由) +const asyncRoutes: Route.recordMainRaw[] = [ + { + meta: { + title: '演示', + icon: 'sidebar-default', + }, + children: [ + UserMenu, + LoginMenu, + AiMenu, + ChatMenu, + OrderMenu, + PackageMenu, + AppMenu, + SalesMenu, + PayMenu, + MjMenu, + StorageMenu, + ClientMenu, + SecureMenu, + SystemMenu, + ], + }, +] + +const constantRoutesByFilesystem = generatedRoutes.filter((item) => { + return item.meta?.enabled !== false && item.meta?.constant === true +}) + +const asyncRoutesByFilesystem = setupLayouts(generatedRoutes.filter((item) => { + return item.meta?.enabled !== false && item.meta?.constant !== true && item.meta?.layout !== false +})) + +export { + constantRoutes, + systemRoutes, + asyncRoutes, + constantRoutesByFilesystem, + asyncRoutesByFilesystem, +} diff --git a/admin/src/settings.default.ts b/admin/src/settings.default.ts new file mode 100644 index 0000000..2807f5a --- /dev/null +++ b/admin/src/settings.default.ts @@ -0,0 +1,56 @@ +// 该文件为系统默认配置,请勿修改!!! + +import type { RecursiveRequired, Settings } from '#/global' + +const globalSettingsDefault: RecursiveRequired = { + app: { + colorScheme: 'light', + elementSize: 'default', + iconifyOfflineUse: false, + enablePermission: false, + enableProgress: true, + enableDynamicTitle: false, + routeBaseOn: 'frontend', + enableAppSetting: false, + }, + home: { + enable: true, + title: '主页', + }, + layout: { + enableMobileAdaptation: false, + }, + menu: { + baseOn: 'frontend', + menuMode: 'side', + switchMainMenuAndPageJump: false, + subMenuUniqueOpened: true, + subMenuCollapse: false, + enableSubMenuCollapseButton: false, + enableHotkeys: false, + }, + topbar: { + mode: 'static', + }, + toolbar: { + enableFullscreen: false, + enablePageReload: false, + enableColorScheme: false, + }, + breadcrumb: { + enable: true, + }, + navSearch: { + enable: true, + enableHotkeys: true, + }, + copyright: { + enable: true, + dates: '2020-2023', + company: 'Fantastic-admin', + website: 'https://hooray.gitee.io/fantastic-admin/', + beian: '', + }, +} + +export default globalSettingsDefault diff --git a/admin/src/settings.ts b/admin/src/settings.ts new file mode 100644 index 0000000..f47f1ed --- /dev/null +++ b/admin/src/settings.ts @@ -0,0 +1,57 @@ +import type { Settings } from '#/global' +import { atob, copyRight } from '@/constants/copyright' + +// 这是基础版演示源码里的自定义配置示例 +const globalSettings: Settings.all = { + app: { + enablePermission: false, + enableDynamicTitle: true, + enableAppSetting: false, + // colorScheme: 'dark', + colorScheme: 'light', + elementSize: 'default', + iconifyOfflineUse: false, + enableProgress: true, + routeBaseOn: 'frontend', + }, + layout: { + enableMobileAdaptation: true, + }, + menu: { + enableSubMenuCollapseButton: true, + enableHotkeys: true, + baseOn: 'frontend', + menuMode: 'single', + switchMainMenuAndPageJump: false, + subMenuUniqueOpened: true, + subMenuCollapse: false, + }, + topbar: { + mode: 'fixed', + }, + toolbar: { + enableFullscreen: true, + enablePageReload: true, + enableColorScheme: true, + }, + home: { + enable: true, + title: '首页', + }, + breadcrumb: { + enable: true, + }, + navSearch: { + enable: true, + enableHotkeys: true, + }, + copyright: { + enable: true, + dates: atob(copyRight.name), + company: atob(copyRight.qnum), + website: atob(copyRight.website), + beian: atob(copyRight.wex), + }, +} + +export default globalSettings diff --git a/admin/src/store/index.ts b/admin/src/store/index.ts new file mode 100644 index 0000000..a6e3624 --- /dev/null +++ b/admin/src/store/index.ts @@ -0,0 +1,3 @@ +const pinia = createPinia() + +export default pinia diff --git a/admin/src/store/modules/dashboard.ts b/admin/src/store/modules/dashboard.ts new file mode 100644 index 0000000..823bda1 --- /dev/null +++ b/admin/src/store/modules/dashboard.ts @@ -0,0 +1,20 @@ +import apiDashboard from '@/api/modules/dashboard' + +const useDashboardStore = defineStore( + 'dashboard', + () => { + const baseData = ref([]) + + async function getBaseData() { + const res = await apiDashboard.getBaseInfo() + console.log('res: ', res) + } + + return { + baseData, + getBaseData, + } + }, +) + +export default useDashboardStore diff --git a/admin/src/store/modules/keepAlive.ts b/admin/src/store/modules/keepAlive.ts new file mode 100644 index 0000000..444feb9 --- /dev/null +++ b/admin/src/store/modules/keepAlive.ts @@ -0,0 +1,42 @@ +const useKeepAliveStore = defineStore( + // 唯一ID + 'keepAlive', + () => { + const list = ref([]) + + function add(name: string | string[]) { + if (typeof name === 'string') { + !list.value.includes(name) && list.value.push(name) + } + else { + name.forEach((v) => { + v && !list.value.includes(v) && list.value.push(v) + }) + } + } + function remove(name: string | string[]) { + if (typeof name === 'string') { + list.value = list.value.filter((v) => { + return v !== name + }) + } + else { + list.value = list.value.filter((v) => { + return !name.includes(v) + }) + } + } + function clean() { + list.value = [] + } + + return { + list, + add, + remove, + clean, + } + }, +) + +export default useKeepAliveStore diff --git a/admin/src/store/modules/menu.ts b/admin/src/store/modules/menu.ts new file mode 100644 index 0000000..2d2d9c7 --- /dev/null +++ b/admin/src/store/modules/menu.ts @@ -0,0 +1,192 @@ +import { cloneDeep } from 'lodash-es' +import useSettingsStore from './settings' +import useUserStore from './user' +import useRouteStore from './route' +import { resolveRoutePath } from '@/utils' +import apiApp from '@/api/modules/app' +import menu from '@/menu' +import type { Menu } from '#/global' + +const useMenuStore = defineStore( + // 唯一ID + 'menu', + () => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + const routeStore = useRouteStore() + + const menus = ref([{ + meta: {}, + children: [], + }]) + const actived = ref(0) + + // 完整导航数据 + const allMenus = computed(() => { + let returnMenus: Menu.recordMainRaw[] = [{ + meta: {}, + children: [], + }] + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + if (settingsStore.settings.menu.menuMode === 'single') { + returnMenus[0].children = [] + routeStore.routes.forEach((item) => { + returnMenus[0].children?.push(...item.children as Menu.recordRaw[]) + }) + } + else { + returnMenus = routeStore.routes as Menu.recordMainRaw[] + } + } + else { + returnMenus = menus.value + } + return returnMenus + }) + // 次导航数据 + const sidebarMenus = computed(() => { + return allMenus.value.length > 0 + ? allMenus.value[actived.value].children + : [] + }) + + // 次导航第一层最深路径 + const sidebarMenusFirstDeepestPath = computed(() => { + return allMenus.value.length > 0 + ? getDeepestPath(sidebarMenus.value[0]) + : '/' + }) + function getDeepestPath(menu: Menu.recordRaw, rootPath = '') { + let retnPath = '' + if (menu.children) { + const item = menu.children.find(item => item.meta?.sidebar !== false) + if (item) { + retnPath = getDeepestPath(item, resolveRoutePath(rootPath, menu.path)) + } + else { + retnPath = getDeepestPath(menu.children[0], resolveRoutePath(rootPath, menu.path)) + } + } + else { + retnPath = resolveRoutePath(rootPath, menu.path) + } + return retnPath + } + // 默认展开的导航路径 + const defaultOpenedPaths = computed(() => { + let defaultOpenedPaths: string[] = [] + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + defaultOpenedPaths = getDefaultOpenedPaths(sidebarMenus.value) + } + return defaultOpenedPaths + }) + function getDefaultOpenedPaths(menus: Menu.recordRaw[], rootPath = '') { + const defaultOpenedPaths: string[] = [] + menus.forEach((item) => { + if (item.meta?.defaultOpened && item.children) { + defaultOpenedPaths.push(resolveRoutePath(rootPath, item.path)) + const childrenDefaultOpenedPaths = getDefaultOpenedPaths(item.children, resolveRoutePath(rootPath, item.path)) + if (childrenDefaultOpenedPaths.length > 0) { + defaultOpenedPaths.push(...childrenDefaultOpenedPaths) + } + } + }) + return defaultOpenedPaths + } + + // 判断是否有权限 + function hasPermission(permissions: string[], menu: Menu.recordMainRaw | Menu.recordRaw) { + let isAuth = false + if (menu.meta && menu.meta.auth) { + isAuth = permissions.some((auth) => { + if (typeof menu.meta?.auth === 'string') { + return menu.meta.auth !== '' ? menu.meta.auth === auth : true + } + else if (typeof menu.meta?.auth === 'object') { + return menu.meta.auth.length > 0 ? menu.meta.auth.includes(auth) : true + } + else { + return false + } + }) + } + else { + isAuth = true + } + return isAuth + } + // 根据权限过滤导航 + function filterAsyncMenus(menus: T, permissions: string[]): T { + const res: any = [] + menus.forEach((menu) => { + const tmpMenu = cloneDeep(menu) + if (hasPermission(permissions, tmpMenu)) { + if (tmpMenu.children) { + tmpMenu.children = filterAsyncMenus(tmpMenu.children, permissions) as Menu.recordRaw[] + tmpMenu.children.length && res.push(tmpMenu) + } + else { + res.push(tmpMenu) + } + } + }) + return res + } + // 生成导航(前端生成) + async function generateMenusAtFront() { + let accessedMenus + // 如果权限功能开启,则需要对导航数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + const permissions = await userStore.getPermissions() + accessedMenus = filterAsyncMenus(menu, permissions) + } + else { + accessedMenus = cloneDeep(menu) + } + menus.value = accessedMenus.filter(item => item.children.length !== 0) + } + // 生成导航(后端生成) + async function generateMenusAtBack() { + await apiApp.menuList().then(async (res) => { + let accessedMenus: Menu.recordMainRaw[] + // 如果权限功能开启,则需要对导航数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + const permissions = await userStore.getPermissions() + accessedMenus = filterAsyncMenus(res.data, permissions) + } + else { + accessedMenus = cloneDeep(res.data) + } + menus.value = accessedMenus.filter(item => item.children.length !== 0) + }).catch(() => {}) + } + // 切换主导航 + function setActived(data: number | string) { + if (typeof data === 'number') { + // 如果是 number 类型,则认为是主导航的索引 + actived.value = data + } + else { + // 如果是 string 类型,则认为是路由,需要查找对应的主导航索引 + const findIndex = allMenus.value.findIndex(item => item.children.some(r => data.indexOf(`${r.path}/`) === 0 || data === r.path)) + if (findIndex >= 0) { + actived.value = findIndex + } + } + } + + return { + menus, + actived, + allMenus, + sidebarMenus, + sidebarMenusFirstDeepestPath, + defaultOpenedPaths, + generateMenusAtFront, + generateMenusAtBack, + setActived, + } + }, +) + +export default useMenuStore diff --git a/admin/src/store/modules/route.ts b/admin/src/store/modules/route.ts new file mode 100644 index 0000000..d9a734d --- /dev/null +++ b/admin/src/store/modules/route.ts @@ -0,0 +1,250 @@ +import { cloneDeep } from 'lodash-es' +import type { RouteMeta, RouteRecordRaw } from 'vue-router' +import useSettingsStore from './settings' +import useUserStore from './user' +import { resolveRoutePath } from '@/utils' +import { systemRoutes } from '@/router/routes' +import apiApp from '@/api/modules/app' +import type { Route } from '#/global' + +const useRouteStore = defineStore( + // 唯一ID + 'route', + () => { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + + const isGenerate = ref(false) + const routesRaw = ref([]) + const filesystemRoutesRaw = ref([]) + const currentRemoveRoutes = ref([]) + + // 将多层嵌套路由处理成两层,保留顶层和最子层路由,中间层级将被拍平 + function flatAsyncRoutes(route: T): T { + if (route.children) { + route.children = flatAsyncRoutesRecursive(route.children, [{ + path: route.path, + title: route.meta?.title, + hide: !route.meta?.breadcrumb && route.meta?.breadcrumb === false, + }], route.path, route.meta?.auth) + } + return route + } + function flatAsyncRoutesRecursive(routes: RouteRecordRaw[], breadcrumb: Route.breadcrumb[] = [], baseUrl = '', baseAuth: RouteMeta['auth']): RouteRecordRaw[] { + const res: RouteRecordRaw[] = [] + routes.forEach((route) => { + if (route.children) { + const childrenBaseUrl = resolveRoutePath(baseUrl, route.path) + const childrenBaseAuth = baseAuth ?? route.meta?.auth + const tmpBreadcrumb = cloneDeep(breadcrumb) + tmpBreadcrumb.push({ + path: childrenBaseUrl, + title: route.meta?.title, + hide: !route.meta?.breadcrumb && route.meta?.breadcrumb === false, + }) + const tmpRoute = cloneDeep(route) + tmpRoute.path = childrenBaseUrl + if (!tmpRoute.meta) { + tmpRoute.meta = {} + } + tmpRoute.meta.auth = childrenBaseAuth + tmpRoute.meta.breadcrumbNeste = tmpBreadcrumb + delete tmpRoute.children + res.push(tmpRoute) + const childrenRoutes = flatAsyncRoutesRecursive(route.children, tmpBreadcrumb, childrenBaseUrl, childrenBaseAuth) + childrenRoutes.forEach((item) => { + // 如果 path 一样则覆盖,因为子路由的 path 可能设置为空,导致和父路由一样,直接注册会提示路由重复 + if (res.some(v => v.path === item.path)) { + res.forEach((v, i) => { + if (v.path === item.path) { + res[i] = item + } + }) + } + else { + res.push(item) + } + }) + } + else { + const tmpRoute = cloneDeep(route) + tmpRoute.path = resolveRoutePath(baseUrl, tmpRoute.path) + // 处理面包屑导航 + const tmpBreadcrumb = cloneDeep(breadcrumb) + tmpBreadcrumb.push({ + path: tmpRoute.path, + title: tmpRoute.meta?.title, + hide: !tmpRoute.meta?.breadcrumb && tmpRoute.meta?.breadcrumb === false, + }) + if (!tmpRoute.meta) { + tmpRoute.meta = {} + } + tmpRoute.meta.auth = baseAuth ?? tmpRoute.meta?.auth + tmpRoute.meta.breadcrumbNeste = tmpBreadcrumb + res.push(tmpRoute) + } + }) + return res + } + // 扁平化路由(将三级及以上路由数据拍平成二级) + const flatRoutes = computed(() => { + const settingsStore = useSettingsStore() + const returnRoutes: RouteRecordRaw[] = [] + if (routesRaw.value) { + if (settingsStore.settings.app.routeBaseOn !== 'filesystem') { + routesRaw.value.forEach((item) => { + const tmpRoutes = cloneDeep(item.children) as RouteRecordRaw[] + tmpRoutes.map((v) => { + if (!v.meta) { + v.meta = {} + } + v.meta.auth = item.meta?.auth ?? v.meta?.auth + return v + }) + returnRoutes.push(...tmpRoutes) + }) + returnRoutes.forEach(item => flatAsyncRoutes(item)) + } + else { + returnRoutes.push(...cloneDeep(filesystemRoutesRaw.value)) + } + } + return returnRoutes + }) + const flatSystemRoutes = computed(() => { + const routes = [...systemRoutes] + routes.forEach(item => flatAsyncRoutes(item)) + return routes + }) + + // 判断是否有权限 + function hasPermission(permissions: string[], route: Route.recordMainRaw | RouteRecordRaw) { + let isAuth = false + if (route.meta?.auth) { + isAuth = permissions.some((auth) => { + if (typeof route.meta?.auth === 'string') { + return route.meta.auth !== '' ? route.meta.auth === auth : true + } + else if (typeof route.meta?.auth === 'object') { + return route.meta.auth.length > 0 ? route.meta.auth.includes(auth) : true + } + else { + return false + } + }) + } + else { + isAuth = true + } + return isAuth + } + // 根据权限过滤路由 + function filterAsyncRoutes(routes: T, permissions: string[]): T { + const res: any = [] + routes.forEach((route) => { + if (hasPermission(permissions, route)) { + const tmpRoute = cloneDeep(route) + if (tmpRoute.children) { + tmpRoute.children = filterAsyncRoutes(tmpRoute.children, permissions) + tmpRoute.children.length && res.push(tmpRoute) + } + else { + res.push(tmpRoute) + } + } + }) + return res + } + const routes = computed(() => { + let returnRoutes: Route.recordMainRaw[] + // 如果权限功能开启,则需要对路由数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + returnRoutes = filterAsyncRoutes(routesRaw.value as any, userStore.permissions) + } + else { + returnRoutes = cloneDeep(routesRaw.value) as any + } + + return returnRoutes + }) + + // 根据权限动态生成路由(前端生成) + async function generateRoutesAtFront(asyncRoutes: Route.recordMainRaw[]) { + // 设置 routes 数据 + routesRaw.value = cloneDeep(asyncRoutes) as any + + if (settingsStore.settings.app.enablePermission) { + await userStore.getPermissions() + } + isGenerate.value = true + } + // 格式化后端路由数据 + function formatBackRoutes(routes: any, views = import.meta.glob('../../views/**/*.vue')): Route.recordMainRaw[] { + return routes.map((route: any) => { + switch (route.component) { + case 'Layout': + route.component = () => import('@/layouts/index.vue') + break + default: + if (route.component) { + route.component = views[`../../views/${route.component}`] + } + } + if (route.children) { + route.children = formatBackRoutes(route.children, views) + } + return route + }) + } + // 根据权限动态生成路由(后端获取) + async function generateRoutesAtBack() { + await apiApp.routeList().then(async (res) => { + // 设置 routes 数据 + routesRaw.value = formatBackRoutes(res.data) + if (settingsStore.settings.app.enablePermission) { + userStore.getPermissions() + } + isGenerate.value = true + }).catch(() => {}) + } + // 根据权限动态生成路由(文件系统生成) + async function generateRoutesAtFilesystem(asyncRoutes: RouteRecordRaw[]) { + // 设置 routes 数据 + filesystemRoutesRaw.value = cloneDeep(asyncRoutes) as any + // 如果权限功能开启,则需要对路由数据进行筛选过滤 + if (settingsStore.settings.app.enablePermission) { + await userStore.getPermissions() + } + isGenerate.value = true + } + // 记录 accessRoutes 路由,用于登出时删除路由 + function setCurrentRemoveRoutes(routes: Function[]) { + currentRemoveRoutes.value = routes + } + // 清空动态路由 + function removeRoutes() { + isGenerate.value = false + routesRaw.value = [] + filesystemRoutesRaw.value = [] + currentRemoveRoutes.value.forEach((removeRoute) => { + removeRoute() + }) + currentRemoveRoutes.value = [] + } + + return { + isGenerate, + routes, + currentRemoveRoutes, + flatRoutes, + flatSystemRoutes, + generateRoutesAtFront, + generateRoutesAtBack, + generateRoutesAtFilesystem, + setCurrentRemoveRoutes, + removeRoutes, + } + }, +) + +export default useRouteStore diff --git a/admin/src/store/modules/settings.ts b/admin/src/store/modules/settings.ts new file mode 100644 index 0000000..6d27bd8 --- /dev/null +++ b/admin/src/store/modules/settings.ts @@ -0,0 +1,123 @@ +import { defaultsDeep } from 'lodash-es' +import type { RouteMeta } from 'vue-router' +import type { RecursiveRequired, Settings } from '#/global' +import settingsCustom from '@/settings' +import settingsDefault from '@/settings.default' + +const useSettingsStore = defineStore( + // 唯一ID + 'settings', + () => { + const mergeSettings: RecursiveRequired = defaultsDeep(settingsCustom, settingsDefault) + const settings = ref(mergeSettings) + watch(() => settings.value.app.colorScheme, (val) => { + if (val === '') { + val = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' + } + switch (val) { + case 'dark': + document.documentElement.classList.add('dark') + break + case 'light': + document.documentElement.classList.remove('dark') + break + } + }, { + immediate: true, + }) + watch(() => settings.value.menu.menuMode, (val) => { + document.body.setAttribute('data-menu-mode', val) + }, { + immediate: true, + }) + + // 操作系统 + const os = ref<'mac' | 'windows' | 'linux' | 'other'>('other') + const agent = navigator.userAgent.toLowerCase() + switch (true) { + case agent.includes('mac os'): + os.value = 'mac' + break + case agent.includes('windows'): + os.value = 'windows' + break + case agent.includes('linux'): + os.value = 'linux' + break + } + + // 页面标题 + const title = ref() + // 设置网页标题 + function setTitle(_title: RouteMeta['title']) { + title.value = _title + } + + // 显示模式 + const mode = ref<'pc' | 'mobile'>('pc') + // 设置访问模式 + function setMode(width: number) { + if (settings.value.layout.enableMobileAdaptation) { + // 先判断 UA 是否为移动端设备(手机&平板) + if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { + mode.value = 'mobile' + } + else { + // 如果为桌面设备,再根据页面宽度判断是否需要切换为移动端展示 + mode.value = width < 992 ? 'mobile' : 'pc' + } + } + else { + mode.value = 'pc' + } + } + + // 侧边栏是否收起(用于记录 pc 模式下最后的状态) + const subMenuCollapseLastStatus = ref(mergeSettings.menu.subMenuCollapse) + // 切换侧边栏导航展开/收起 + function toggleSidebarCollapse() { + settings.value.menu.subMenuCollapse = !settings.value.menu.subMenuCollapse + if (mode.value === 'pc') { + subMenuCollapseLastStatus.value = !subMenuCollapseLastStatus.value + } + } + + watch(mode, (val) => { + switch (val) { + case 'pc': + settings.value.menu.subMenuCollapse = subMenuCollapseLastStatus.value + break + case 'mobile': + settings.value.menu.subMenuCollapse = true + break + } + document.body.setAttribute('data-mode', val) + }, { + immediate: true, + }) + + // 设置主题颜色模式 + function setColorScheme(color: Required['colorScheme']) { + settings.value.app.colorScheme = color + } + // 更新应用配置 + function updateSettings(data: Settings.all) { + settings.value = defaultsDeep(data, settings.value) + } + + return { + settings, + os, + title, + setTitle, + mode, + setMode, + subMenuCollapseLastStatus, + toggleSidebarCollapse, + setColorScheme, + updateSettings, + } + }, +) + +export default useSettingsStore diff --git a/admin/src/store/modules/user.ts b/admin/src/store/modules/user.ts new file mode 100644 index 0000000..58363fb --- /dev/null +++ b/admin/src/store/modules/user.ts @@ -0,0 +1,99 @@ +import { ElMessage } from 'element-plus' +import useRouteStore from './route' +import useMenuStore from './menu' +import apiUser from '@/api/modules/user' + +const useUserStore = defineStore( + // 唯一ID + 'user', + () => { + const routeStore = useRouteStore() + const menuStore = useMenuStore() + + const username = ref(localStorage.username ?? '') + const token = ref(localStorage.token ?? '') + const failure_time = ref(localStorage.failure_time ?? '') + const permissions = ref([]) + const isLogin = computed(() => { + return token.value + }) + + // 登录 + async function login(data: { + username: string + password: string + }) { + // 通过 mock 进行登录 + const res = await apiUser.login(data) + // localStorage.setItem('username', res.data.username) + localStorage.setItem('token', res.data) + // localStorage.setItem('failure_time', res.data.failure_time) + // username.value = res.data.username + token.value = res.data + await getInfo() + // failure_time.value = res.data.failure_time + } + // 登出 + async function logout() { + localStorage.removeItem('username') + localStorage.removeItem('token') + localStorage.removeItem('failure_time') + username.value = '' + token.value = '' + failure_time.value = '' + routeStore.removeRoutes() + menuStore.setActived(0) + } + + async function getInfo() { + const res = await apiUser.getInfo() + const { userInfo } = res.data + localStorage.setItem('username', userInfo.username) + const { role } = userInfo + username.value = userInfo.username + if (!['admin', 'super'].includes(role)) { + ElMessage.error('您没有权限访问该系统!!!') + await logout() + } + } + + // 获取我的权限 + async function getPermissions() { + // 通过 mock 获取权限 + const res = await apiUser.permission() + const { userInfo } = res.data + const { username: name } = userInfo + localStorage.setItem('username', name) + username.value = name + + permissions.value = [ + 'permission.browse', + 'permission.create', + 'permission.edit', + 'permission.remove', + ] + return permissions.value + } + // 修改密码 + async function editPassword(data: { + password: string + newpassword: string + }) { + await apiUser.passwordEdit(data) + } + + return { + username, + token, + permissions, + isLogin, + login, + logout, + getInfo, + getPermissions, + editPassword, + } + }, +) + +export default useUserStore diff --git a/admin/src/types/auto-imports.d.ts b/admin/src/types/auto-imports.d.ts new file mode 100644 index 0000000..ec76383 --- /dev/null +++ b/admin/src/types/auto-imports.d.ts @@ -0,0 +1,86 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const createPinia: typeof import('pinia')['createPinia'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const defineStore: typeof import('pinia')['defineStore'] + const effectScope: typeof import('vue')['effectScope'] + const getActivePinia: typeof import('pinia')['getActivePinia'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const mapActions: typeof import('pinia')['mapActions'] + const mapGetters: typeof import('pinia')['mapGetters'] + const mapState: typeof import('pinia')['mapState'] + const mapStores: typeof import('pinia')['mapStores'] + const mapWritableState: typeof import('pinia')['mapWritableState'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const setActivePinia: typeof import('pinia')['setActivePinia'] + const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const storeToRefs: typeof import('pinia')['storeToRefs'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useAuth: typeof import('../utils/composables/useAuth')['default'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useGlobalProperties: typeof import('../utils/composables/useGlobalProperties')['default'] + const useLink: typeof import('vue-router')['useLink'] + const useMainPage: typeof import('../utils/composables/useMainPage')['default'] + const useMenu: typeof import('../utils/composables/useMenu')['default'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useSlots: typeof import('vue')['useSlots'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' + import('vue') +} diff --git a/admin/src/types/components.d.ts b/admin/src/types/components.d.ts new file mode 100644 index 0000000..c27dc71 --- /dev/null +++ b/admin/src/types/components.d.ts @@ -0,0 +1,32 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +import '@vue/runtime-core' + +export {} + +declare module '@vue/runtime-core' { + export interface GlobalComponents { + Auth: typeof import('./../components/Auth/index.vue')['default'] + AuthAll: typeof import('./../components/AuthAll/index.vue')['default'] + Copyright: typeof import('./../components/Copyright/index.vue')['default'] + FileUpload: typeof import('./../components/FileUpload/index.vue')['default'] + FixedActionBar: typeof import('./../components/FixedActionBar/index.vue')['default'] + IconifyIcon: typeof import('./../components/IconifyIcon/index.vue')['default'] + ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default'] + ImagesUpload: typeof import('./../components/ImagesUpload/index.vue')['default'] + ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default'] + NotAllowed: typeof import('./../components/NotAllowed/index.vue')['default'] + PageHeader: typeof import('./../components/PageHeader/index.vue')['default'] + PageMain: typeof import('./../components/PageMain/index.vue')['default'] + PcasCascader: typeof import('./../components/PcasCascader/index.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + SearchBar: typeof import('./../components/SearchBar/index.vue')['default'] + SvgIcon: typeof import('./../components/SvgIcon/index.vue')['default'] + SystemInfo: typeof import('./../components/SystemInfo/index.vue')['default'] + Trend: typeof import('./../components/Trend/index.vue')['default'] + } +} diff --git a/admin/src/types/global.d.ts b/admin/src/types/global.d.ts new file mode 100644 index 0000000..072c3aa --- /dev/null +++ b/admin/src/types/global.d.ts @@ -0,0 +1,268 @@ +import type { RouteRecordRaw } from 'vue-router' + +type RecursiveRequired = { + [P in keyof T]-?: RecursiveRequired +} +type RecursivePartial = { + [P in keyof T]?: RecursivePartial +} + +declare namespace Settings { + interface app { + /** + * 颜色方案 + * @默认值 `''` 跟随系统 + * @可选值 `'light'` 明亮模式 + * @可选值 `'dark'` 暗黑模式 + */ + colorScheme?: '' | 'light' | 'dark' + /** + * Element Plus 组件默认尺寸 + * @默认值 `'default'` 默认 + * @可选值 `'large'` 大号 + * @可选值 `'small'` 小号 + */ + elementSize?: 'default' | 'large' | 'small' + /** + * 是否将 iconify 图标集中的 Element Plus 图标下载到本地,以便在离线环境下使用 + * @默认值 `false` + */ + iconifyOfflineUse?: boolean + /** + * 是否开启权限功能 + * @默认值 `false` + */ + enablePermission?: boolean + /** + * 是否开启载入进度条 + * @默认值 `true` + */ + enableProgress?: boolean + /** + * 是否开启动态标题 + * @默认值 `false` + */ + enableDynamicTitle?: boolean + /** + * 路由数据来源 + * @默认值 `'frontend'` 前端 + * @可选值 `'backend'` 后端 + * @可选值 `'filesystem'` 文件系统 + */ + routeBaseOn?: 'frontend' | 'backend' | 'filesystem' + /** + * 是否开启应用配置,强烈建议在生产环境中关闭 + * @默认值 `false` + */ + enableAppSetting?: boolean + } + interface home { + /** + * 是否开启主页页面 + * @默认值 `true` + */ + enable?: boolean + /** + * 主页名称 + * @默认值 `'主页'` + */ + title?: string + } + interface layout { + /** + * 是否开启移动端适配,开启后当页面宽度小于 992px 时自动切换为移动端展示 + * @默认值 `false` + */ + enableMobileAdaptation?: boolean + } + interface menu { + /** + * 导航栏数据来源,当 `app.routeBaseOn: 'filesystem'` 时生效 + * @默认值 `'frontend'` 前端 + * @可选值 `'backend'` 后端 + */ + baseOn?: 'frontend' | 'backend' + /** + * 导航栏模式 + * @默认值 `'side'` 侧边栏模式(有主导航) + * @可选值 `'head'` 顶部模式 + * @可选值 `'single'` 侧边栏模式(无主导航) + */ + menuMode?: 'side' | 'head' | 'single' + /** + * 切换主导航是否跳转页面 + * @默认值 `false` + */ + switchMainMenuAndPageJump?: boolean + /** + * 次导航是否只保持一个子项的展开 + * @默认值 `true` + */ + subMenuUniqueOpened?: boolean + /** + * 次导航是否收起 + * @默认值 `false` + */ + subMenuCollapse?: boolean + /** + * 是否开启次导航的展开/收起按钮 + * @默认值 `false` + */ + enableSubMenuCollapseButton?: boolean + /** + * 是否开启主导航切换快捷键 + * @默认值 `false` + */ + enableHotkeys?: boolean + } + interface topbar { + /** + * 模式 + * @默认值 `'static'` 静止,跟随页面滚动 + * @可选值 `'fixed'` 固定,不跟随页面滚动,始终固定在顶部 + * @可选值 `'sticky'` 粘性,页面往下滚动时隐藏,往上滚动时显示 + */ + mode?: 'static' | 'fixed' | 'sticky' + } + interface toolbar { + /** + * 是否开启全屏 + * @默认值 `false` + */ + enableFullscreen?: boolean + /** + * 是否开启页面刷新 + * @默认值 `false` + */ + enablePageReload?: boolean + /** + * 是否开启颜色主题 + * @默认值 `false` + */ + enableColorScheme?: boolean + } + interface breadcrumb { + /** + * 是否开启面包屑导航 + * @默认值 `true` + */ + enable?: boolean + } + interface navSearch { + /** + * 是否开启导航搜索 + * @默认值 `true` + */ + enable?: boolean + /** + * 是否开启导航搜索快捷键 + * @默认值 `true` + */ + enableHotkeys?: boolean + } + interface copyright { + /** + * 是否开启底部版权,同时在路由 meta 对象里可以单独设置某个路由是否显示底部版权信息 + * @默认值 `true` + */ + enable?: boolean + /** + * 网站运行日期 + * @默认值 `'2020-2022'` + */ + dates?: string + /** + * 公司名称 + * @默认值 `'Fantastic-admin'` + */ + company?: string + /** + * 网站地址 + * @默认值 `'https://hooray.gitee.io/fantastic-admin/'` + */ + website?: string + /** + * 网站备案号 + * @默认值 `''` + */ + beian?: string + } + interface all { + /** 应用设置 */ + app?: app + /** 主页设置 */ + home?: home + /** 布局设置 */ + layout?: layout + /** 导航栏设置 */ + menu?: menu + /** 顶栏设置 */ + topbar?: topbar + /** 工具栏设置 */ + toolbar?: toolbar + /** 面包屑导航设置 */ + breadcrumb?: breadcrumb + /** 导航搜索设置 */ + navSearch?: navSearch + /** 底部版权设置 */ + copyright?: copyright + } +} + +declare module 'vue-router' { + interface RouteMeta { + title?: string | Function + i18n?: string + icon?: string + activeIcon?: string + defaultOpened?: boolean + auth?: string | string[] + sidebar?: boolean + breadcrumb?: boolean + activeMenu?: string + cache?: boolean | string | string[] + link?: string + breadcrumbNeste?: Route.breadcrumb[] + } +} + +declare namespace Route { + interface recordMainRaw { + meta?: { + title?: string | Function + icon?: string + auth?: string | string[] + } + children: RouteRecordRaw[] + } + interface breadcrumb { + path: string + title?: string | Function + hide: boolean + } +} + +declare namespace Menu { + /** 原始 */ + interface recordRaw { + path?: string + meta?: { + title?: string + icon?: string + defaultOpened?: boolean + auth?: string | string[] + sidebar?: boolean + link?: string + } + children?: recordRaw[] + } + /** 主导航 */ + interface recordMainRaw { + meta?: { + title?: string + icon?: string + auth?: string | string[] + } + children: recordRaw[] + } +} diff --git a/admin/src/types/shims.d.ts b/admin/src/types/shims.d.ts new file mode 100644 index 0000000..e5bfd0b --- /dev/null +++ b/admin/src/types/shims.d.ts @@ -0,0 +1,20 @@ +declare interface Window { + webkitDevicePixelRatio: any + mozDevicePixelRatio: any +} + +declare module '*.vue' { + import { type DefineComponent } from 'vue' + + const component: DefineComponent<{}, {}, any> + export default component +} + +declare const __SYSTEM_INFO__: { + pkg: { + version: string + dependencies: Recordable + devDependencies: Recordable + } + lastBuildTime: string +} diff --git a/admin/src/utils/composables/useAuth.ts b/admin/src/utils/composables/useAuth.ts new file mode 100644 index 0000000..76a3f8b --- /dev/null +++ b/admin/src/utils/composables/useAuth.ts @@ -0,0 +1,35 @@ +import useSettingsStore from '@/store/modules/settings' +import useUserStore from '@/store/modules/user' + +export default function useAuth() { + function hasPermission(permission: string) { + const settingsStore = useSettingsStore() + const userStore = useUserStore() + if (settingsStore.settings.app.enablePermission) { + return userStore.permissions.includes(permission) + } + else { + return true + } + } + + function auth(value: string | string[]) { + let auth + if (typeof value === 'string') { + auth = value !== '' ? hasPermission(value) : true + } + else { + auth = value.length > 0 ? value.some(item => hasPermission(item)) : true + } + return auth + } + + function authAll(value: string[]) { + return value.length > 0 ? value.every(item => hasPermission(item)) : true + } + + return { + auth, + authAll, + } +} diff --git a/admin/src/utils/composables/useGlobalProperties.ts b/admin/src/utils/composables/useGlobalProperties.ts new file mode 100644 index 0000000..8cb57df --- /dev/null +++ b/admin/src/utils/composables/useGlobalProperties.ts @@ -0,0 +1,6 @@ +import type { ComponentInternalInstance } from 'vue' + +export default function useGlobalProperties() { + const { appContext } = getCurrentInstance() as ComponentInternalInstance + return appContext.config.globalProperties +} diff --git a/admin/src/utils/composables/useMainPage.ts b/admin/src/utils/composables/useMainPage.ts new file mode 100644 index 0000000..3ccb739 --- /dev/null +++ b/admin/src/utils/composables/useMainPage.ts @@ -0,0 +1,13 @@ +import router from '@/router' + +export default function useMainPage() { + function reload() { + router.push({ + name: 'reload', + }) + } + + return { + reload, + } +} diff --git a/admin/src/utils/composables/useMenu.ts b/admin/src/utils/composables/useMenu.ts new file mode 100644 index 0000000..d381281 --- /dev/null +++ b/admin/src/utils/composables/useMenu.ts @@ -0,0 +1,19 @@ +import router from '@/router' +import useSettingsStore from '@/store/modules/settings' +import useMenuStore from '@/store/modules/menu' + +export default function useMenu() { + const settingsStore = useSettingsStore() + const menuStore = useMenuStore() + + function switchTo(index: number | string) { + menuStore.setActived(index) + if (settingsStore.settings.menu.switchMainMenuAndPageJump) { + router.push(menuStore.sidebarMenusFirstDeepestPath) + } + } + + return { + switchTo, + } +} diff --git a/admin/src/utils/dayjs.ts b/admin/src/utils/dayjs.ts new file mode 100644 index 0000000..37bf2f2 --- /dev/null +++ b/admin/src/utils/dayjs.ts @@ -0,0 +1,6 @@ +import dayjs from 'dayjs' +import 'dayjs/locale/zh-cn' + +dayjs.locale('zh-cn') + +export default dayjs diff --git a/admin/src/utils/directive.ts b/admin/src/utils/directive.ts new file mode 100644 index 0000000..bbd2481 --- /dev/null +++ b/admin/src/utils/directive.ts @@ -0,0 +1,19 @@ +import type { App } from 'vue' + +export default function directive(app: App) { + // 注册 v-auth 和 v-auth-all 指令 + app.directive('auth', { + mounted: (el, binding) => { + if (!useAuth().auth(binding.value)) { + el.remove() + } + }, + }) + app.directive('auth-all', { + mounted: (el, binding) => { + if (!useAuth().authAll(binding.value)) { + el.remove() + } + }, + }) +} diff --git a/admin/src/utils/eventBus.ts b/admin/src/utils/eventBus.ts new file mode 100644 index 0000000..9ea0600 --- /dev/null +++ b/admin/src/utils/eventBus.ts @@ -0,0 +1,3 @@ +import mitt from 'mitt' + +export default mitt() diff --git a/admin/src/utils/index.ts b/admin/src/utils/index.ts new file mode 100644 index 0000000..a2bd002 --- /dev/null +++ b/admin/src/utils/index.ts @@ -0,0 +1,5 @@ +import path from 'path-browserify' + +export function resolveRoutePath(basePath: string, routePath?: string) { + return basePath ? path.resolve(basePath, routePath ?? '') : routePath ?? '' +} diff --git a/admin/src/utils/system.copyright.ts b/admin/src/utils/system.copyright.ts new file mode 100644 index 0000000..2423656 --- /dev/null +++ b/admin/src/utils/system.copyright.ts @@ -0,0 +1,15 @@ +/* eslint-disable no-console */ +// 请勿删除 +if (import.meta.env.PROD) { + const copyright_common_style = 'font-size: 14px; margin-bottom: 2px; padding: 6px 8px; color: #fff;' + const copyright_main_style = `${copyright_common_style} background: #e24329;` + const copyright_sub_style = `${copyright_common_style} background: #707070;` + // if ((navigator.language).toLowerCase() === 'zh-cn') { + // console.info('%c由%cNine Ai%c驱动', copyright_sub_style, copyright_main_style, copyright_sub_style, '\nhttps://ai.jiangly.com') + // } + // else { + // console.info('%cPowered by%cNine Ai', copyright_sub_style, copyright_main_style, '\nhttps://ai.jiangly.com') + // } +} + +export {} diff --git a/admin/src/utils/utcformatTime.ts b/admin/src/utils/utcformatTime.ts new file mode 100644 index 0000000..5a0eb57 --- /dev/null +++ b/admin/src/utils/utcformatTime.ts @@ -0,0 +1,14 @@ +export function utcToShanghaiTime(utcTime: string, format = 'YYYY-MM-DD hh:mm:ss'): string { + const date = new Date(utcTime) + const shanghaiTime = date.getTime() + const shanghaiDate = new Date(shanghaiTime) + + let result = format.replace('YYYY', shanghaiDate.getFullYear().toString()) + result = result.replace('MM', (`0${shanghaiDate.getMonth() + 1}`).slice(-2)) + result = result.replace('DD', (`0${shanghaiDate.getDate()}`).slice(-2)) + result = result.replace('hh', (`0${shanghaiDate.getHours()}`).slice(-2)) + result = result.replace('mm', (`0${shanghaiDate.getMinutes()}`).slice(-2)) + result = result.replace('ss', (`0${shanghaiDate.getSeconds()}`).slice(-2)) + + return result +} diff --git a/admin/src/views/[...all].vue b/admin/src/views/[...all].vue new file mode 100644 index 0000000..d3413b6 --- /dev/null +++ b/admin/src/views/[...all].vue @@ -0,0 +1,79 @@ + +name: notFound +meta: + title: 找不到页面 + constant: true + layout: false + + + + + + + diff --git a/admin/src/views/ai/globalPre.vue b/admin/src/views/ai/globalPre.vue new file mode 100644 index 0000000..75adf34 --- /dev/null +++ b/admin/src/views/ai/globalPre.vue @@ -0,0 +1,82 @@ + +meta: + title: 全局预设 + + + + + diff --git a/admin/src/views/app/application.vue b/admin/src/views/app/application.vue new file mode 100644 index 0000000..b390e76 --- /dev/null +++ b/admin/src/views/app/application.vue @@ -0,0 +1,399 @@ + +meta: + title: 应用管理 + + + + + diff --git a/admin/src/views/app/classify.vue b/admin/src/views/app/classify.vue new file mode 100644 index 0000000..8f6778a --- /dev/null +++ b/admin/src/views/app/classify.vue @@ -0,0 +1,276 @@ + +meta: + title: App分类管理 + + + + + diff --git a/admin/src/views/chat/chat.vue b/admin/src/views/chat/chat.vue new file mode 100644 index 0000000..14c9bd1 --- /dev/null +++ b/admin/src/views/chat/chat.vue @@ -0,0 +1,179 @@ + +meta: + title: 对话管理 + + + + + + + diff --git a/admin/src/views/chat/draw.vue b/admin/src/views/chat/draw.vue new file mode 100644 index 0000000..dfea1fd --- /dev/null +++ b/admin/src/views/chat/draw.vue @@ -0,0 +1,189 @@ + +meta: + title: Dall-E绘画管理 + + + + + + + diff --git a/admin/src/views/chat/midjourney.vue b/admin/src/views/chat/midjourney.vue new file mode 100644 index 0000000..c908679 --- /dev/null +++ b/admin/src/views/chat/midjourney.vue @@ -0,0 +1,226 @@ + +meta: + title: MJ绘画管理 + + + + + + + diff --git a/admin/src/views/client/base.vue b/admin/src/views/client/base.vue new file mode 100644 index 0000000..4db762a --- /dev/null +++ b/admin/src/views/client/base.vue @@ -0,0 +1,200 @@ + +meta: + title: 基础设置 + + + + + diff --git a/admin/src/views/client/chatBox.vue b/admin/src/views/client/chatBox.vue new file mode 100644 index 0000000..fb20e6c --- /dev/null +++ b/admin/src/views/client/chatBox.vue @@ -0,0 +1,387 @@ + +meta: + title: 九宫格预设分类 + + + + + + + + diff --git a/admin/src/views/client/chatPre.vue b/admin/src/views/client/chatPre.vue new file mode 100644 index 0000000..61e1953 --- /dev/null +++ b/admin/src/views/client/chatPre.vue @@ -0,0 +1,367 @@ + +meta: + title: 九宫格预设分类 + + + + + + + diff --git a/admin/src/views/client/logo.vue b/admin/src/views/client/logo.vue new file mode 100644 index 0000000..7d2b6ea --- /dev/null +++ b/admin/src/views/client/logo.vue @@ -0,0 +1,157 @@ + +meta: + title: 动态菜单 + + + + + diff --git a/admin/src/views/client/menu.vue b/admin/src/views/client/menu.vue new file mode 100644 index 0000000..951466c --- /dev/null +++ b/admin/src/views/client/menu.vue @@ -0,0 +1,308 @@ + +meta: + title: 动态菜单 + + + + + diff --git a/admin/src/views/client/mind.vue b/admin/src/views/client/mind.vue new file mode 100644 index 0000000..b472721 --- /dev/null +++ b/admin/src/views/client/mind.vue @@ -0,0 +1,88 @@ + +meta: + title: 思维导图 + + + + + diff --git a/admin/src/views/client/notice.vue b/admin/src/views/client/notice.vue new file mode 100644 index 0000000..b17c473 --- /dev/null +++ b/admin/src/views/client/notice.vue @@ -0,0 +1,144 @@ + +meta: + title: 公告设置 + + + + + diff --git a/admin/src/views/client/visible.vue b/admin/src/views/client/visible.vue new file mode 100644 index 0000000..c59f850 --- /dev/null +++ b/admin/src/views/client/visible.vue @@ -0,0 +1,115 @@ + +meta: + title: 显示设置 + + + + + diff --git a/admin/src/views/client/visitor.vue b/admin/src/views/client/visitor.vue new file mode 100644 index 0000000..a092297 --- /dev/null +++ b/admin/src/views/client/visitor.vue @@ -0,0 +1,101 @@ + +meta: + title: 访客模式设置 + + + + + diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue new file mode 100644 index 0000000..772f9f5 --- /dev/null +++ b/admin/src/views/index.vue @@ -0,0 +1,428 @@ + +name: home +meta: + title: 主页 + + + + + + + diff --git a/admin/src/views/keys/list.vue b/admin/src/views/keys/list.vue new file mode 100644 index 0000000..595977b --- /dev/null +++ b/admin/src/views/keys/list.vue @@ -0,0 +1,418 @@ + +meta: + title: key列表 + + + + + diff --git a/admin/src/views/keys/whiteList.vue b/admin/src/views/keys/whiteList.vue new file mode 100644 index 0000000..838d66a --- /dev/null +++ b/admin/src/views/keys/whiteList.vue @@ -0,0 +1,201 @@ + +meta: + title: 开放白名单 + + + + + diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue new file mode 100644 index 0000000..78b71b4 --- /dev/null +++ b/admin/src/views/login.vue @@ -0,0 +1,490 @@ + +meta: + title: 登录 + constant: true + layout: false + + + + + + + diff --git a/admin/src/views/mjDraw/draw.vue b/admin/src/views/mjDraw/draw.vue new file mode 100644 index 0000000..2850f64 --- /dev/null +++ b/admin/src/views/mjDraw/draw.vue @@ -0,0 +1,314 @@ + +meta: + title: key列表 + + + + + + + diff --git a/admin/src/views/mjDraw/index.vue b/admin/src/views/mjDraw/index.vue new file mode 100644 index 0000000..f4d98da --- /dev/null +++ b/admin/src/views/mjDraw/index.vue @@ -0,0 +1,139 @@ + +meta: + title: MJ设置 + + + + + diff --git a/admin/src/views/mjDraw/prompt.vue b/admin/src/views/mjDraw/prompt.vue new file mode 100644 index 0000000..69436ff --- /dev/null +++ b/admin/src/views/mjDraw/prompt.vue @@ -0,0 +1,86 @@ + +meta: + title: 自定义预设 + + + + + diff --git a/admin/src/views/mjDraw/prompts.vue b/admin/src/views/mjDraw/prompts.vue new file mode 100644 index 0000000..01c2723 --- /dev/null +++ b/admin/src/views/mjDraw/prompts.vue @@ -0,0 +1,250 @@ + +meta: + title: 模型列表 + + + + + + + + diff --git a/admin/src/views/mjDraw/proxy.vue b/admin/src/views/mjDraw/proxy.vue new file mode 100644 index 0000000..c81a972 --- /dev/null +++ b/admin/src/views/mjDraw/proxy.vue @@ -0,0 +1,287 @@ + +meta: + title: MJ设置 + + + + + diff --git a/admin/src/views/models/index.vue b/admin/src/views/models/index.vue new file mode 100644 index 0000000..3c50fc8 --- /dev/null +++ b/admin/src/views/models/index.vue @@ -0,0 +1,500 @@ + +meta: + title: 模型列表 + + + + + diff --git a/admin/src/views/models/key.vue b/admin/src/views/models/key.vue new file mode 100644 index 0000000..aef812d --- /dev/null +++ b/admin/src/views/models/key.vue @@ -0,0 +1,847 @@ + +meta: + title: 模型列表 + + + + + diff --git a/admin/src/views/order/index.vue b/admin/src/views/order/index.vue new file mode 100644 index 0000000..44a01b5 --- /dev/null +++ b/admin/src/views/order/index.vue @@ -0,0 +1,251 @@ + +meta: + title: 对话管理 + + + + + + + diff --git a/admin/src/views/package/crami.vue b/admin/src/views/package/crami.vue new file mode 100644 index 0000000..f10effd --- /dev/null +++ b/admin/src/views/package/crami.vue @@ -0,0 +1,364 @@ + +meta: + title: 卡密管理 + + + + + diff --git a/admin/src/views/package/package.vue b/admin/src/views/package/package.vue new file mode 100644 index 0000000..7c4c918 --- /dev/null +++ b/admin/src/views/package/package.vue @@ -0,0 +1,364 @@ + +meta: + title: 卡券管理 + + + + + diff --git a/admin/src/views/pay/epay.vue b/admin/src/views/pay/epay.vue new file mode 100644 index 0000000..87e2775 --- /dev/null +++ b/admin/src/views/pay/epay.vue @@ -0,0 +1,192 @@ + +meta: + title: 易支付设置 + + + + + diff --git a/admin/src/views/pay/hupijiao.vue b/admin/src/views/pay/hupijiao.vue new file mode 100644 index 0000000..ee7357c --- /dev/null +++ b/admin/src/views/pay/hupijiao.vue @@ -0,0 +1,131 @@ + +meta: + title: 虎皮椒支付设置 + + + + + diff --git a/admin/src/views/pay/mpay.vue b/admin/src/views/pay/mpay.vue new file mode 100644 index 0000000..6ccf2e1 --- /dev/null +++ b/admin/src/views/pay/mpay.vue @@ -0,0 +1,184 @@ + +meta: + title: 码支付设置 + + + + + diff --git a/admin/src/views/pay/wechat.vue b/admin/src/views/pay/wechat.vue new file mode 100644 index 0000000..dae0296 --- /dev/null +++ b/admin/src/views/pay/wechat.vue @@ -0,0 +1,149 @@ + +meta: + title: 官方微信支付设置 + + + + + diff --git a/admin/src/views/personal/edit.password.vue b/admin/src/views/personal/edit.password.vue new file mode 100644 index 0000000..0b9c7a5 --- /dev/null +++ b/admin/src/views/personal/edit.password.vue @@ -0,0 +1,98 @@ + +name: personalEditPassword +meta: + title: 修改密码 + + + + + diff --git a/admin/src/views/personal/setting.vue b/admin/src/views/personal/setting.vue new file mode 100644 index 0000000..1ea0bf1 --- /dev/null +++ b/admin/src/views/personal/setting.vue @@ -0,0 +1,193 @@ + +name: personalSetting +meta: + title: 个人设置 + cache: personal-edit.password + + + + + + + diff --git a/admin/src/views/reload.vue b/admin/src/views/reload.vue new file mode 100644 index 0000000..80ffa15 --- /dev/null +++ b/admin/src/views/reload.vue @@ -0,0 +1,15 @@ + +name: reload + + + + + diff --git a/admin/src/views/sales/base.vue b/admin/src/views/sales/base.vue new file mode 100644 index 0000000..ef77fe8 --- /dev/null +++ b/admin/src/views/sales/base.vue @@ -0,0 +1,107 @@ + +meta: + title: 分销系统基础设置 + + + + + diff --git a/admin/src/views/sales/order.vue b/admin/src/views/sales/order.vue new file mode 100644 index 0000000..86965f8 --- /dev/null +++ b/admin/src/views/sales/order.vue @@ -0,0 +1,174 @@ + +meta: + title: key列表 + + + + + diff --git a/admin/src/views/sales/records.vue b/admin/src/views/sales/records.vue new file mode 100644 index 0000000..abb4ce9 --- /dev/null +++ b/admin/src/views/sales/records.vue @@ -0,0 +1,149 @@ + +meta: + title: 佣金分销明细 + + + + + diff --git a/admin/src/views/sales/salesUser.vue b/admin/src/views/sales/salesUser.vue new file mode 100644 index 0000000..3135bd5 --- /dev/null +++ b/admin/src/views/sales/salesUser.vue @@ -0,0 +1,219 @@ + +meta: + title: 分销佣金账户 + + + + + diff --git a/admin/src/views/sensitive/autpReply.vue b/admin/src/views/sensitive/autpReply.vue new file mode 100644 index 0000000..02e4968 --- /dev/null +++ b/admin/src/views/sensitive/autpReply.vue @@ -0,0 +1,233 @@ + +meta: + title: 自定义回复预设 + + + + + diff --git a/admin/src/views/sensitive/baiduSensitive.vue b/admin/src/views/sensitive/baiduSensitive.vue new file mode 100644 index 0000000..7307b29 --- /dev/null +++ b/admin/src/views/sensitive/baiduSensitive.vue @@ -0,0 +1,107 @@ + +meta: + title: 百度云敏感词设置 + + + + + diff --git a/admin/src/views/sensitive/builtIn.vue b/admin/src/views/sensitive/builtIn.vue new file mode 100644 index 0000000..eec3f30 --- /dev/null +++ b/admin/src/views/sensitive/builtIn.vue @@ -0,0 +1,107 @@ + +meta: + title: 内置敏感词设置 + + + + + diff --git a/admin/src/views/sensitive/custom.vue b/admin/src/views/sensitive/custom.vue new file mode 100644 index 0000000..f135817 --- /dev/null +++ b/admin/src/views/sensitive/custom.vue @@ -0,0 +1,139 @@ + +meta: + title: 敏感词预设 + + + + + diff --git a/admin/src/views/sensitive/violation.vue b/admin/src/views/sensitive/violation.vue new file mode 100644 index 0000000..7962b59 --- /dev/null +++ b/admin/src/views/sensitive/violation.vue @@ -0,0 +1,233 @@ + +meta: + title: 违规记录 + + + + + + + diff --git a/admin/src/views/storage/ali.vue b/admin/src/views/storage/ali.vue new file mode 100644 index 0000000..d26f7b5 --- /dev/null +++ b/admin/src/views/storage/ali.vue @@ -0,0 +1,124 @@ + +meta: + title: 阿里云oss设置 + + + + + diff --git a/admin/src/views/storage/chevereto.vue b/admin/src/views/storage/chevereto.vue new file mode 100644 index 0000000..f9b3aeb --- /dev/null +++ b/admin/src/views/storage/chevereto.vue @@ -0,0 +1,108 @@ + +meta: + title: Chevereto图床设置 + + + + + diff --git a/admin/src/views/storage/tencent.vue b/admin/src/views/storage/tencent.vue new file mode 100644 index 0000000..a02c273 --- /dev/null +++ b/admin/src/views/storage/tencent.vue @@ -0,0 +1,132 @@ + +meta: + title: 腾讯云cos设置 + + + + + diff --git a/admin/src/views/system/baidufanyi.vue b/admin/src/views/system/baidufanyi.vue new file mode 100644 index 0000000..8e9556a --- /dev/null +++ b/admin/src/views/system/baidufanyi.vue @@ -0,0 +1,92 @@ + +meta: + title: MJ翻译设置 + + + + + diff --git a/admin/src/views/system/base.vue b/admin/src/views/system/base.vue new file mode 100644 index 0000000..bbecab7 --- /dev/null +++ b/admin/src/views/system/base.vue @@ -0,0 +1,94 @@ + +meta: + title: 基础设置 + + + + + diff --git a/admin/src/views/system/copyright.vue b/admin/src/views/system/copyright.vue new file mode 100644 index 0000000..87e2818 --- /dev/null +++ b/admin/src/views/system/copyright.vue @@ -0,0 +1,92 @@ + +meta: + title: 后台版权设置 + + + + + diff --git a/admin/src/views/system/cos.vue b/admin/src/views/system/cos.vue new file mode 100644 index 0000000..0dfafef --- /dev/null +++ b/admin/src/views/system/cos.vue @@ -0,0 +1,109 @@ + +meta: + title: cos设置 + + + + + diff --git a/admin/src/views/system/email.vue b/admin/src/views/system/email.vue new file mode 100644 index 0000000..412f382 --- /dev/null +++ b/admin/src/views/system/email.vue @@ -0,0 +1,218 @@ + +meta: + title: 邮件设置 + + + + + diff --git a/admin/src/views/system/interface.vue b/admin/src/views/system/interface.vue new file mode 100644 index 0000000..8ceb35f --- /dev/null +++ b/admin/src/views/system/interface.vue @@ -0,0 +1,182 @@ + +meta: + title: 接口请求设置 + + + + + diff --git a/admin/src/views/system/register.vue b/admin/src/views/system/register.vue new file mode 100644 index 0000000..2b88abe --- /dev/null +++ b/admin/src/views/system/register.vue @@ -0,0 +1,282 @@ + +meta: + title: 注册设置 + + + + + + + diff --git a/admin/src/views/system/secret.vue b/admin/src/views/system/secret.vue new file mode 100644 index 0000000..b0ba0de --- /dev/null +++ b/admin/src/views/system/secret.vue @@ -0,0 +1,106 @@ + +meta: + title: key设置 + + + + + diff --git a/admin/src/views/system/upgrade.vue b/admin/src/views/system/upgrade.vue new file mode 100644 index 0000000..0108472 --- /dev/null +++ b/admin/src/views/system/upgrade.vue @@ -0,0 +1,55 @@ + +meta: + title: 升级管理 + + + + + diff --git a/admin/src/views/system/wechat.vue b/admin/src/views/system/wechat.vue new file mode 100644 index 0000000..42013c8 --- /dev/null +++ b/admin/src/views/system/wechat.vue @@ -0,0 +1,187 @@ + +meta: + title: 微信设置 + + + + + diff --git a/admin/src/views/users/accountLog.vue b/admin/src/views/users/accountLog.vue new file mode 100644 index 0000000..09430d8 --- /dev/null +++ b/admin/src/views/users/accountLog.vue @@ -0,0 +1,187 @@ + +meta: + title: 账户变更记录 + + + + + diff --git a/admin/src/views/users/index.vue b/admin/src/views/users/index.vue new file mode 100644 index 0000000..c3543bb --- /dev/null +++ b/admin/src/views/users/index.vue @@ -0,0 +1,298 @@ + +meta: + title: 用户管理 + + + + + diff --git a/admin/src/views/users/phone.vue b/admin/src/views/users/phone.vue new file mode 100644 index 0000000..2c94a54 --- /dev/null +++ b/admin/src/views/users/phone.vue @@ -0,0 +1,162 @@ + +meta: + title: 手机验证码配置 + + + + + diff --git a/admin/src/views/users/signIn.vue b/admin/src/views/users/signIn.vue new file mode 100644 index 0000000..a299ee1 --- /dev/null +++ b/admin/src/views/users/signIn.vue @@ -0,0 +1,127 @@ + +meta: + title: 签到奖励 + + + + + diff --git a/admin/tailwind.config.js b/admin/tailwind.config.js new file mode 100644 index 0000000..f03dc7b --- /dev/null +++ b/admin/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [], + purge: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/admin/tsconfig.json b/admin/tsconfig.json new file mode 100644 index 0000000..790d29a --- /dev/null +++ b/admin/tsconfig.json @@ -0,0 +1,45 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": [ + "ESNext", + "DOM" + ], + "skipLibCheck": true, + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ], + "#/*": [ + "src/types/*" + ] + }, + "types": [ + "vite/client", + "element-plus/global", + "vite-plugin-pages/client", + "vite-plugin-vue-meta-layouts/client" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue" + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/admin/tsconfig.node.json b/admin/tsconfig.node.json new file mode 100644 index 0000000..62bdcce --- /dev/null +++ b/admin/tsconfig.node.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "esModuleInterop": true, + "resolveJsonModule": true + }, + "include": [ + "package.json", + "vite.config.ts", + "vite/**/*.ts" + ] +} diff --git a/admin/vite.config.ts b/admin/vite.config.ts new file mode 100644 index 0000000..67457f2 --- /dev/null +++ b/admin/vite.config.ts @@ -0,0 +1,69 @@ +import fs from 'node:fs' +import path from 'node:path' +import { defineConfig, loadEnv } from 'vite' +import dayjs from 'dayjs' +import pkg from './package.json' +import createVitePlugins from './vite/plugins' + +// https://vitejs.dev/config/ +export default ({ mode, command }) => { + const env = loadEnv(mode, process.cwd()) + // 全局 scss 资源 + const scssResources = [] + fs.readdirSync('src/assets/styles/resources').forEach((dirname) => { + if (fs.statSync(`src/assets/styles/resources/${dirname}`).isFile()) { scssResources.push(`@use "src/assets/styles/resources/${dirname}" as *;`) } + }) + // css 精灵图相关 + fs.readdirSync('src/assets/sprites').forEach((dirname) => { + if (fs.statSync(`src/assets/sprites/${dirname}`).isDirectory()) { + // css 精灵图生成的 scss 文件也需要放入全局 scss 资源 + scssResources.push(`@use "src/assets/sprites/_${dirname}.scss" as *;`) + } + }) + return defineConfig({ + base: env.VITE_BASE_PATH, + // 开发服务器选项 https://cn.vitejs.dev/config/#server-options + server: { + open: true, + port: 9000, + proxy: { + '/proxy': { + target: env.VITE_APP_API_BASEURL, + changeOrigin: command === 'serve' && env.VITE_OPEN_PROXY === 'true', + rewrite: path => path.replace(/\/proxy/, ''), + }, + }, + }, + // 构建选项 https://cn.vitejs.dev/config/#server-fsserve-root + build: { + outDir: mode === 'production' ? 'dist' : `dist-${mode}`, + sourcemap: env.VITE_BUILD_SOURCEMAP === 'true', + minify: true, + reportCompressedSize: false, + }, + define: { + __SYSTEM_INFO__: JSON.stringify({ + pkg: { + version: pkg.version, + dependencies: pkg.dependencies, + devDependencies: pkg.devDependencies, + }, + lastBuildTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + }), + }, + plugins: createVitePlugins(env, command === 'build'), + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + '#': path.resolve(__dirname, 'src/types'), + }, + }, + css: { + preprocessorOptions: { + scss: { + additionalData: scssResources.join(''), + }, + }, + }, + }) +} diff --git a/admin/vite/plugins/auto-import.ts b/admin/vite/plugins/auto-import.ts new file mode 100644 index 0000000..b27bdd5 --- /dev/null +++ b/admin/vite/plugins/auto-import.ts @@ -0,0 +1,15 @@ +import autoImport from 'unplugin-auto-import/vite' + +export default function createAutoImport() { + return autoImport({ + imports: [ + 'vue', + 'vue-router', + 'pinia', + ], + dts: './src/types/auto-imports.d.ts', + dirs: [ + './src/utils/composables/**', + ], + }) +} diff --git a/admin/vite/plugins/banner.ts b/admin/vite/plugins/banner.ts new file mode 100644 index 0000000..c018be9 --- /dev/null +++ b/admin/vite/plugins/banner.ts @@ -0,0 +1,10 @@ +import banner from 'vite-plugin-banner' + +export default function createBanner() { + return banner(` +/** + * 由 FZAPI 提供技术支持 + * Powered by FZAPI + */ + `) +} diff --git a/admin/vite/plugins/components.ts b/admin/vite/plugins/components.ts new file mode 100644 index 0000000..1b0db82 --- /dev/null +++ b/admin/vite/plugins/components.ts @@ -0,0 +1,9 @@ +import components from 'unplugin-vue-components/vite' + +export default function createComponents() { + return components({ + dirs: ['src/components'], + include: [/\.vue$/, /\.vue\?vue/, /\.tsx$/], + dts: './src/types/components.d.ts', + }) +} diff --git a/admin/vite/plugins/compression.ts b/admin/vite/plugins/compression.ts new file mode 100644 index 0000000..317582d --- /dev/null +++ b/admin/vite/plugins/compression.ts @@ -0,0 +1,25 @@ +import compression from 'vite-plugin-compression' + +export default function createCompression(env) { + const { VITE_BUILD_COMPRESS } = env + const compressList = VITE_BUILD_COMPRESS.split(',') + const plugin: any[] = [] + if (compressList.includes('gzip')) { + plugin.push( + compression({ + ext: '.gz', + deleteOriginFile: false, + }), + ) + } + if (compressList.includes('brotli')) { + plugin.push( + compression({ + ext: '.br', + algorithm: 'brotliCompress', + deleteOriginFile: false, + }), + ) + } + return plugin +} diff --git a/admin/vite/plugins/index.ts b/admin/vite/plugins/index.ts new file mode 100644 index 0000000..590b546 --- /dev/null +++ b/admin/vite/plugins/index.ts @@ -0,0 +1,35 @@ +import type { PluginOption } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' + +import createInspector from './inspector' +import createAutoImport from './auto-import' +import createComponents from './components' +import createSetupExtend from './setup-extend' +import createSvgIcon from './svg-icon' +import createMock from './mock' +import createLayouts from './layouts' +import createPages from './pages' + +// import createCompression from './compression' +import createSpritesmith from './spritesmith' +import createBanner from './banner' + +export default function createVitePlugins(viteEnv, isBuild = false) { + const vitePlugins: (PluginOption | PluginOption[])[] = [ + vue(), + vueJsx(), + ] + vitePlugins.push(createInspector()) + vitePlugins.push(createAutoImport()) + vitePlugins.push(createComponents()) + vitePlugins.push(createSetupExtend()) + vitePlugins.push(createSvgIcon(isBuild)) + vitePlugins.push(createMock(viteEnv, isBuild)) + vitePlugins.push(createLayouts()) + vitePlugins.push(createPages()) + // isBuild && vitePlugins.push(...createCompression(viteEnv)) + vitePlugins.push(...createSpritesmith(isBuild)) + vitePlugins.push(createBanner()) + return vitePlugins +} diff --git a/admin/vite/plugins/inspector.ts b/admin/vite/plugins/inspector.ts new file mode 100644 index 0000000..9ff54de --- /dev/null +++ b/admin/vite/plugins/inspector.ts @@ -0,0 +1,6 @@ +// import Inspector from 'vite-plugin-vue-inspector' + +export default function createInspector() { + // return Inspector() + +} diff --git a/admin/vite/plugins/layouts.ts b/admin/vite/plugins/layouts.ts new file mode 100644 index 0000000..8698b09 --- /dev/null +++ b/admin/vite/plugins/layouts.ts @@ -0,0 +1,7 @@ +import Layouts from 'vite-plugin-vue-meta-layouts' + +export default function createLayouts() { + return Layouts({ + defaultLayout: 'index', + }) +} diff --git a/admin/vite/plugins/mock.ts b/admin/vite/plugins/mock.ts new file mode 100644 index 0000000..a709524 --- /dev/null +++ b/admin/vite/plugins/mock.ts @@ -0,0 +1,14 @@ +import { viteMockServe } from 'vite-plugin-mock' + +export default function createMock(env, isBuild) { + const { VITE_BUILD_MOCK } = env + return viteMockServe({ + mockPath: 'src/mock', + localEnabled: !isBuild, + prodEnabled: isBuild && VITE_BUILD_MOCK === 'true', + injectCode: ` +import { setupProdMockServer } from './mockProdServer'; +setupProdMockServer(); + `, + }) +} diff --git a/admin/vite/plugins/pages.ts b/admin/vite/plugins/pages.ts new file mode 100644 index 0000000..470bcca --- /dev/null +++ b/admin/vite/plugins/pages.ts @@ -0,0 +1,10 @@ +import Pages from 'vite-plugin-pages' + +export default function createPages() { + return Pages({ + dirs: 'src/views', + exclude: [ + '**/components/**/*.vue', + ], + }) +} diff --git a/admin/vite/plugins/setup-extend.ts b/admin/vite/plugins/setup-extend.ts new file mode 100644 index 0000000..fb70609 --- /dev/null +++ b/admin/vite/plugins/setup-extend.ts @@ -0,0 +1,5 @@ +import setupExtend from 'unplugin-vue-setup-extend-plus/vite' + +export default function createSetupExtend() { + return setupExtend({}) +} diff --git a/admin/vite/plugins/spritesmith.ts b/admin/vite/plugins/spritesmith.ts new file mode 100644 index 0000000..86ca829 --- /dev/null +++ b/admin/vite/plugins/spritesmith.ts @@ -0,0 +1,49 @@ +import fs from 'fs' +import spritesmith from 'vite-plugin-spritesmith' + +export default function createSpritesmith(isBuild) { + const spriteDirnames: string[] = [] + fs.readdirSync('src/assets/sprites').forEach((dirname) => { + if (fs.statSync(`src/assets/sprites/${dirname}`).isDirectory()) { + spriteDirnames.push(dirname) + } + }) + const plugin: any[] = [] + spriteDirnames.forEach((item) => { + plugin.push( + spritesmith({ + watch: !isBuild, + src: { + cwd: `./src/assets/sprites/${item}`, + glob: '*.png', + }, + target: { + image: `./src/assets/sprites/${item}.png`, + css: [ + [ + `./src/assets/sprites/_${item}.scss`, + { + format: 'handlebars_based_template', + }, + ], + ], + }, + apiOptions: { + cssImageRef: `@/assets/sprites/${item}.png`, + spritesheet_info: { + name: item, + format: 'handlebars_based_template', + }, + }, + customTemplates: { + handlebars_based_template: './scss.template.hbs', + }, + spritesmithOptions: { + algorithm: 'binary-tree', + padding: 10, + }, + }), + ) + }) + return plugin +} diff --git a/admin/vite/plugins/svg-icon.ts b/admin/vite/plugins/svg-icon.ts new file mode 100644 index 0000000..99595fe --- /dev/null +++ b/admin/vite/plugins/svg-icon.ts @@ -0,0 +1,10 @@ +import path from 'node:path' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' + +export default function createSvgIcon(isBuild) { + return createSvgIconsPlugin({ + iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/')], + symbolId: 'icon-[dir]-[name]', + svgoOptions: isBuild, + }) +} diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..5230c13 --- /dev/null +++ b/build.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -e + +cd admin/ +npm run build +cd .. + +cd chat/ +npm run build +cd .. + +cd service/ +npm run build +cd .. + +rm -rf WebSite/dist/* WebSite/public/* WebSite/templates/* + +mkdir -p WebSite/dist WebSite/public/admin WebSite/templates + +cp service/pm2.conf.json WebSite/pm2.conf.json +cp service/package.json WebSite/package.json +cp service/README.md WebSite/README.md +cp service/.env.example WebSite/.env.example + +cp -r service/templates/* WebSite/templates +cp -r service/dist/* WebSite/dist +cp -r admin/dist/* WebSite/public/admin +cp -r chat/dist/* WebSite/public + +echo "打包完成" \ No newline at end of file diff --git a/chat/.commitlintrc.json b/chat/.commitlintrc.json new file mode 100644 index 0000000..c30e5a9 --- /dev/null +++ b/chat/.commitlintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["@commitlint/config-conventional"] +} diff --git a/chat/.editorconfig b/chat/.editorconfig new file mode 100644 index 0000000..02bb57f --- /dev/null +++ b/chat/.editorconfig @@ -0,0 +1,11 @@ +# Editor configuration, see http://editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_style = tab +indent_size = 2 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/chat/.env.development b/chat/.env.development new file mode 100644 index 0000000..2bb3ea6 --- /dev/null +++ b/chat/.env.development @@ -0,0 +1,5 @@ +# 本地链接生产 +VITE_GLOB_API_URL=http://43.136.19.159:9520/api + +VITE_GLOB_OPEN_LONG_REPLY=false +VITE_GLOB_APP_PWA=false diff --git a/chat/.env.example b/chat/.env.example new file mode 100644 index 0000000..c23da78 --- /dev/null +++ b/chat/.env.example @@ -0,0 +1,6 @@ +# 本地链接生产# xxx填写你的后端服务地址后面/api勿删除 +VITE_GLOB_API_URL=https://xxx/api + + +VITE_GLOB_OPEN_LONG_REPLY=false +VITE_GLOB_APP_PWA=false diff --git a/chat/.env.production b/chat/.env.production new file mode 100644 index 0000000..5011e18 --- /dev/null +++ b/chat/.env.production @@ -0,0 +1,9 @@ +# 本地链接生产 +# VITE_GLOB_API_URL=https://xxx.com/api + + +# 本地 +VITE_GLOB_API_URL=/api + +VITE_GLOB_OPEN_LONG_REPLY=Ture +VITE_GLOB_APP_PWA=Ture \ No newline at end of file diff --git a/chat/.eslintignore b/chat/.eslintignore new file mode 100644 index 0000000..101c96b --- /dev/null +++ b/chat/.eslintignore @@ -0,0 +1,2 @@ +docker-compose +kubernetes diff --git a/chat/.eslintrc.cjs b/chat/.eslintrc.cjs new file mode 100644 index 0000000..ba64178 --- /dev/null +++ b/chat/.eslintrc.cjs @@ -0,0 +1,12 @@ +module.exports = { + root: true, + extends: ['@antfu'], + rules: { + 'no-tabs': 0, + }, + globals: { + WeixinJSBridge: false, + wx: false, + loginCount: true, + }, +} diff --git a/chat/.gitattributes b/chat/.gitattributes new file mode 100644 index 0000000..9a9f386 --- /dev/null +++ b/chat/.gitattributes @@ -0,0 +1,17 @@ +"*.vue" eol=lf +"*.js" eol=lf +"*.ts" eol=lf +"*.jsx" eol=lf +"*.tsx" eol=lf +"*.cjs" eol=lf +"*.cts" eol=lf +"*.mjs" eol=lf +"*.mts" eol=lf +"*.json" eol=lf +"*.html" eol=lf +"*.css" eol=lf +"*.less" eol=lf +"*.scss" eol=lf +"*.sass" eol=lf +"*.styl" eol=lf +"*.md" eol=lf diff --git a/chat/.gitignore b/chat/.gitignore new file mode 100644 index 0000000..b031aca --- /dev/null +++ b/chat/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Environment variables files +/service/.env +.env diff --git a/chat/.npmrc b/chat/.npmrc new file mode 100644 index 0000000..319e41e --- /dev/null +++ b/chat/.npmrc @@ -0,0 +1 @@ +strict-peer-dependencies=false diff --git a/chat/.vscode/extensions.json b/chat/.vscode/extensions.json new file mode 100644 index 0000000..269dc29 --- /dev/null +++ b/chat/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "dbaeumer.vscode-eslint"] +} diff --git a/chat/.vscode/launch.json b/chat/.vscode/launch.json new file mode 100644 index 0000000..cbd43f6 --- /dev/null +++ b/chat/.vscode/launch.json @@ -0,0 +1,25 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Launch Web App", + "url": "http://localhost:1002", + "webRoot": "${workspaceFolder}" + }, + { + "type": "node", + "request": "launch", + "name": "Launch Service Server", + "runtimeExecutable": "${workspaceFolder}/service/node_modules/.bin/esno", + "skipFiles": ["/**"], + "program": "${workspaceFolder}/service/src/index.ts", + "outFiles": ["${workspaceFolder}/service/**/*.js"], + "envFile": "${workspaceFolder}/service/.env" + } + ] +} diff --git a/chat/.vscode/settings.json b/chat/.vscode/settings.json new file mode 100644 index 0000000..a161def --- /dev/null +++ b/chat/.vscode/settings.json @@ -0,0 +1,66 @@ +{ + "prettier.enable": false, + "editor.formatOnSave": false, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "json", + "jsonc", + "json5", + "yaml", + "yml", + "markdown" + ], + "cSpell.words": [ + "antfu", + "axios", + "bumpp", + "chatgpt", + "chenzhaoyu", + "commitlint", + "davinci", + "dockerhub", + "esno", + "GPTAPI", + "highlightjs", + "hljs", + "iconify", + "katex", + "katexmath", + "linkify", + "logprobs", + "mdhljs", + "mila", + "nodata", + "OPENAI", + "pinia", + "Popconfirm", + "rushstack", + "Sider", + "tailwindcss", + "traptitech", + "tsup", + "Typecheck", + "unplugin", + "VITE", + "vueuse", + "Zhao" + ], + "i18n-ally.enabledParsers": [ + "ts" + ], + "i18n-ally.sortKeys": true, + "i18n-ally.keepFulfilled": true, + "i18n-ally.localesPaths": [ + "src/locales" + ], + "i18n-ally.keystyle": "nested", + "vue.codeActions.enabled": false +} diff --git a/chat/config/index.ts b/chat/config/index.ts new file mode 100644 index 0000000..e739ac8 --- /dev/null +++ b/chat/config/index.ts @@ -0,0 +1 @@ +export * from './proxy' diff --git a/chat/config/proxy.ts b/chat/config/proxy.ts new file mode 100644 index 0000000..d724238 --- /dev/null +++ b/chat/config/proxy.ts @@ -0,0 +1,16 @@ +import type { ProxyOptions } from 'vite' + +export function createViteProxy(isOpenProxy: boolean, viteEnv: ImportMetaEnv) { + if (!isOpenProxy) + return + + const proxy: Record = { + '/api': { + target: viteEnv.VITE_APP_API_BASE_URL, + changeOrigin: true, + rewrite: path => path.replace('/api/', '/'), + }, + } + + return proxy +} diff --git a/chat/dist.zip b/chat/dist.zip new file mode 100644 index 0000000..854e533 Binary files /dev/null and b/chat/dist.zip differ diff --git a/chat/electron/appMenu.js b/chat/electron/appMenu.js new file mode 100644 index 0000000..274db72 --- /dev/null +++ b/chat/electron/appMenu.js @@ -0,0 +1,63 @@ +// appMenu.js +const { Menu, app, Tray } = require('electron'); +const path = require('path') + +function configureAppMenu(mainWindow) { + + let tray = new Tray(path.join(__dirname, '../icons/16x16.png')); + // tray.setToolTip('YiAi Ai'); + + const template = [ + { + label: 'YiAi', + submenu: [ + { + label: '退出应用', + accelerator: 'CmdOrCtrl+Q', + click: () => { + app.quit(); + }, + } + ], + } + ]; + + if (process.platform === 'darwin') { + template.unshift({ + label: 'Edit', + submenu: [ + { role: 'undo' }, + { role: 'redo' }, + { type: 'separator' }, + { role: 'cut' }, + { role: 'copy' }, + { role: 'paste' }, + { role: 'pasteandmatchstyle' }, + { role: 'delete' }, + { role: 'selectall' } + ] + }) +} + + const menu = Menu.buildFromTemplate(template); + Menu.setApplicationMenu(menu); + + tray.on('click', () => { + mainWindow.isVisible() ? mainWindow.hide() : mainWindow.show(); + }); + + tray.on('right-click', () => { + const contextMenuWindows = Menu.buildFromTemplate([ + { + label: '退出应用', + click: () => { + app.quit(); + }, + }, + ]); + tray.popUpContextMenu(contextMenuWindows); + }) + +} + +module.exports = { configureAppMenu }; diff --git a/chat/electron/ipcManager.js b/chat/electron/ipcManager.js new file mode 100644 index 0000000..d68381b --- /dev/null +++ b/chat/electron/ipcManager.js @@ -0,0 +1,40 @@ +// ipcManager.js +const { ipcMain, BrowserWindow, app } = require('electron'); + +function handleIpc(mainWindow) { + ipcMain.handle('minimizeWindow', () => { + const mainWindow = BrowserWindow.getFocusedWindow(); + mainWindow?.minimize(); + }); + + ipcMain.handle('maxmizeWindow', () => { + const win = BrowserWindow.getFocusedWindow(); + if (win) { + if (process.platform === 'darwin') mainWindow?.setFullScreen(true); + else mainWindow?.maximize(); + } + }); + + ipcMain.handle('closeWindow', () => { + // const mainWindow = BrowserWindow.getFocusedWindow(); + // mainWindow?.close(); + app.quit() + }); + + ipcMain.handle('unmaximizeWindow', () => { + const win = BrowserWindow.getFocusedWindow(); + if (win) { + if (process.platform === 'darwin') mainWindow?.setFullScreen(false); + else mainWindow?.unmaximize(); + } + }); + + ipcMain.on('check-window-maximized', (event) => { + const win = BrowserWindow.getFocusedWindow(); + if (win) { + event.reply('window-maximized-status', win.isFullScreen()); + } + }); +} + +module.exports = { handleIpc }; diff --git a/chat/electron/main.js b/chat/electron/main.js new file mode 100644 index 0000000..8bd83df --- /dev/null +++ b/chat/electron/main.js @@ -0,0 +1,28 @@ +// main.js +const { app, BrowserWindow } = require('electron'); +const { createMainWindow } = require('./windowManager'); +const { handleIpc } = require('./ipcManager'); +const { registerShortcuts } = require('./shortcutManager'); +const { configureAppMenu } = require('./appMenu'); + +app.commandLine.appendSwitch('--ignore-certificate-errors', 'true'); +app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors'); + +app.whenReady().then(() => { + const mainWindow = createMainWindow(); + handleIpc(mainWindow); + registerShortcuts(mainWindow); + configureAppMenu(mainWindow); +}); + +app.on('activate', () => { + if (BrowserWindow.getAllWindows().length === 0) { + createMainWindow(); + } +}); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); diff --git a/chat/electron/menu/index.js b/chat/electron/menu/index.js new file mode 100644 index 0000000..2a74117 --- /dev/null +++ b/chat/electron/menu/index.js @@ -0,0 +1,5 @@ +if(process.platform === 'darwin') { + require('./darwin.js') +}else if( process.platform === "win32") { + require('./win32.js') +} diff --git a/chat/electron/shortcutManager.js b/chat/electron/shortcutManager.js new file mode 100644 index 0000000..0118afe --- /dev/null +++ b/chat/electron/shortcutManager.js @@ -0,0 +1,19 @@ +// shortcutManager.js +const { globalShortcut, BrowserWindow } = require('electron'); + +let isWindowVisible = true; + +function registerShortcuts(mainWindow) { + globalShortcut.register('Ctrl+L', () => { + if (mainWindow && !mainWindow.isFullScreen()) { + if (isWindowVisible) { + mainWindow.hide(); + } else { + mainWindow.show(); + } + isWindowVisible = !isWindowVisible; + } + }); +} + +module.exports = { registerShortcuts }; diff --git a/chat/electron/windowManager.js b/chat/electron/windowManager.js new file mode 100644 index 0000000..ddf2412 --- /dev/null +++ b/chat/electron/windowManager.js @@ -0,0 +1,51 @@ +// windowManager.js +const { BrowserWindow, globalShortcut, clipboard, app } = require('electron'); +const { handleIpc } = require('./ipcManager'); + +let mainWindow = null; +let isWindowVisible = true; +let lastClipboardContent = ''; + +function createMainWindow() { + mainWindow = new BrowserWindow({ + width: 1300, + height: 860, + minWidth: 1300, + minHeight: 820, + center: true, + frame: false, + show: true, + webPreferences: { + nodeIntegration: true, + contextIsolation: false, + nodeIntegrationInWorker: true, + webSecurity: true, + allowRunningInsecureContent: false, + }, + }) + + if (app.isPackaged) { + // mainWindow.loadFile(filePath) + // mainWindow.loadURL('https://ai.jiangly.com') + } + else { + mainWindow.loadURL('http://127.0.0.1:1002') + // mainWindow.loadURL('https://ai.jiangly.com') + mainWindow.webContents.openDevTools() + } + + mainWindow.on('show', () => { + const clipboardContent = clipboard.readText(); + if (clipboardContent === lastClipboardContent) return; + mainWindow.webContents.send('clipboard-content', clipboardContent); + lastClipboardContent = clipboardContent; + }); + + globalShortcut.register('CommandOrControl+Shift+i', () => { + mainWindow.webContents.openDevTools(); + }); + + return mainWindow; +} + +module.exports = { createMainWindow }; diff --git a/chat/icons.iconset/icon_128x128.png b/chat/icons.iconset/icon_128x128.png new file mode 100644 index 0000000..dc4c380 Binary files /dev/null and b/chat/icons.iconset/icon_128x128.png differ diff --git a/chat/icons.iconset/icon_128x128@2x.png b/chat/icons.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..89899b2 Binary files /dev/null and b/chat/icons.iconset/icon_128x128@2x.png differ diff --git a/chat/icons.iconset/icon_16x16.png b/chat/icons.iconset/icon_16x16.png new file mode 100644 index 0000000..3fd31af Binary files /dev/null and b/chat/icons.iconset/icon_16x16.png differ diff --git a/chat/icons.iconset/icon_16x16@2x.png b/chat/icons.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..ba097c5 Binary files /dev/null and b/chat/icons.iconset/icon_16x16@2x.png differ diff --git a/chat/icons.iconset/icon_256x256.png b/chat/icons.iconset/icon_256x256.png new file mode 100644 index 0000000..89899b2 Binary files /dev/null and b/chat/icons.iconset/icon_256x256.png differ diff --git a/chat/icons.iconset/icon_256x256@2x.png b/chat/icons.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..86c5532 Binary files /dev/null and b/chat/icons.iconset/icon_256x256@2x.png differ diff --git a/chat/icons.iconset/icon_32x32.png b/chat/icons.iconset/icon_32x32.png new file mode 100644 index 0000000..ba097c5 Binary files /dev/null and b/chat/icons.iconset/icon_32x32.png differ diff --git a/chat/icons.iconset/icon_32x32@2x.png b/chat/icons.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..df65323 Binary files /dev/null and b/chat/icons.iconset/icon_32x32@2x.png differ diff --git a/chat/icons.iconset/icon_512x512.png b/chat/icons.iconset/icon_512x512.png new file mode 100644 index 0000000..86c5532 Binary files /dev/null and b/chat/icons.iconset/icon_512x512.png differ diff --git a/chat/icons.iconset/icon_512x512@2x.png b/chat/icons.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..0c81ff5 Binary files /dev/null and b/chat/icons.iconset/icon_512x512@2x.png differ diff --git a/chat/icons/16x16.png b/chat/icons/16x16.png new file mode 100644 index 0000000..3fd31af Binary files /dev/null and b/chat/icons/16x16.png differ diff --git a/chat/icons/32x32.png b/chat/icons/32x32.png new file mode 100644 index 0000000..ba097c5 Binary files /dev/null and b/chat/icons/32x32.png differ diff --git a/chat/icons/icon.icns b/chat/icons/icon.icns new file mode 100644 index 0000000..1030980 Binary files /dev/null and b/chat/icons/icon.icns differ diff --git a/chat/icons/logo.png b/chat/icons/logo.png new file mode 100644 index 0000000..7ec7380 Binary files /dev/null and b/chat/icons/logo.png differ diff --git a/chat/icons/nine.png b/chat/icons/nine.png new file mode 100644 index 0000000..86c5532 Binary files /dev/null and b/chat/icons/nine.png differ diff --git a/chat/icons/nineai.svg b/chat/icons/nineai.svg new file mode 100644 index 0000000..0795ac3 --- /dev/null +++ b/chat/icons/nineai.svg @@ -0,0 +1,26 @@ + + + 资源 1 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/chat/index.html b/chat/index.html new file mode 100644 index 0000000..49cae42 --- /dev/null +++ b/chat/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + Ai Loading + + + +
+ +
+
+
+ L + O + A + D + I + N + G +
+
+
+ + + + + + + + + diff --git a/chat/license b/chat/license new file mode 100644 index 0000000..c47b512 --- /dev/null +++ b/chat/license @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Snine + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/chat/package-lock.json b/chat/package-lock.json new file mode 100644 index 0000000..661b3b3 --- /dev/null +++ b/chat/package-lock.json @@ -0,0 +1,17639 @@ +{ + "name": "chatgpt-cooper", + "version": "2.6.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "chatgpt-cooper", + "version": "2.6.0", + "dependencies": { + "@electron/remote": "^2.1.0", + "@icon-park/vue-next": "^1.4.2", + "@traptitech/markdown-it-katex": "^3.6.0", + "@types/dom-to-image": "^2.6.4", + "@types/file-saver": "^2.0.5", + "@vicons/ionicons5": "^0.12.0", + "@vueuse/core": "^9.13.0", + "@vueuse/electron": "^10.2.1", + "@vueuse/integrations": "^10.2.0", + "@vueuse/motion": "^2.0.0", + "add": "^2.0.6", + "clientjs": "^0.2.1", + "date-fns": "^2.30.0", + "dom-to-image": "^2.6.0", + "file-saver": "^2.0.5", + "highlight.js": "^11.7.0", + "html-to-image": "^1.11.11", + "html2canvas": "^1.4.1", + "katex": "^0.16.4", + "markdown-it": "^13.0.1", + "marked": "^4.3.0", + "markmap-common": "0.14.2", + "markmap-lib": "0.14.4", + "markmap-view": "0.14.4", + "naive-ui": "^2.37.3", + "pinia": "^2.0.33", + "qrcode": "^1.5.3", + "v-viewer": "3.0.11", + "vue": "^3.2.47", + "vue-clipboard3": "^2.0.0", + "vue-i18n": "^9.2.2", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@antfu/eslint-config": "^0.35.3", + "@commitlint/cli": "^17.4.4", + "@commitlint/config-conventional": "^17.4.4", + "@iconify/vue": "^4.1.0", + "@types/crypto-js": "^4.1.1", + "@types/katex": "^0.16.0", + "@types/markdown-it": "^12.2.3", + "@types/markdown-it-link-attributes": "^3.0.1", + "@types/node": "^18.14.6", + "@vitejs/plugin-vue": "^4.0.0", + "autoprefixer": "^10.4.13", + "axios": "^1.3.4", + "crypto-js": "^4.1.1", + "electron": "^25.3.1", + "electron-builder": "^24.4.0", + "eslint": "^8.35.0", + "husky": "^8.0.3", + "less": "^4.1.3", + "lint-staged": "^13.1.2", + "markdown-it-link-attributes": "^4.0.1", + "npm-run-all": "^4.1.5", + "postcss": "^8.4.21", + "rimraf": "^4.2.0", + "tailwindcss": "^3.2.7", + "typescript": "~4.9.5", + "vite": "^4.2.0", + "vite-plugin-pwa": "^0.14.4", + "vue-tsc": "^1.2.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/eslint-config": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-0.35.3.tgz", + "integrity": "sha512-wd0ry/TNqaZmniqkKtZKoCvpl55x9YbHgL5Ug3H9rVuUSqaNi9G9AjYlynQqn4/M1EhYYWO597Lu7f/fC+csrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/eslint-config-vue": "0.35.3", + "@typescript-eslint/eslint-plugin": "^5.53.0", + "@typescript-eslint/parser": "^5.53.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsonc": "^2.6.0", + "eslint-plugin-n": "^15.6.1", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-unicorn": "^45.0.2", + "eslint-plugin-vue": "^9.9.0", + "eslint-plugin-yml": "^1.5.0", + "jsonc-eslint-parser": "^2.1.0", + "yaml-eslint-parser": "^1.1.0" + }, + "peerDependencies": { + "eslint": ">=7.4.0" + } + }, + "node_modules/@antfu/eslint-config-basic": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config-basic/-/eslint-config-basic-0.35.3.tgz", + "integrity": "sha512-NbWJKNgd3Ky3/ok2Z88cXNme/6I9otkiaB+FYLFgQE81sfMAhKpLKXtTSwzdcKMzhKDqUchAijt0BxjE/mcTJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-plugin-antfu": "0.35.3", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsonc": "^2.6.0", + "eslint-plugin-markdown": "^3.0.0", + "eslint-plugin-n": "^15.6.1", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-unicorn": "^45.0.2", + "eslint-plugin-unused-imports": "^2.0.0", + "eslint-plugin-yml": "^1.5.0", + "jsonc-eslint-parser": "^2.1.0", + "yaml-eslint-parser": "^1.1.0" + }, + "peerDependencies": { + "eslint": ">=7.4.0" + } + }, + "node_modules/@antfu/eslint-config-ts": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config-ts/-/eslint-config-ts-0.35.3.tgz", + "integrity": "sha512-FS5hir2ghXYlJWAiB2bpT9oAr0kpSNmYbaJWWkztocJG95AORl4tWzxMTkLT+TxaOmhuwJszcrMTHy5RgHL8/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/eslint-config-basic": "0.35.3", + "@typescript-eslint/eslint-plugin": "^5.53.0", + "@typescript-eslint/parser": "^5.53.0", + "eslint-plugin-jest": "^27.2.1" + }, + "peerDependencies": { + "eslint": ">=7.4.0", + "typescript": ">=3.9" + } + }, + "node_modules/@antfu/eslint-config-vue": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@antfu/eslint-config-vue/-/eslint-config-vue-0.35.3.tgz", + "integrity": "sha512-BA3vGLyuzqtEUb9gfgE7YzBT+a4oUnQuUPasIUfN/BVXaEhRVYlMmUgxN4ekQLuzOgUjUH13lqplXtkLJ62t9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/eslint-config-basic": "0.35.3", + "@antfu/eslint-config-ts": "0.35.3", + "eslint-plugin-vue": "^9.9.0", + "local-pkg": "^0.4.3" + }, + "peerDependencies": { + "eslint": ">=7.4.0" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "devOptional": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/standalone": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.25.3.tgz", + "integrity": "sha512-uR+EoBqIIIvKGCG7fOj7HKupu3zVObiMfdEwoPZfVCPpcWJaZ1PkshaP5/6cl6BKAm1Zcv25O1rf+uoQ7V8nqA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@commitlint/cli": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz", + "integrity": "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^17.8.1", + "@commitlint/lint": "^17.8.1", + "@commitlint/load": "^17.8.1", + "@commitlint/read": "^17.8.1", + "@commitlint/types": "^17.8.1", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz", + "integrity": "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-changelog-conventionalcommits": "^6.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz", + "integrity": "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/ensure": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz", + "integrity": "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz", + "integrity": "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/format": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz", + "integrity": "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz", + "integrity": "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "semver": "7.5.4" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/lint": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz", + "integrity": "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^17.8.1", + "@commitlint/parse": "^17.8.1", + "@commitlint/rules": "^17.8.1", + "@commitlint/types": "^17.8.1" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz", + "integrity": "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^17.8.1", + "@commitlint/execute-rule": "^17.8.1", + "@commitlint/resolve-extends": "^17.8.1", + "@commitlint/types": "^17.8.1", + "@types/node": "20.5.1", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.2.2" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/load/node_modules/@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/message": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz", + "integrity": "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/parse": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz", + "integrity": "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "conventional-changelog-angular": "^6.0.0", + "conventional-commits-parser": "^4.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/read": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz", + "integrity": "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^17.8.1", + "@commitlint/types": "^17.8.1", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz", + "integrity": "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^17.8.1", + "@commitlint/types": "^17.8.1", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/rules": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz", + "integrity": "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^17.8.1", + "@commitlint/message": "^17.8.1", + "@commitlint/to-lines": "^17.8.1", + "@commitlint/types": "^17.8.1", + "execa": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz", + "integrity": "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/top-level": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz", + "integrity": "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@css-render/plugin-bem": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.14.tgz", + "integrity": "sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==", + "license": "MIT", + "peerDependencies": { + "css-render": "~0.15.14" + } + }, + "node_modules/@css-render/vue3-ssr": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.14.tgz", + "integrity": "sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@develar/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@develar/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@develar/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@electron/asar": { + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.10.tgz", + "integrity": "sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/asar/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/get/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@electron/notarize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.1.tgz", + "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/remote": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", + "integrity": "sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==", + "license": "MIT", + "peerDependencies": { + "electron": ">= 13.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", + "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@electron/asar": "^3.2.1", + "@malept/cross-spawn-promise": "^1.1.0", + "debug": "^4.3.1", + "dir-compare": "^3.0.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@icon-park/vue-next": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@icon-park/vue-next/-/vue-next-1.4.2.tgz", + "integrity": "sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 8.0.0", + "npm": ">= 5.0.0" + }, + "peerDependencies": { + "vue": "3.x" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/vue": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.2.tgz", + "integrity": "sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "vue": ">=3" + } + }, + "node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", + "license": "Apache-2.0" + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxt/kit": { + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.12.4.tgz", + "integrity": "sha512-aNRD1ylzijY0oYolldNcZJXVyxdGzNTl+Xd0UYyFQCu9f4wqUZqQ9l+b7arCEzchr96pMK0xdpvLcS3xo1wDcw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@nuxt/schema": "3.12.4", + "c12": "^1.11.1", + "consola": "^3.2.3", + "defu": "^6.1.4", + "destr": "^2.0.3", + "globby": "^14.0.2", + "hash-sum": "^2.0.0", + "ignore": "^5.3.1", + "jiti": "^1.21.6", + "klona": "^2.0.6", + "knitwork": "^1.1.0", + "mlly": "^1.7.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.3", + "scule": "^1.3.0", + "semver": "^7.6.3", + "ufo": "^1.5.4", + "unctx": "^2.3.1", + "unimport": "^3.9.0", + "untyped": "^1.4.2" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/@nuxt/kit/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/kit/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/kit/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nuxt/kit/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@nuxt/schema": { + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.12.4.tgz", + "integrity": "sha512-H7FwBV4ChssMaeiLyPdVLOLUa0326ebp3pNbJfGgFt7rSoKh1MmgjorecA8JMxOQZziy3w6EELf4+5cgLh/F1w==", + "license": "MIT", + "optional": true, + "dependencies": { + "compatx": "^0.1.8", + "consola": "^3.2.3", + "defu": "^6.1.4", + "hookable": "^5.5.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.3", + "scule": "^1.3.0", + "std-env": "^3.7.0", + "ufo": "^1.5.4", + "uncrypto": "^0.1.3", + "unimport": "^3.9.0", + "untyped": "^1.4.2" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.7.tgz", + "integrity": "sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@traptitech/markdown-it-katex": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@traptitech/markdown-it-katex/-/markdown-it-katex-3.6.0.tgz", + "integrity": "sha512-CnJzTWxsgLGXFdSrWRaGz7GZ1kUUi8g3E9HzJmeveX1YwVJavrKYqysktfHZQsujdnRqV5O7g8FPKEA/aeTkOQ==", + "license": "MIT", + "dependencies": { + "katex": "^0.16.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/crypto-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.2.2.tgz", + "integrity": "sha512-sDOLlVbHhXpAUAL0YHDUUwDZf3iN4Bwi4W6a0W0b+QcAezUbRtH4FVb+9J4h+XFPW7l/gQ9F8qC7P+Ec4k8QVQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3": { + "version": "6.7.8", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-6.7.8.tgz", + "integrity": "sha512-hlPt5L0wvDzeZx9VfLdgLJ3Yr+/bAWY0ECjN88Grx7EZaDHKui+2YZXGMB2IMZMerJM+WLwoZ5pOTPHSutGEEw==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "^2", + "@types/d3-axis": "^2", + "@types/d3-brush": "^2", + "@types/d3-chord": "^2", + "@types/d3-color": "^2", + "@types/d3-contour": "^2", + "@types/d3-delaunay": "^5", + "@types/d3-dispatch": "^2", + "@types/d3-drag": "^2", + "@types/d3-dsv": "^2", + "@types/d3-ease": "^2", + "@types/d3-fetch": "^2", + "@types/d3-force": "^2", + "@types/d3-format": "^2", + "@types/d3-geo": "^2", + "@types/d3-hierarchy": "^2", + "@types/d3-interpolate": "^2", + "@types/d3-path": "^2", + "@types/d3-polygon": "^2", + "@types/d3-quadtree": "^2", + "@types/d3-random": "^2", + "@types/d3-scale": "^3", + "@types/d3-scale-chromatic": "^2", + "@types/d3-selection": "^2", + "@types/d3-shape": "^2", + "@types/d3-time": "^2", + "@types/d3-time-format": "^3", + "@types/d3-timer": "^2", + "@types/d3-transition": "^2", + "@types/d3-zoom": "^2" + } + }, + "node_modules/@types/d3-array": { + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-2.12.7.tgz", + "integrity": "sha512-SVvxzxRVnIgtJbNTj5ZVJ9CZkVOANCpW0nQbRi7EOU5Q9G+JQQjXD2SCpr1OYCX09b3Yr7o0+CBofZAgU42rbQ==", + "license": "MIT" + }, + "node_modules/@types/d3-axis": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-2.1.6.tgz", + "integrity": "sha512-X/CazlQun7XcSbRhaxwr605neUIGiUeURvsOGAIdvH1nD6o25pzkdxPNe7XcTKyRJeShlubjsUEG9tNeZZdRaQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-brush": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-2.1.5.tgz", + "integrity": "sha512-ycizd1l+vIceUIO+JA6HAjivlXSGlDbqKXe4Q8cjUPtY/NMkz6CvpcBqzLPRa9iMDqRnUQHwSIEakb0sX+PM2A==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-chord": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-2.0.6.tgz", + "integrity": "sha512-PTZyfJ7z9Ttl7joKRfyBl0icMYAMRj4n5trsE9Iinipp8Fe0DlwK6xwboWWMTEaj6Vzko68brnpvpoDl4qAKwA==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.6.tgz", + "integrity": "sha512-tbaFGDmJWHqnenvk3QGSvD3RVwr631BjKRD7Sc7VLRgrdX5mk5hTyoeBL6rXZaeoXzmZwIl1D2HPogEdt1rHBg==", + "license": "MIT" + }, + "node_modules/@types/d3-contour": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-2.0.7.tgz", + "integrity": "sha512-oJNOYtQzKY+04lhEr4aTnW2IrCVK5jiF2YMJf687HV5dIGsOgM8Xc15uSuu9zu4FYOJJ/FTqVaspHFR9pxVNTg==", + "license": "MIT", + "dependencies": { + "@types/d3-array": "^2", + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-delaunay": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-5.3.4.tgz", + "integrity": "sha512-GEQuDXVKQvHulQ+ecKyCubOmVjXrifAj7VR26rWVAER/IbWemaT/Tmo84ESiTtoDghg5ILdMZH7pYXQEt/Vu9A==", + "license": "MIT" + }, + "node_modules/@types/d3-dispatch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-2.0.4.tgz", + "integrity": "sha512-63uJJO3Eflu1tYXjD+Gmkk5Bc/ribIWyCnOfAY+WB9ihBw7Tdd1IRKZ34ASxy+Dzlg+lOT5+ZHCSZw0V+UNAEQ==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-2.0.5.tgz", + "integrity": "sha512-VbvN7t3TelH6R0cKVXkOXmDiC7pRhtoodiPZ94p0n9TayGqg0Z/5vSxsPelVsZyVzloEo2kdZ7BO1n9ezWux+w==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-dsv": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-2.0.9.tgz", + "integrity": "sha512-mjbmiSz8p7rCCyan4Ai6Rxqtp4MW447RfyKPfE1VaFl61l/nkLsFObF26X279eQMjHqGKDI2kdx26qEdkLAVBQ==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-2.0.4.tgz", + "integrity": "sha512-DGh1MzShlCPTTau4+C8JLJjKt9sT9LgGZokYFx8fSxy+Z6fHns/Lc+lwTc4owuq8FwCDg7Mw2/mp0G8S5DBm7Q==", + "license": "MIT" + }, + "node_modules/@types/d3-fetch": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-2.0.5.tgz", + "integrity": "sha512-azKhvVVUbAK6sJy22b9t8TtsGmPlauU9aGVLSP5cGYSWMCbtMRf3nGz58Eu+UgP1u3VEK+12JVc4HB1MMeVaSg==", + "license": "MIT", + "dependencies": { + "@types/d3-dsv": "^2" + } + }, + "node_modules/@types/d3-force": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.7.tgz", + "integrity": "sha512-x5pvWw0HUBrcpMaMOd70ICEL27gOeC9hyhilTc+OP+4tErgEg3w+fZWA475eTrG7gi8BB0TNdfGRprpy09Vo9A==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.5.tgz", + "integrity": "sha512-ntJZQfz4BK8m53vkUVk+3PE7PHr9esrfVkClxebcMNP/4N1F0rPdzv9hKNqx2gZBRHSYg1kQumeUDIrHDpQGwQ==", + "license": "MIT" + }, + "node_modules/@types/d3-geo": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-2.0.7.tgz", + "integrity": "sha512-RIXlxPdxvX+LAZFv+t78CuYpxYag4zuw9mZc+AwfB8tZpKU90rMEn2il2ADncmeZlb7nER9dDsJpRisA3lRvjA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/d3-hierarchy": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-2.0.5.tgz", + "integrity": "sha512-t/xXqB6MXT6Hp0BgFV00ZonpZbs9fUtYPM3QzqOlmghefovpnnxEN7mAdUqE/mNinRI/eR8gewDAobFJA0TNBw==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.5.tgz", + "integrity": "sha512-UINE41RDaUMbulp+bxQMDnhOi51rh5lA2dG+dWZU0UY/IwQiG/u2x8TfnWYU9+xwGdXsJoAvrBYUEQl0r91atg==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "^2" + } + }, + "node_modules/@types/d3-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.4.tgz", + "integrity": "sha512-jjZVLBjEX4q6xneKMmv62UocaFJFOTQSb/1aTzs3m3ICTOFoVaqGBHpNLm/4dVi0/FTltfBKgmOK1ECj3/gGjA==", + "license": "MIT" + }, + "node_modules/@types/d3-polygon": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-2.0.3.tgz", + "integrity": "sha512-4hwYYp/KDSNDdBFhf08SifGD7YJgMyUuDulnMsAGVi9X2w5QvdB47wlXMiJr+rdiBKALMq3VJ/i8qKy9gUzCbg==", + "license": "MIT" + }, + "node_modules/@types/d3-quadtree": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-2.0.6.tgz", + "integrity": "sha512-PsbDucsVzy1tSX+y9MEqosOk3gChbolcw7QWdR87Bo/T1iwjZg8AZ0E8d1swxsNBt7cAKF/ISk0SDJNd95bMMw==", + "license": "MIT" + }, + "node_modules/@types/d3-random": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-2.2.3.tgz", + "integrity": "sha512-Ghs4R3CcgJ3o6svszRzIH4b8PPYex/COo+rhhZjDAs+bVducXwjmVSi27WcDOaLLCBV2t3tfVH9bYXAL76IvQA==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", + "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.4.tgz", + "integrity": "sha512-OUgfg6wmoZVhs0/pV8HZhsMw7pYJnS6smfNK2S5ogMaPHfDUaTMu7JA5ssZrRupwf2vWI+haPAuUpsz+M1BOKA==", + "license": "MIT" + }, + "node_modules/@types/d3-selection": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-2.0.4.tgz", + "integrity": "sha512-5a21DF7avVPmiUau8KTsv5r76yGqbMgq4QtByoCBPXUrVFWFkd3Ob4OOhmePNRbQqfUCNFjgB4sO7sUURnKcBg==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.7.tgz", + "integrity": "sha512-HedHlfGHdwzKqX9+PiQVXZrdmGlwo7naoefJP7kCNk4Y7qcpQt1tUaoRa6qn0kbTdlaIHGO7111qLtb/6J8uuw==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "^2" + } + }, + "node_modules/@types/d3-time": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", + "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.4.tgz", + "integrity": "sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.3.tgz", + "integrity": "sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-2.0.5.tgz", + "integrity": "sha512-G+ne0FD8EK76ejXuB1sszSoPRDdTf+FDx6D3ilwYehfcQpo3WAY0xxkjXTQiP9Tu26qSNA7kyZ07PXZPby/Gdg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/d3-zoom": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-2.0.7.tgz", + "integrity": "sha512-JWke4E8ZyrKUQ68ESTWSK16fVb0OYnaiJ+WXJRYxKLn4aXU0o4CLYxMWBEiouUfO3TTCoyroOrGPcBG6u1aAxA==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "^2", + "@types/d3-selection": "^2" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/dom-to-image": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@types/dom-to-image/-/dom-to-image-2.6.7.tgz", + "integrity": "sha512-me5VbCv+fcXozblWwG13krNBvuEOm6kA5xoa4RrjDJCNFOZSWR3/QLtOXimBHk1Fisq69Gx3JtOoXtg1N1tijg==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/file-saver": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", + "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/markdown-it-link-attributes": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/markdown-it-link-attributes/-/markdown-it-link-attributes-3.0.5.tgz", + "integrity": "sha512-VZ2BGN3ywUg7mBD8W6PwR8ChpOxaQSBDbLqPgvNI+uIra3zY2af1eG/3XzWTKjEraTWskMKnZqZd6m1fDF67Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/markdown-it": "*" + } + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/verror": { + "version": "1.10.10", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz", + "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", + "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==", + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vicons/ionicons5": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.12.0.tgz", + "integrity": "sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.11.1.tgz", + "integrity": "sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "1.11.1" + } + }, + "node_modules/@volar/source-map": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.11.1.tgz", + "integrity": "sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "muggle-string": "^0.3.1" + } + }, + "node_modules/@volar/typescript": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.11.1.tgz", + "integrity": "sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "1.11.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.36.tgz", + "integrity": "sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.36", + "entities": "^5.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-5.0.0.tgz", + "integrity": "sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.36.tgz", + "integrity": "sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.4.36", + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.36.tgz", + "integrity": "sha512-rhuHu7qztt/rNH90dXPTzhB7hLQT2OC4s4GrPVqmzVgPY4XBlfWmcWzn4bIPEWNImt0CjO7kfHAf/1UXOtx3vw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.36", + "@vue/compiler-dom": "3.4.36", + "@vue/compiler-ssr": "3.4.36", + "@vue/shared": "3.4.36", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.40", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.36.tgz", + "integrity": "sha512-Wt1zyheF0zVvRJyhY74uxQbnkXV2Le/JPOrAxooR4rFYKC7cFr+cRqW6RU3cM/bsTy7sdZ83IDuy/gLPSfPGng==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.4.36", + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-1.8.27.tgz", + "integrity": "sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~1.11.1", + "@volar/source-map": "~1.11.1", + "@vue/compiler-dom": "^3.3.0", + "@vue/shared": "^3.3.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.3.1", + "path-browserify": "^1.0.1", + "vue-template-compiler": "^2.7.14" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.36.tgz", + "integrity": "sha512-wN1aoCwSoqrt1yt8wO0gc13QaC+Vk1o6AoSt584YHNnz6TGDhh1NCMUYgAnvp4HEIkLdGsaC1bvu/P+wpoDEXw==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.36.tgz", + "integrity": "sha512-9+TR14LAVEerZWLOm/N/sG2DVYhrH2bKgFrbH/FVt/Q8Jdw4OtdcGMRC6Tx8VAo0DA1eqAqrZaX0fbOaOxxZ4A==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.4.36", + "@vue/shared": "3.4.36" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.36.tgz", + "integrity": "sha512-2Qe2fKkLxgZBVvHrG0QMNLL4bsx7Ae88pyXebY2WnQYABpOnGYvA+axMbcF9QwM4yxnsv+aELbC0eiNVns7mGw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.4.36", + "@vue/runtime-core": "3.4.36", + "@vue/shared": "3.4.36", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.36.tgz", + "integrity": "sha512-2XW90Rq8+Y7S1EIsAuubZVLm0gCU8HYb5mRAruFdwfC3XSOU5/YKePz29csFzsch8hXaY5UHh7ZMddmi1XTJEA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.4.36", + "@vue/shared": "3.4.36" + }, + "peerDependencies": { + "vue": "3.4.36" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.36.tgz", + "integrity": "sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA==", + "license": "MIT" + }, + "node_modules/@vueuse/core": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz", + "integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.16", + "@vueuse/metadata": "9.13.0", + "@vueuse/shared": "9.13.0", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/electron": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/electron/-/electron-10.11.0.tgz", + "integrity": "sha512-zb7upbKRurTDYTubGfbjUrPwIsTOsog0sULWzEeffO7cI9HhiwWqDqgW8JgPkcut7QlA+kj+TvWHWVLrx963Og==", + "license": "MIT", + "dependencies": { + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "electron": ">=9.0.0" + } + }, + "node_modules/@vueuse/electron/node_modules/@vueuse/shared": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/electron/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.11.0.tgz", + "integrity": "sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "async-validator": "^4", + "axios": "^1", + "change-case": "^4", + "drauu": "^0.3", + "focus-trap": "^7", + "fuse.js": "^6", + "idb-keyval": "^6", + "jwt-decode": "^3", + "nprogress": "^0.2", + "qrcode": "^1.5", + "sortablejs": "^1", + "universal-cookie": "^6" + }, + "peerDependenciesMeta": { + "async-validator": { + "optional": true + }, + "axios": { + "optional": true + }, + "change-case": { + "optional": true + }, + "drauu": { + "optional": true + }, + "focus-trap": { + "optional": true + }, + "fuse.js": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "jwt-decode": { + "optional": true + }, + "nprogress": { + "optional": true + }, + "qrcode": { + "optional": true + }, + "sortablejs": { + "optional": true + }, + "universal-cookie": { + "optional": true + } + } + }, + "node_modules/@vueuse/integrations/node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/core": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/metadata": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/@vueuse/shared": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/integrations/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/metadata": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz", + "integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/motion": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@vueuse/motion/-/motion-2.2.3.tgz", + "integrity": "sha512-QsS9P7MDKFF2j4eDPuo6lezUDPE7MQp4+unBeR2Ym8RkhtMEw/oVbnHPHL986rsmnnlUZkHVSv5kKoHJzjbtmQ==", + "license": "MIT", + "dependencies": { + "@vueuse/core": "^10.10.0", + "@vueuse/shared": "^10.10.0", + "csstype": "^3.1.3", + "framesync": "^6.1.2", + "popmotion": "^11.0.5", + "style-value-types": "^5.1.2" + }, + "optionalDependencies": { + "@nuxt/kit": "^3.11.2" + }, + "peerDependencies": { + "vue": ">=3.0.0" + } + }, + "node_modules/@vueuse/motion/node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@vueuse/motion/node_modules/@vueuse/core": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz", + "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.0", + "@vueuse/shared": "10.11.0", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/motion/node_modules/@vueuse/core/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/motion/node_modules/@vueuse/metadata": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz", + "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/motion/node_modules/@vueuse/shared": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz", + "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/motion/node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vueuse/shared": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz", + "integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==", + "license": "MIT", + "dependencies": { + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/7zip-bin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", + "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "devOptional": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/add": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/add/-/add-2.0.6.tgz", + "integrity": "sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q==", + "license": "MIT" + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", + "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true, + "license": "MIT" + }, + "node_modules/app-builder-lib": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.13.3.tgz", + "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.2.1", + "@electron/osx-sign": "1.0.5", + "@electron/universal": "1.5.1", + "@malept/flatpak-bundler": "^0.4.0", + "@types/fs-extra": "9.0.13", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "electron-publish": "24.13.1", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^5.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^5.1.1", + "read-config-file": "6.3.2", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.8", + "tar": "^6.1.12", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "dmg-builder": "24.13.3", + "electron-builder-squirrel-windows": "24.13.3" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/archiver": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autolinker": { + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.16.2.tgz", + "integrity": "sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "license": "MIT", + "optional": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builder-util": { + "version": "24.13.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.13.1.tgz", + "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.2.0", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", + "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/c12": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.11.1.tgz", + "integrity": "sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "chokidar": "^3.6.0", + "confbox": "^0.1.7", + "defu": "^6.1.4", + "dotenv": "^16.4.5", + "giget": "^1.2.3", + "jiti": "^1.21.6", + "mlly": "^1.7.1", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "perfect-debounce": "^1.0.0", + "pkg-types": "^1.1.1", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.4" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001650", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", + "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clientjs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/clientjs/-/clientjs-0.2.1.tgz", + "integrity": "sha512-HN7yzgq8xMDjkNpSnpH3foMxaX5q9CUMcLAIsNwNnbJnuEhR8CDRxm22mEo+uQdiOUkCl5ZjdoN9lGBbL4jutQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "globalthis": "^1.0.2", + "inherits": "^2.0.4", + "murmurhash-js": "^1.0.0", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "license": "MIT", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/compatx": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/compatx/-/compatx-0.1.8.tgz", + "integrity": "sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==", + "license": "MIT", + "optional": true + }, + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "license": "MIT", + "optional": true + }, + "node_modules/config-file-ts": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz", + "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.3.10", + "typescript": "^5.3.3" + } + }, + "node_modules/config-file-ts/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/config-file-ts/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/config-file-ts/node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-js-compat": { + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", + "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=4" + } + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-render": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/css-render/-/css-render-0.15.14.tgz", + "integrity": "sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "~0.8.0", + "csstype": "~3.0.5" + } + }, + "node_modules/css-render/node_modules/csstype": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz", + "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==", + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-6.7.0.tgz", + "integrity": "sha512-hNHRhe+yCDLUG6Q2LwvR/WdNFPOJQ5VWqsJcwIYVeI401+d2/rrCjxSXkiAdIlpx7/73eApFB4Olsmh3YN7a6g==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "2", + "d3-axis": "2", + "d3-brush": "2", + "d3-chord": "2", + "d3-color": "2", + "d3-contour": "2", + "d3-delaunay": "5", + "d3-dispatch": "2", + "d3-drag": "2", + "d3-dsv": "2", + "d3-ease": "2", + "d3-fetch": "2", + "d3-force": "2", + "d3-format": "2", + "d3-geo": "2", + "d3-hierarchy": "2", + "d3-interpolate": "2", + "d3-path": "2", + "d3-polygon": "2", + "d3-quadtree": "2", + "d3-random": "2", + "d3-scale": "3", + "d3-scale-chromatic": "2", + "d3-selection": "2", + "d3-shape": "2", + "d3-time": "2", + "d3-time-format": "3", + "d3-timer": "2", + "d3-transition": "2", + "d3-zoom": "2" + } + }, + "node_modules/d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-axis": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-2.1.0.tgz", + "integrity": "sha512-z/G2TQMyuf0X3qP+Mh+2PimoJD41VOCjViJzT0BHeL/+JQAofkiWZbWxlwFGb1N8EN+Cl/CW+MUKbVzr1689Cw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-brush": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-2.1.0.tgz", + "integrity": "sha512-cHLLAFatBATyIKqZOkk/mDHUbzne2B3ZwxkzMHvFTCZCmLaXDpZRihQSn8UNXTkGD/3lb/W2sQz0etAftmHMJQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-drag": "2", + "d3-interpolate": "1 - 2", + "d3-selection": "2", + "d3-transition": "2" + } + }, + "node_modules/d3-chord": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-2.0.0.tgz", + "integrity": "sha512-D5PZb7EDsRNdGU4SsjQyKhja8Zgu+SHZfUSO5Ls8Wsn+jsAKUUGkcshLxMg9HDFxG3KqavGWaWkJ8EpU8ojuig==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1 - 2" + } + }, + "node_modules/d3-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", + "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-contour": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-2.0.0.tgz", + "integrity": "sha512-9unAtvIaNk06UwqBmvsdHX7CZ+NPDZnn8TtNH1myW93pWJkhsV25JcgnYAu0Ck5Veb1DHiCv++Ic5uvJ+h50JA==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "2" + } + }, + "node_modules/d3-delaunay": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", + "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "license": "ISC", + "dependencies": { + "delaunator": "4" + } + }, + "node_modules/d3-dispatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-drag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-2.0.0.tgz", + "integrity": "sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-selection": "2" + } + }, + "node_modules/d3-dsv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", + "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "license": "BSD-3-Clause", + "dependencies": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json", + "csv2tsv": "bin/dsv2dsv", + "dsv2dsv": "bin/dsv2dsv", + "dsv2json": "bin/dsv2json", + "json2csv": "bin/json2dsv", + "json2dsv": "bin/json2dsv", + "json2tsv": "bin/json2dsv", + "tsv2csv": "bin/dsv2dsv", + "tsv2json": "bin/dsv2json" + } + }, + "node_modules/d3-dsv/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/d3-dsv/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d3-ease": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-2.0.0.tgz", + "integrity": "sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-fetch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-2.0.0.tgz", + "integrity": "sha512-TkYv/hjXgCryBeNKiclrwqZH7Nb+GaOwo3Neg24ZVWA3MKB+Rd+BY84Nh6tmNEMcjUik1CSUWjXYndmeO6F7sw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-dsv": "1 - 2" + } + }, + "node_modules/d3-flextree": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/d3-flextree/-/d3-flextree-2.1.2.tgz", + "integrity": "sha512-gJiHrx5uTTHq44bjyIb3xpbmmdZcWLYPKeO9EPVOq8EylMFOiH2+9sWqKAiQ4DcFuOZTAxPOQyv0Rnmji/g15A==", + "license": "WTFPL", + "dependencies": { + "d3-hierarchy": "^1.1.5" + } + }, + "node_modules/d3-flextree/node_modules/d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-force": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", + "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-quadtree": "1 - 2", + "d3-timer": "1 - 2" + } + }, + "node_modules/d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-geo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", + "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "^2.5.0" + } + }, + "node_modules/d3-hierarchy": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", + "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-interpolate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", + "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-color": "1 - 2" + } + }, + "node_modules/d3-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", + "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-2.0.0.tgz", + "integrity": "sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-quadtree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", + "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-random": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-2.2.2.tgz", + "integrity": "sha512-0D9P8TRj6qDAtHhRQn6EfdOtHMfsUWanl3yb/84C4DqpZ+VsgfI5iTVRNRbELCfNvRfpMr8OrqqUTQ6ANGCijw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz", + "integrity": "sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-color": "1 - 2", + "d3-interpolate": "1 - 2" + } + }, + "node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-shape": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", + "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1 - 2" + } + }, + "node_modules/d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "2" + } + }, + "node_modules/d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-time": "1 - 2" + } + }, + "node_modules/d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-transition": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-2.0.0.tgz", + "integrity": "sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-color": "1 - 2", + "d3-dispatch": "1 - 2", + "d3-ease": "1 - 2", + "d3-interpolate": "1 - 2", + "d3-timer": "1 - 2" + }, + "peerDependencies": { + "d3-selection": "2" + } + }, + "node_modules/d3-zoom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-2.0.0.tgz", + "integrity": "sha512-fFg7aoaEm9/jf+qfstak0IYpnesZLiMX6GZvXtUSdv8RH2o4E2qeelgdU09eKS6wGuiGMfcnMI0nTIqWzRHGpw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-drag": "2", + "d3-interpolate": "1 - 2", + "d3-selection": "2", + "d3-transition": "2" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/date-fns-tz": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.1.tgz", + "integrity": "sha512-fJCG3Pwx8HUoLhkepdsP7Z5RsucUi+ZBOxyM5d0ZZ6c4SdYustq0VMmOu6Wf7bli+yS/Jwp91TOCqn9jMcVrUA==", + "license": "MIT", + "peerDependencies": { + "date-fns": "2.x" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT", + "optional": true + }, + "node_modules/delaunator": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", + "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", + "license": "ISC" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "license": "MIT" + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "license": "MIT", + "optional": true + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT", + "optional": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dir-compare": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0", + "minimatch": "^3.0.4" + } + }, + "node_modules/dir-compare/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dmg-builder": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.13.3.tgz", + "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dmg-license/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/dmg-license/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-to-image": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/dom-to-image/-/dom-to-image-2.6.0.tgz", + "integrity": "sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA==", + "license": "MIT" + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "25.9.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-25.9.8.tgz", + "integrity": "sha512-PGgp6PH46QVENHuAHc2NT1Su8Q1qov7qIl2jI5tsDpTibwV2zD8539AeWBQySeBU4dhbj9onIl7+1bXQ0wefBg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^18.11.18", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-builder": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.13.3.tgz", + "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "app-builder-lib": "24.13.3", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "dmg-builder": "24.13.3", + "fs-extra": "^10.1.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.3.2", + "simple-update-notifier": "2.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder-squirrel-windows": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", + "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "app-builder-lib": "24.13.3", + "archiver": "^5.3.1", + "builder-util": "24.13.1", + "fs-extra": "^10.1.0" + } + }, + "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish": { + "version": "24.13.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz", + "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "24.13.1", + "builder-util-runtime": "9.2.4", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "license": "MIT", + "optional": true + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-antfu": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-antfu/-/eslint-plugin-antfu-0.35.3.tgz", + "integrity": "sha512-90Xct24s2n3aQhuuFFcPLhF5E6lU5s225B0VXupSjvDTuF+CmSQQLQG6KcqcdpA8O6dMbeXB9zy3SJ4aO7lndw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.53.0" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-html": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz", + "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "htmlparser2": "^8.0.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsonc": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.16.0.tgz", + "integrity": "sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "eslint-compat-utils": "^0.5.0", + "espree": "^9.6.1", + "graphemer": "^1.4.0", + "jsonc-eslint-parser": "^2.0.4", + "natural-compare": "^1.4.0", + "synckit": "^0.6.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-markdown": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^0.8.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-no-only-tests": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz", + "integrity": "sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", + "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "45.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz", + "integrity": "sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.19.1", + "@eslint-community/eslint-utils": "^4.1.2", + "ci-info": "^3.6.1", + "clean-regexp": "^1.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.0", + "jsesc": "^3.0.2", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "regjsparser": "^0.9.1", + "safe-regex": "^2.1.1", + "semver": "^7.3.8", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.28.0" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz", + "integrity": "sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-yml": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz", + "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.2", + "eslint-compat-utils": "^0.5.0", + "lodash": "^4.17.21", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^1.2.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/evtd": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/evtd/-/evtd-0.2.4.tgz", + "integrity": "sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==", + "license": "MIT" + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "license": "MIT" + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "devOptional": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framesync": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.1.2.tgz", + "integrity": "sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==", + "license": "MIT", + "dependencies": { + "tslib": "2.4.0" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/giget": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", + "license": "MIT", + "optional": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.3", + "nypm": "^0.3.8", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "tar": "^6.2.0" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "license": "MIT", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "license": "MIT", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "license": "MIT" + }, + "node_modules/highlight.js": { + "version": "11.10.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.10.0.tgz", + "integrity": "sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT", + "optional": true + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-to-image": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.11.11.tgz", + "integrity": "sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==", + "license": "MIT" + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "license": "MIT", + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "license": "ISC" + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "devOptional": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "devOptional": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", + "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/katex": { + "version": "0.16.11", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", + "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.1.0.tgz", + "integrity": "sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==", + "license": "MIT", + "optional": true + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lint-staged": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", + "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "5.3.0", + "commander": "11.0.0", + "debug": "4.3.4", + "execa": "7.2.0", + "lilconfig": "2.1.0", + "listr2": "6.6.1", + "micromatch": "4.0.5", + "pidtree": "0.6.0", + "string-argv": "0.3.2", + "yaml": "2.3.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/commander": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/lint-staged/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/lint-staged/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/lint-staged/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", + "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^5.0.1", + "rfdc": "^1.3.0", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", + "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^5.0.0", + "cli-cursor": "^4.0.0", + "slice-ansi": "^5.0.0", + "strip-ansi": "^7.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-link-attributes": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-4.0.1.tgz", + "integrity": "sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/markmap-common": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/markmap-common/-/markmap-common-0.14.2.tgz", + "integrity": "sha512-uGk++7mh237YneJRn9BH/KMbc1ImvMSlvOHOXqK9TyFP+NqQ0+ZYYKYXdTRyozzcMMtz0U0fb00k3Z7FNkAu1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.1" + } + }, + "node_modules/markmap-lib": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/markmap-lib/-/markmap-lib-0.14.4.tgz", + "integrity": "sha512-tyXhpER0XdQe/sxWOjMVshbPcfrcNnV5MzdjxVGUUovep1jxFuuBWS5Cp7z41pzUpW1+56Mxb7Vgp4Psme3sSw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.9", + "js-yaml": "^4.1.0", + "katex": "^0.16.0", + "prismjs": "^1.28.0", + "remarkable": "^2.0.1", + "remarkable-katex": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "markmap-common": "*" + } + }, + "node_modules/markmap-view": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/markmap-view/-/markmap-view-0.14.4.tgz", + "integrity": "sha512-SHG5FmqIjGiWjAn4FJ7FgzbPN9c0XPYEFu/RV7c3ZyWuKNL1YZRbwROjkElN5UXaMDhjlieoxnWJIDKp3vPRAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@types/d3": "^6.0.0", + "d3": "^6.2.0", + "d3-flextree": "^2.1.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "markmap-common": "*" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "license": "MIT" + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "devOptional": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "devOptional": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mlly": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "license": "MIT", + "optional": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.3.1.tgz", + "integrity": "sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/naive-ui": { + "version": "2.39.0", + "resolved": "https://registry.npmjs.org/naive-ui/-/naive-ui-2.39.0.tgz", + "integrity": "sha512-5oUJzRG+rtLSH8eRU+fJvVYiQids2BxF9jp+fwGoAqHOptEINrBlgBu9uy+95RHE5FLJ7Q/z41o+qkoGnUrKxQ==", + "license": "MIT", + "dependencies": { + "@css-render/plugin-bem": "^0.15.12", + "@css-render/vue3-ssr": "^0.15.12", + "@types/katex": "^0.16.2", + "@types/lodash": "^4.14.198", + "@types/lodash-es": "^4.17.9", + "async-validator": "^4.2.5", + "css-render": "^0.15.12", + "csstype": "^3.1.3", + "date-fns": "^2.30.0", + "date-fns-tz": "^2.0.0", + "evtd": "^0.2.4", + "highlight.js": "^11.8.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "seemly": "^0.3.8", + "treemate": "^0.3.11", + "vdirs": "^0.1.8", + "vooks": "^0.2.12", + "vueuc": "^0.4.58" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "license": "MIT", + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.9.tgz", + "integrity": "sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==", + "license": "MIT", + "optional": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "execa": "^8.0.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/nypm/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "license": "MIT", + "optional": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/nypm/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/nypm/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", + "optional": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nypm/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "license": "MIT", + "optional": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT", + "optional": true + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT", + "optional": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinia": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.2.1.tgz", + "integrity": "sha512-ltEU3xwiz5ojVMizdP93AHi84Rtfz0+yKd8ud75hr9LVyWX2alxp7vLbY1kFm7MXFmHHr/9B08Xf8Jj6IHTEiQ==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "license": "MIT", + "optional": true, + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/popmotion": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.5.tgz", + "integrity": "sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==", + "license": "MIT", + "dependencies": { + "framesync": "6.1.2", + "hey-listen": "^1.0.8", + "style-value-types": "5.1.2", + "tslib": "2.4.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/qrcode/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "license": "MIT", + "optional": true, + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-config-file": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", + "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-file-ts": "^0.2.4", + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/read-config-file/node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remarkable": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz", + "integrity": "sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.10", + "autolinker": "^3.11.0" + }, + "bin": { + "remarkable": "bin/remarkable.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/remarkable-katex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/remarkable-katex/-/remarkable-katex-1.2.1.tgz", + "integrity": "sha512-Y1VquJBZnaVsfsVcKW2hmjT+pDL7mp8l5WAVlvuvViltrdok2m1AIKmJv8SsH+mBY84PoMw67t3kTWw1dIm8+g==", + "license": "MIT" + }, + "node_modules/remarkable/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/remarkable/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "devOptional": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "devOptional": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT", + "optional": true + }, + "node_modules/seemly": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/seemly/-/seemly-0.3.8.tgz", + "integrity": "sha512-MW8Qs6vbzo0pHmDpFSYPna+lwpZ6Zk1ancbajw/7E8TKtHdV+1DfZZD+kKJEhG/cAoB/i+LiT+5msZOqj0DwRA==", + "license": "MIT" + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT", + "optional": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true, + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "license": "MIT", + "optional": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stringify-object/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", + "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "license": "MIT", + "optional": true, + "dependencies": { + "js-tokens": "^9.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", + "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "license": "MIT", + "optional": true + }, + "node_modules/style-value-types": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.1.2.tgz", + "integrity": "sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==", + "license": "MIT", + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "2.4.0" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.6.2.tgz", + "integrity": "sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.8.tgz", + "integrity": "sha512-GkP17r9GQkxgZ9FKHJQEnjJuKBcbFhMFzKu5slmN6NjlCuFnYJMQ8N4AZ6VrUyiRXlDtPKHkesuQ/MS913Nvdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.31.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.4.tgz", + "integrity": "sha512-3OU03GgblDgu0g+sdnsVzhBPxnjV+WJuMmocN1qBBZDQ3ia7jZQSAkePeKbPlYAejGXUTYe1CmSaUeV51mvaIw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/treemate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/treemate/-/treemate-0.3.11.tgz", + "integrity": "sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==", + "license": "MIT" + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", + "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "license": "MIT", + "optional": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT", + "optional": true + }, + "node_modules/unctx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.3.1.tgz", + "integrity": "sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==", + "license": "MIT", + "optional": true, + "dependencies": { + "acorn": "^8.8.2", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.0", + "unplugin": "^1.3.1" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.10.0.tgz", + "integrity": "sha512-/UvKRfWx3mNDWwWQhR62HsoM3wxHwYdTq8ellZzMOHnnw4Dp8tovgthyW7DjTrbjDL+i4idOp06voz2VKlvrLw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "acorn": "^8.12.1", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "fast-glob": "^3.3.2", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.11", + "mlly": "^1.7.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.3", + "scule": "^1.3.0", + "strip-literal": "^2.1.0", + "unplugin": "^1.12.0" + } + }, + "node_modules/unimport/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport/node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "license": "MIT", + "optional": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.1.tgz", + "integrity": "sha512-aXEH9c5qi3uYZHo0niUtxDlT9ylG/luMW/dZslSCkbtC31wCyFkmM0kyoBBh+Grhn7CL+/kvKLfN61/EdxPxMQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "acorn": "^8.12.1", + "chokidar": "^3.6.0", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/untyped": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/untyped/-/untyped-1.4.2.tgz", + "integrity": "sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@babel/core": "^7.23.7", + "@babel/standalone": "^7.23.8", + "@babel/types": "^7.23.6", + "defu": "^6.1.4", + "jiti": "^1.21.0", + "mri": "^1.2.0", + "scule": "^1.2.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "devOptional": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/utrie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", + "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "license": "MIT", + "dependencies": { + "base64-arraybuffer": "^1.0.2" + } + }, + "node_modules/v-viewer": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-3.0.11.tgz", + "integrity": "sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "viewerjs": "^1.9.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vdirs": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/vdirs/-/vdirs-0.1.8.tgz", + "integrity": "sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==", + "license": "MIT", + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/viewerjs": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.6.tgz", + "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==", + "license": "MIT" + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-pwa": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.14.7.tgz", + "integrity": "sha512-dNJaf0fYOWncmjxv9HiSa2xrSjipjff7IkYE5oIUJ2x5HKu3cXgA8LRgzOwTc5MhwyFYRSU0xyN0Phbx3NsQYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-replace": "^5.0.1", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "pretty-bytes": "^6.0.0", + "rollup": "^3.7.2", + "workbox-build": "^6.5.4", + "workbox-window": "^6.5.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0", + "workbox-build": "^6.5.4", + "workbox-window": "^6.5.4" + } + }, + "node_modules/vooks": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz", + "integrity": "sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==", + "license": "MIT", + "dependencies": { + "evtd": "^0.2.2" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue": { + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.36.tgz", + "integrity": "sha512-mIFvbLgjODfx3Iy1SrxOsiPpDb8Bo3EU+87ioimOZzZTOp15IEdAels70IjBOLO3ZFlLW5AhdwY4dWbXVQKYow==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.4.36", + "@vue/compiler-sfc": "3.4.36", + "@vue/runtime-dom": "3.4.36", + "@vue/server-renderer": "3.4.36", + "@vue/shared": "3.4.36" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-clipboard3": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz", + "integrity": "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==", + "license": "MIT", + "dependencies": { + "clipboard": "^2.0.6" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.3.tgz", + "integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", + "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.8.27", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.8.27.tgz", + "integrity": "sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "~1.11.1", + "@vue/language-core": "1.8.27", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vueuc": { + "version": "0.4.58", + "resolved": "https://registry.npmjs.org/vueuc/-/vueuc-0.4.58.tgz", + "integrity": "sha512-Wnj/N8WbPRSxSt+9ji1jtDHPzda5h2OH/0sFBhvdxDRuyCZbjGg3/cKMaKqEoe+dErTexG2R+i6Q8S/Toq1MYg==", + "license": "MIT", + "dependencies": { + "@css-render/vue3-ssr": "^0.15.10", + "@juggle/resize-observer": "^3.3.1", + "css-render": "^0.15.10", + "evtd": "^0.2.4", + "seemly": "^0.3.6", + "vdirs": "^0.1.4", + "vooks": "^0.2.4" + }, + "peerDependencies": { + "vue": "^3.0.11" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT", + "optional": true + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-build/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", + "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.3.tgz", + "integrity": "sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + } + } +} diff --git a/chat/package.json b/chat/package.json new file mode 100644 index 0000000..6cd1d72 --- /dev/null +++ b/chat/package.json @@ -0,0 +1,148 @@ +{ + "name": "chatgpt-cooper", + "version": "2.6.0", + "private": true, + "description": "ChatGPT Cooper", + "author": "Yi ", + "keywords": [ + "chatgpt-cooper", + "chatgpt", + "chatbot", + "vue", + "nestjs" + ], + "main": "electron/main.js", + "scripts": { + "start:h": "pnpm run -C service dev", + "start:f": "vite", + "all": "npm-run-all --parallel start:h start:f", + "dev": "vite", + "build-check": "run-p type-check build-only", + "preview": "vite preview", + "build": "vite build --mode=production", + "type-check": "vue-tsc --noEmit", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "bootstrap": "pnpm install && pnpm run common:prepare", + "start": "pnpm dev && electron .", + "ele": "electron .", + "common:cleanup": "rimraf node_modules && rimraf pnpm-lock.yaml", + "pack:mac": "NPM_CONFIG_ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/ electron-builder build --mac", + "pack:win": "NPM_CONFIG_ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/ electron-builder build --win --ia32" + }, + "dependencies": { + "@electron/remote": "^2.1.0", + "@icon-park/vue-next": "^1.4.2", + "@traptitech/markdown-it-katex": "^3.6.0", + "@types/dom-to-image": "^2.6.4", + "@types/file-saver": "^2.0.5", + "@vicons/ionicons5": "^0.12.0", + "@vueuse/core": "^9.13.0", + "@vueuse/electron": "^10.2.1", + "@vueuse/integrations": "^10.2.0", + "@vueuse/motion": "^2.0.0", + "add": "^2.0.6", + "clientjs": "^0.2.1", + "date-fns": "^2.30.0", + "dom-to-image": "^2.6.0", + "file-saver": "^2.0.5", + "highlight.js": "^11.7.0", + "html-to-image": "^1.11.11", + "html2canvas": "^1.4.1", + "katex": "^0.16.4", + "markdown-it": "^13.0.1", + "marked": "^4.3.0", + "markmap-common": "0.14.2", + "markmap-lib": "0.14.4", + "markmap-view": "0.14.4", + "naive-ui": "^2.37.3", + "pinia": "^2.0.33", + "qrcode": "^1.5.3", + "v-viewer": "3.0.11", + "vue": "^3.2.47", + "vue-clipboard3": "^2.0.0", + "vue-i18n": "^9.2.2", + "vue-router": "^4.1.6" + }, + "devDependencies": { + "@antfu/eslint-config": "^0.35.3", + "@commitlint/cli": "^17.4.4", + "@commitlint/config-conventional": "^17.4.4", + "@iconify/vue": "^4.1.0", + "@types/crypto-js": "^4.1.1", + "@types/katex": "^0.16.0", + "@types/markdown-it": "^12.2.3", + "@types/markdown-it-link-attributes": "^3.0.1", + "@types/node": "^18.14.6", + "@vitejs/plugin-vue": "^4.0.0", + "autoprefixer": "^10.4.13", + "axios": "^1.3.4", + "crypto-js": "^4.1.1", + "electron": "^25.3.1", + "electron-builder": "^24.4.0", + "eslint": "^8.35.0", + "husky": "^8.0.3", + "less": "^4.1.3", + "lint-staged": "^13.1.2", + "markdown-it-link-attributes": "^4.0.1", + "npm-run-all": "^4.1.5", + "postcss": "^8.4.21", + "rimraf": "^4.2.0", + "tailwindcss": "^3.2.7", + "typescript": "~4.9.5", + "vite": "^4.2.0", + "vite-plugin-pwa": "^0.14.4", + "vue-tsc": "^1.2.0" + }, + "lint-staged": { + "*.{ts,tsx,vue}": [ + "pnpm lint:fix" + ] + }, + "build": { + "productName": "Yiai", + "appId": "ai.jiangly.com", + "icon": "icons/icon.icns", + "directories": { + "output": "build" + }, + "mac": { + "target": "dmg", + "icon": "icons/icon.icns" + }, + "dmg": { + "backgroundColor": "#fff", + "contents": [ + { + "x": 410, + "y": 150, + "type": "link", + "path": "/Applications" + }, + { + "x": 130, + "y": 150, + "type": "file" + } + ] + }, + "win": { + "target": [ + { + "target": "nsis", + "arch": [ + "x64", + "ia32" + ] + } + ] + }, + "nsis": { + "oneClick": false, + "allowElevation": true, + "perMachine": true, + "createDesktopShortcut": true, + "createStartMenuShortcut": true + } + } +} diff --git a/chat/pnpm-lock.yaml b/chat/pnpm-lock.yaml new file mode 100644 index 0000000..d3f29e7 --- /dev/null +++ b/chat/pnpm-lock.yaml @@ -0,0 +1,8562 @@ +lockfileVersion: '6.0' + +importers: + + .: + dependencies: + '@traptitech/markdown-it-katex': + specifier: ^3.6.0 + version: 3.6.0 + '@vicons/ionicons5': + specifier: ^0.12.0 + version: registry.npmmirror.com/@vicons/ionicons5@0.12.0 + '@vueuse/core': + specifier: ^9.13.0 + version: 9.13.0(vue@3.2.47) + highlight.js: + specifier: ^11.7.0 + version: 11.7.0 + html2canvas: + specifier: ^1.4.1 + version: 1.4.1 + katex: + specifier: ^0.16.4 + version: 0.16.4 + markdown-it: + specifier: ^13.0.1 + version: 13.0.1 + marked: + specifier: ^4.3.0 + version: registry.npmmirror.com/marked@4.3.0 + naive-ui: + specifier: ^2.34.3 + version: 2.34.3(vue@3.2.47) + pinia: + specifier: ^2.0.33 + version: 2.0.33(typescript@4.9.5)(vue@3.2.47) + vue: + specifier: ^3.2.47 + version: 3.2.47 + vue-i18n: + specifier: ^9.2.2 + version: 9.2.2(vue@3.2.47) + vue-router: + specifier: ^4.1.6 + version: 4.1.6(vue@3.2.47) + devDependencies: + '@antfu/eslint-config': + specifier: ^0.35.3 + version: 0.35.3(eslint@8.35.0)(typescript@4.9.5) + '@commitlint/cli': + specifier: ^17.4.4 + version: 17.4.4 + '@commitlint/config-conventional': + specifier: ^17.4.4 + version: 17.4.4 + '@iconify/vue': + specifier: ^4.1.0 + version: 4.1.0(vue@3.2.47) + '@types/crypto-js': + specifier: ^4.1.1 + version: 4.1.1 + '@types/katex': + specifier: ^0.16.0 + version: 0.16.0 + '@types/markdown-it': + specifier: ^12.2.3 + version: 12.2.3 + '@types/markdown-it-link-attributes': + specifier: ^3.0.1 + version: 3.0.1 + '@types/node': + specifier: ^18.14.6 + version: 18.14.6 + '@vitejs/plugin-vue': + specifier: ^4.0.0 + version: 4.0.0(vite@4.2.0)(vue@3.2.47) + autoprefixer: + specifier: ^10.4.13 + version: 10.4.13(postcss@8.4.21) + axios: + specifier: ^1.3.4 + version: 1.3.4 + crypto-js: + specifier: ^4.1.1 + version: 4.1.1 + eslint: + specifier: ^8.35.0 + version: 8.35.0 + husky: + specifier: ^8.0.3 + version: 8.0.3 + less: + specifier: ^4.1.3 + version: 4.1.3 + lint-staged: + specifier: ^13.1.2 + version: 13.1.2 + markdown-it-link-attributes: + specifier: ^4.0.1 + version: 4.0.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + postcss: + specifier: ^8.4.21 + version: 8.4.21 + rimraf: + specifier: ^4.2.0 + version: 4.3.0 + tailwindcss: + specifier: ^3.2.7 + version: 3.2.7(postcss@8.4.21) + typescript: + specifier: ~4.9.5 + version: 4.9.5 + vite: + specifier: ^4.2.0 + version: 4.2.0(@types/node@18.14.6)(less@4.1.3) + vite-plugin-pwa: + specifier: ^0.14.4 + version: 0.14.4(vite@4.2.0) + vue-tsc: + specifier: ^1.2.0 + version: 1.2.0(typescript@4.9.5) + +packages: + + /@antfu/eslint-config-basic@0.35.3(@typescript-eslint/eslint-plugin@5.54.0)(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-NbWJKNgd3Ky3/ok2Z88cXNme/6I9otkiaB+FYLFgQE81sfMAhKpLKXtTSwzdcKMzhKDqUchAijt0BxjE/mcTJg==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + eslint: 8.35.0 + eslint-plugin-antfu: 0.35.3(eslint@8.35.0)(typescript@4.9.5) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.35.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.0)(eslint@8.35.0) + eslint-plugin-jsonc: 2.6.0(eslint@8.35.0) + eslint-plugin-markdown: 3.0.0(eslint@8.35.0) + eslint-plugin-n: 15.6.1(eslint@8.35.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-promise: 6.1.1(eslint@8.35.0) + eslint-plugin-unicorn: 45.0.2(eslint@8.35.0) + eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.54.0)(eslint@8.35.0) + eslint-plugin-yml: 1.5.0(eslint@8.35.0) + jsonc-eslint-parser: 2.1.0 + yaml-eslint-parser: 1.1.0 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + - typescript + dev: true + + /@antfu/eslint-config-ts@0.35.3(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-FS5hir2ghXYlJWAiB2bpT9oAr0kpSNmYbaJWWkztocJG95AORl4tWzxMTkLT+TxaOmhuwJszcrMTHy5RgHL8/w==} + peerDependencies: + eslint: '>=7.4.0' + typescript: '>=3.9' + dependencies: + '@antfu/eslint-config-basic': 0.35.3(@typescript-eslint/eslint-plugin@5.54.0)(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.54.0(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.54.0(eslint@8.35.0)(typescript@4.9.5) + eslint: 8.35.0 + eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true + + /@antfu/eslint-config-vue@0.35.3(@typescript-eslint/eslint-plugin@5.54.0)(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-BA3vGLyuzqtEUb9gfgE7YzBT+a4oUnQuUPasIUfN/BVXaEhRVYlMmUgxN4ekQLuzOgUjUH13lqplXtkLJ62t9g==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-basic': 0.35.3(@typescript-eslint/eslint-plugin@5.54.0)(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + '@antfu/eslint-config-ts': 0.35.3(eslint@8.35.0)(typescript@4.9.5) + eslint: 8.35.0 + eslint-plugin-vue: 9.9.0(eslint@8.35.0) + local-pkg: 0.4.3 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/eslint-config@0.35.3(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-wd0ry/TNqaZmniqkKtZKoCvpl55x9YbHgL5Ug3H9rVuUSqaNi9G9AjYlynQqn4/M1EhYYWO597Lu7f/fC+csrg==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-vue': 0.35.3(@typescript-eslint/eslint-plugin@5.54.0)(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.54.0(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.54.0(eslint@8.35.0)(typescript@4.9.5) + eslint: 8.35.0 + eslint-plugin-eslint-comments: 3.2.0(eslint@8.35.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.0)(eslint@8.35.0) + eslint-plugin-jsonc: 2.6.0(eslint@8.35.0) + eslint-plugin-n: 15.6.1(eslint@8.35.0) + eslint-plugin-promise: 6.1.1(eslint@8.35.0) + eslint-plugin-unicorn: 45.0.2(eslint@8.35.0) + eslint-plugin-vue: 9.9.0(eslint@8.35.0) + eslint-plugin-yml: 1.5.0(eslint@8.35.0) + jsonc-eslint-parser: 2.1.0 + yaml-eslint-parser: 1.1.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: true + + /@commitlint/cli@17.4.4: + resolution: {integrity: sha512-HwKlD7CPVMVGTAeFZylVNy14Vm5POVY0WxPkZr7EXLC/os0LH/obs6z4HRvJtH/nHCMYBvUBQhGwnufKfTjd5g==} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/format': 17.4.4 + '@commitlint/lint': 17.4.4 + '@commitlint/load': 17.4.4 + '@commitlint/read': 17.4.4 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.1 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/config-conventional@17.4.4: + resolution: {integrity: sha512-u6ztvxqzi6NuhrcEDR7a+z0yrh11elY66nRrQIpqsqW6sZmpxYkDLtpRH8jRML+mmxYQ8s4qqF06Q/IQx5aJeQ==} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + dev: true + + /@commitlint/config-validator@17.4.4: + resolution: {integrity: sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + ajv: registry.npmmirror.com/ajv@8.12.0 + dev: true + + /@commitlint/ensure@17.4.4: + resolution: {integrity: sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + lodash.camelcase: registry.npmmirror.com/lodash.camelcase@4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule@17.4.0: + resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/format@17.4.4: + resolution: {integrity: sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + chalk: registry.npmmirror.com/chalk@4.1.2 + dev: true + + /@commitlint/is-ignored@17.4.4: + resolution: {integrity: sha512-Y3eo1SFJ2JQDik4rWkBC4tlRIxlXEFrRWxcyrzb1PUT2k3kZ/XGNuCDfk/u0bU2/yS0tOA/mTjFsV+C4qyACHw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + semver: registry.npmmirror.com/semver@7.3.8 + dev: true + + /@commitlint/lint@17.4.4: + resolution: {integrity: sha512-qgkCRRFjyhbMDWsti/5jRYVJkgYZj4r+ZmweZObnbYqPUl5UKLWMf9a/ZZisOI4JfiPmRktYRZ2JmqlSvg+ccw==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.4.4 + '@commitlint/parse': 17.4.4 + '@commitlint/rules': 17.4.4 + '@commitlint/types': 17.4.4 + dev: true + + /@commitlint/load@17.4.4: + resolution: {integrity: sha512-z6uFIQ7wfKX5FGBe1AkOF4l/ShOQsaa1ml/nLMkbW7R/xF8galGS7Zh0yHvzVp/srtfS0brC+0bUfQfmpMPFVQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.4.4 + '@commitlint/execute-rule': 17.4.0 + '@commitlint/resolve-extends': 17.4.4 + '@commitlint/types': 17.4.4 + '@types/node': registry.npmmirror.com/@types/node@18.14.6 + chalk: registry.npmmirror.com/chalk@4.1.2 + cosmiconfig: 8.1.0 + cosmiconfig-typescript-loader: 4.3.0(@types/node@18.14.6)(cosmiconfig@8.1.0)(ts-node@10.9.1)(typescript@4.9.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: registry.npmmirror.com/ts-node@10.9.1(@types/node@18.14.6)(typescript@4.9.5) + typescript: registry.npmmirror.com/typescript@4.9.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/message@17.4.2: + resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/parse@17.4.4: + resolution: {integrity: sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: true + + /@commitlint/read@17.4.4: + resolution: {integrity: sha512-B2TvUMJKK+Svzs6eji23WXsRJ8PAD+orI44lVuVNsm5zmI7O8RSGJMvdEZEikiA4Vohfb+HevaPoWZ7PiFZ3zA==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.4.0 + '@commitlint/types': 17.4.4 + fs-extra: 11.1.0 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@17.4.4: + resolution: {integrity: sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.4.4 + '@commitlint/types': 17.4.4 + import-fresh: registry.npmmirror.com/import-fresh@3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@17.4.4: + resolution: {integrity: sha512-0tgvXnHi/mVcyR8Y8mjTFZIa/FEQXA4uEutXS/imH2v1UNkYDSEMsK/68wiXRpfW1euSgEdwRkvE1z23+yhNrQ==} + engines: {node: '>=v14'} + dependencies: + '@commitlint/ensure': 17.4.4 + '@commitlint/message': 17.4.2 + '@commitlint/to-lines': 17.4.0 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines@17.4.0: + resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==} + engines: {node: '>=v14'} + dev: true + + /@commitlint/top-level@17.4.0: + resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==} + engines: {node: '>=v14'} + dependencies: + find-up: registry.npmmirror.com/find-up@5.0.0 + dev: true + + /@commitlint/types@17.4.4: + resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} + engines: {node: '>=v14'} + dependencies: + chalk: registry.npmmirror.com/chalk@4.1.2 + dev: true + + /@css-render/plugin-bem@0.15.12(css-render@0.15.12): + resolution: {integrity: sha512-Lq2jSOZn+wYQtsyaFj6QRz2EzAnd3iW5fZeHO1WSXQdVYwvwGX0ZiH3X2JQgtgYLT1yeGtrwrqJdNdMEUD2xTw==} + peerDependencies: + css-render: ~0.15.12 + dependencies: + css-render: 0.15.12 + dev: false + + /@css-render/vue3-ssr@0.15.12(vue@3.2.47): + resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==} + peerDependencies: + vue: ^3.0.11 + dependencies: + vue: 3.2.47 + dev: false + + /@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + dev: false + + /@eslint-community/eslint-utils@4.2.0(eslint@8.35.0): + resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.35.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.3.0 + dev: true + + /@eslint/eslintrc@2.0.0: + resolution: {integrity: sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: registry.npmmirror.com/ajv@6.12.6 + debug: registry.npmmirror.com/debug@4.3.4 + espree: 9.4.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.35.0: + resolution: {integrity: sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: registry.npmmirror.com/debug@4.3.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: true + + /@iconify/vue@4.1.0(vue@3.2.47): + resolution: {integrity: sha512-rBQVxNoSDooqgWkQg2MqkIHkH/huNuvXGqui5wijc1zLnU7TKzbBHW9VGmbnV4asNTmIHmqV4Nvt0M2rZ/9nHA==} + peerDependencies: + vue: '>=3' + dependencies: + '@iconify/types': 2.0.0 + vue: 3.2.47 + dev: true + + /@intlify/core-base@9.2.2: + resolution: {integrity: sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==} + engines: {node: '>= 14'} + dependencies: + '@intlify/devtools-if': 9.2.2 + '@intlify/message-compiler': 9.2.2 + '@intlify/shared': 9.2.2 + '@intlify/vue-devtools': 9.2.2 + dev: false + + /@intlify/devtools-if@9.2.2: + resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==} + engines: {node: '>= 14'} + dependencies: + '@intlify/shared': 9.2.2 + dev: false + + /@intlify/message-compiler@9.2.2: + resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==} + engines: {node: '>= 14'} + dependencies: + '@intlify/shared': 9.2.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + /@intlify/shared@9.2.2: + resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==} + engines: {node: '>= 14'} + dev: false + + /@intlify/vue-devtools@9.2.2: + resolution: {integrity: sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==} + engines: {node: '>= 14'} + dependencies: + '@intlify/core-base': 9.2.2 + '@intlify/shared': 9.2.2 + dev: false + + /@juggle/resize-observer@3.4.0: + resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + dev: true + + /@rollup/plugin-replace@5.0.2(rollup@3.18.0): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2(rollup@3.18.0) + magic-string: 0.27.0 + rollup: 3.18.0 + dev: true + + /@rollup/pluginutils@5.0.2(rollup@3.18.0): + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.0 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: 3.18.0 + dev: true + + /@traptitech/markdown-it-katex@3.6.0: + resolution: {integrity: sha512-CnJzTWxsgLGXFdSrWRaGz7GZ1kUUi8g3E9HzJmeveX1YwVJavrKYqysktfHZQsujdnRqV5O7g8FPKEA/aeTkOQ==} + dependencies: + katex: 0.16.4 + dev: false + + /@types/crypto-js@4.1.1: + resolution: {integrity: sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/katex@0.14.0: + resolution: {integrity: sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==} + dev: false + + /@types/katex@0.16.0: + resolution: {integrity: sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw==} + dev: true + + /@types/linkify-it@3.0.2: + resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + dev: true + + /@types/lodash-es@4.17.6: + resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} + dependencies: + '@types/lodash': 4.14.191 + dev: false + + /@types/lodash@4.14.191: + resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + dev: false + + /@types/markdown-it-link-attributes@3.0.1: + resolution: {integrity: sha512-K8RnNb1q8j7rDOJbMF7AnlhCC/45BjrQ8z3WZWOrvkBIl8u9RXvmBdG/hfpnmK1JhhEZcmFEKWt+ilW1Mly+2Q==} + dependencies: + '@types/markdown-it': 12.2.3 + dev: true + + /@types/markdown-it@12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + dependencies: + '@types/linkify-it': 3.0.2 + '@types/mdurl': 1.0.2 + dev: true + + /@types/mdast@3.0.10: + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /@types/mdurl@1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + dev: true + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + + /@types/node@18.14.6: + resolution: {integrity: sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==} + dev: true + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/unist@2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: true + + /@types/web-bluetooth@0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + dev: false + + /@vitejs/plugin-vue@4.0.0(vite@4.2.0)(vue@3.2.47): + resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.2.0(@types/node@18.14.6)(less@4.1.3) + vue: 3.2.47 + dev: true + + /@volar/language-core@1.3.0-alpha.0: + resolution: {integrity: sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==} + dependencies: + '@volar/source-map': 1.3.0-alpha.0 + dev: true + + /@volar/source-map@1.3.0-alpha.0: + resolution: {integrity: sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==} + dependencies: + muggle-string: 0.2.2 + dev: true + + /@volar/typescript@1.3.0-alpha.0: + resolution: {integrity: sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==} + dependencies: + '@volar/language-core': 1.3.0-alpha.0 + dev: true + + /@volar/vue-language-core@1.2.0: + resolution: {integrity: sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==} + dependencies: + '@volar/language-core': 1.3.0-alpha.0 + '@volar/source-map': 1.3.0-alpha.0 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-sfc': 3.2.47 + '@vue/reactivity': 3.2.47 + '@vue/shared': 3.2.47 + minimatch: registry.npmmirror.com/minimatch@6.2.0 + muggle-string: 0.2.2 + vue-template-compiler: 2.7.14 + dev: true + + /@volar/vue-typescript@1.2.0: + resolution: {integrity: sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==} + dependencies: + '@volar/typescript': 1.3.0-alpha.0 + '@volar/vue-language-core': 1.2.0 + dev: true + + /@vue/compiler-core@3.2.47: + resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.21.2 + '@vue/shared': 3.2.47 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + + /@vue/compiler-dom@3.2.47: + resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} + dependencies: + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/compiler-sfc@3.2.47: + resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.21.2 + '@vue/compiler-core': 3.2.47 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-ssr': 3.2.47 + '@vue/reactivity-transform': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.21 + source-map: registry.npmmirror.com/source-map@0.6.1 + + /@vue/compiler-ssr@3.2.47: + resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/devtools-api@6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + dev: false + + /@vue/reactivity-transform@3.2.47: + resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.21.2 + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + magic-string: registry.npmmirror.com/magic-string@0.25.9 + + /@vue/reactivity@3.2.47: + resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} + dependencies: + '@vue/shared': 3.2.47 + + /@vue/runtime-core@3.2.47: + resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + dependencies: + '@vue/reactivity': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/runtime-dom@3.2.47: + resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + dependencies: + '@vue/runtime-core': 3.2.47 + '@vue/shared': 3.2.47 + csstype: 2.6.21 + + /@vue/server-renderer@3.2.47(vue@3.2.47): + resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + peerDependencies: + vue: 3.2.47 + dependencies: + '@vue/compiler-ssr': 3.2.47 + '@vue/shared': 3.2.47 + vue: 3.2.47 + + /@vue/shared@3.2.47: + resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + + /@vueuse/core@9.13.0(vue@3.2.47): + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.2.47) + vue-demi: 0.13.11(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/metadata@9.13.0: + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + dev: false + + /@vueuse/shared@9.13.0(vue@3.2.47): + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + dependencies: + vue-demi: 0.13.11(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: registry.npmmirror.com/through@2.3.8 + dev: true + + /acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn-node@1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: registry.npmmirror.com/acorn@7.4.1 + acorn-walk: 7.2.0 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: true + + /acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmmirror.com/type-fest@0.21.3 + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@2.0.1 + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + is-string: registry.npmmirror.com/is-string@1.0.7 + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + es-shim-unscopables: 1.0.0 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + dev: false + + /autoprefixer@10.4.13(postcss@8.4.21): + resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.5 + caniuse-lite: 1.0.30001460 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + dev: true + + /axios@1.3.4: + resolution: {integrity: sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: true + + /base64-arraybuffer@1.0.2: + resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} + engines: {node: '>= 0.6.0'} + dev: false + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001460 + electron-to-chromium: 1.4.320 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10(browserslist@4.21.5) + dev: true + + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + dependencies: + semver: registry.npmmirror.com/semver@7.3.8 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: registry.npmmirror.com/camelcase@5.3.1 + map-obj: 4.3.0 + quick-lru: registry.npmmirror.com/quick-lru@4.0.1 + dev: true + + /caniuse-lite@1.0.30001460: + resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==} + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + dev: true + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + dev: true + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} + dev: true + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: registry.npmmirror.com/string-width@5.1.2 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette@2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + dev: true + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: false + + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: true + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: registry.npmmirror.com/dot-prop@5.3.0 + dev: true + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: concat-map/download/concat-map-0.0.1.tgz} + dev: true + + /conventional-changelog-angular@5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits@5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + q: 1.5.1 + dev: true + + /conventional-commits-parser@3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: registry.npmmirror.com/lodash@4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /cosmiconfig-typescript-loader@4.3.0(@types/node@18.14.6)(cosmiconfig@8.1.0)(ts-node@10.9.1)(typescript@4.9.5): + resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=3' + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.14.6 + cosmiconfig: 8.1.0 + ts-node: registry.npmmirror.com/ts-node@10.9.1(@types/node@18.14.6)(typescript@4.9.5) + typescript: registry.npmmirror.com/typescript@4.9.5 + dev: true + + /cosmiconfig@8.1.0: + resolution: {integrity: sha512-0tLZ9URlPGU7JsKq0DQOQ3FoRsYX8xDZ7xMiATQfaiGMz7EHowNkbU9u1coAOmnh9p/1ySpm0RB3JNWRXM5GCg==} + engines: {node: '>=14'} + dependencies: + import-fresh: registry.npmmirror.com/import-fresh@3.3.0 + js-yaml: registry.npmmirror.com/js-yaml@4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: registry.npmmirror.com/semver@5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /crypto-js@4.1.1: + resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} + dev: true + + /css-line-break@2.1.0: + resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} + dependencies: + utrie: 1.0.2 + dev: false + + /css-render@0.15.12: + resolution: {integrity: sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw==} + dependencies: + '@emotion/hash': 0.8.0 + csstype: 3.0.11 + dev: false + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csstype@2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + + /csstype@3.0.11: + resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} + dev: false + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /date-fns-tz@1.3.8(date-fns@2.29.3): + resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==} + peerDependencies: + date-fns: '>=2.0.0' + dependencies: + date-fns: 2.29.3 + dev: false + + /date-fns@2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + dev: false + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.2 + dev: true + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: registry.npmmirror.com/decamelize@1.2.0 + map-obj: 1.0.1 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + /defined@1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + dev: true + + /detective@5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + acorn-node: 1.8.2 + defined: 1.0.1 + minimist: 1.2.8 + dev: true + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.4.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /electron-to-chromium@1.4.320: + resolution: {integrity: sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==} + dev: true + + /entities@3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==} + engines: {node: '>=0.12'} + dev: false + + /entities@4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.1 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function-bind: registry.npmmirror.com/function-bind@1.1.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has: registry.npmmirror.com/has@1.0.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.10 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.12.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.4.3 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.6 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.6 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.9 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: true + + /esbuild@0.17.11: + resolution: {integrity: sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.11 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.11 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.11 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.11 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.11 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.11 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.11 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.11 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.11 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.11 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.11 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.11 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.11 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.11 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.11 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.11 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.11 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.11 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.11 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.11 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.11 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.11 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} + dependencies: + debug: registry.npmmirror.com/debug@3.2.7 + is-core-module: registry.npmmirror.com/is-core-module@2.11.0 + resolve: registry.npmmirror.com/resolve@1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.54.0)(eslint-import-resolver-node@0.3.7)(eslint@8.35.0): + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.54.0(eslint@8.35.0)(typescript@4.9.5) + debug: registry.npmmirror.com/debug@3.2.7 + eslint: 8.35.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-antfu@0.35.3(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-90Xct24s2n3aQhuuFFcPLhF5E6lU5s225B0VXupSjvDTuF+CmSQQLQG6KcqcdpA8O6dMbeXB9zy3SJ4aO7lndw==} + dependencies: + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.54.0(eslint@8.35.0)(typescript@4.9.5) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /eslint-plugin-es@4.1.0(eslint@8.35.0): + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.35.0 + eslint-utils: registry.npmmirror.com/eslint-utils@2.1.0 + regexpp: registry.npmmirror.com/regexpp@3.2.0 + dev: true + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.35.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + eslint: 8.35.0 + ignore: registry.npmmirror.com/ignore@5.2.4 + dev: true + + /eslint-plugin-html@7.1.0: + resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==} + dependencies: + htmlparser2: 8.0.1 + dev: true + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.54.0)(eslint@8.35.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.54.0(eslint@8.35.0)(typescript@4.9.5) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: registry.npmmirror.com/debug@3.2.7 + doctrine: registry.npmmirror.com/doctrine@2.1.0 + eslint: 8.35.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.0)(eslint-import-resolver-node@0.3.7)(eslint@8.35.0) + has: registry.npmmirror.com/has@1.0.3 + is-core-module: 2.11.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + object.values: 1.1.6 + resolve: 1.22.1 + semver: registry.npmmirror.com/semver@6.3.0 + tsconfig-paths: registry.npmmirror.com/tsconfig-paths@3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.54.0)(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.54.0(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.54.0(eslint@8.35.0)(typescript@4.9.5) + eslint: 8.35.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsonc@2.6.0(eslint@8.35.0): + resolution: {integrity: sha512-4bA9YTx58QaWalua1Q1b82zt7eZMB7i+ed8q8cKkbKP75ofOA2SXbtFyCSok7RY6jIXeCqQnKjN9If8zCgv6PA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.35.0 + eslint-utils: registry.npmmirror.com/eslint-utils@3.0.0(eslint@8.35.0) + jsonc-eslint-parser: 2.1.0 + natural-compare: registry.npmmirror.com/natural-compare@1.4.0 + dev: true + + /eslint-plugin-markdown@3.0.0(eslint@8.35.0): + resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.35.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-n@15.6.1(eslint@8.35.0): + resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + builtins: 5.0.1 + eslint: 8.35.0 + eslint-plugin-es: 4.1.0(eslint@8.35.0) + eslint-utils: registry.npmmirror.com/eslint-utils@3.0.0(eslint@8.35.0) + ignore: registry.npmmirror.com/ignore@5.2.4 + is-core-module: 2.11.0 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + resolve: 1.22.1 + semver: registry.npmmirror.com/semver@7.3.8 + dev: true + + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} + engines: {node: '>=5.0.0'} + dev: true + + /eslint-plugin-promise@6.1.1(eslint@8.35.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.35.0 + dev: true + + /eslint-plugin-unicorn@45.0.2(eslint@8.35.0): + resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.28.0' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + '@eslint-community/eslint-utils': 4.2.0(eslint@8.35.0) + ci-info: 3.8.0 + clean-regexp: 1.0.0 + eslint: 8.35.0 + esquery: registry.npmmirror.com/esquery@1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + lodash: registry.npmmirror.com/lodash@4.17.21 + pluralize: registry.npmmirror.com/pluralize@8.0.0 + read-pkg-up: registry.npmmirror.com/read-pkg-up@7.0.1 + regexp-tree: 0.1.24 + regjsparser: 0.9.1 + safe-regex: 2.1.1 + semver: registry.npmmirror.com/semver@7.3.8 + strip-indent: 3.0.0 + dev: true + + /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.54.0)(eslint@8.35.0): + resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.54.0(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5) + eslint: 8.35.0 + eslint-rule-composer: 0.3.0 + dev: true + + /eslint-plugin-vue@9.9.0(eslint@8.35.0): + resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.35.0 + eslint-utils: registry.npmmirror.com/eslint-utils@3.0.0(eslint@8.35.0) + natural-compare: registry.npmmirror.com/natural-compare@1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.11 + semver: registry.npmmirror.com/semver@7.3.8 + vue-eslint-parser: 9.1.0(eslint@8.35.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-yml@1.5.0(eslint@8.35.0): + resolution: {integrity: sha512-iygN054g+ZrnYmtOXMnT+sx9iDNXt89/m0+506cQHeG0+5jJN8hY5iOPQLd3yfd50AfK/mSasajBWruf1SoHpQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.35.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + natural-compare: registry.npmmirror.com/natural-compare@1.4.0 + yaml-eslint-parser: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-utils@3.0.0(eslint@8.35.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.35.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.35.0: + resolution: {integrity: sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 2.0.0 + '@eslint/js': 8.35.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0(eslint@8.35.0) + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.3.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.3.0 + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /evtd@0.2.4: + resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==} + dev: false + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: registry.npmmirror.com/onetime@5.1.2 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@6.1.0: + resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 3.0.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: registry.npmmirror.com/onetime@6.0.0 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /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==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /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==} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@6.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: registry.npmmirror.com/rimraf@3.0.2 + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + dev: true + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: registry.npmmirror.com/asynckit@0.4.0 + combined-stream: registry.npmmirror.com/combined-stream@1.0.8 + mime-types: registry.npmmirror.com/mime-types@2.1.35 + dev: true + + /fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + + /fs-extra@11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.0 + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@9.2.1: + resolution: {integrity: sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + minimatch: registry.npmmirror.com/minimatch@7.4.2 + minipass: registry.npmmirror.com/minipass@4.2.4 + path-scurry: 1.6.1 + dev: true + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /highlight.js@11.7.0: + resolution: {integrity: sha512-1rRqesRFhMO/PRF+G86evnyJkCgaZFOI+Z6kdj15TA18funfoqJXvgPCLSf0SWq3SRfg1j3HlDs8o4s3EGq1oQ==} + engines: {node: '>=12.0.0'} + dev: false + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: true + + /html2canvas@1.4.1: + resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} + engines: {node: '>=8.0.0'} + dependencies: + css-line-break: 2.1.0 + text-segmentation: 1.0.3 + dev: false + + /htmlparser2@8.0.1: + resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.0.1 + entities: 4.4.0 + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@3.0.1: + resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} + engines: {node: '>=12.20.0'} + dev: true + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + dev: true + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: registry.npmmirror.com/builtin-modules@3.3.0 + dev: true + + /is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: true + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /js-sdsl@4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: true + + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /jsonc-eslint-parser@2.1.0: + resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: registry.npmmirror.com/acorn@8.8.2 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.3.0 + espree: registry.npmmirror.com/espree@9.4.1 + semver: registry.npmmirror.com/semver@7.3.8 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /katex@0.16.4: + resolution: {integrity: sha512-WudRKUj8yyBeVDI4aYMNxhx5Vhh2PjpzQw1GRu/LVGqL4m1AxwD1GcUp0IMbdJaf5zsjtj8ghP0DOQRYhroNkw==} + hasBin: true + dependencies: + commander: 8.3.0 + dev: false + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /less@4.1.3: + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.5.0 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.2.0 + source-map: registry.npmmirror.com/source-map@0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lilconfig@2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + engines: {node: '>=10'} + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /linkify-it@4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==} + dependencies: + uc.micro: 1.0.6 + dev: false + + /lint-staged@13.1.2: + resolution: {integrity: sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.19 + commander: 9.5.0 + debug: 4.3.4 + execa: 6.1.0 + lilconfig: 2.0.6 + listr2: 5.0.7 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.3 + pidtree: 0.6.0 + string-argv: 0.3.1 + yaml: 2.2.1 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /listr2@5.0.7: + resolution: {integrity: sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.19 + log-update: 4.0.0 + p-map: registry.npmmirror.com/p-map@4.0.0 + rfdc: 1.3.0 + rxjs: registry.npmmirror.com/rxjs@7.8.0 + through: 2.3.8 + wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true + + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + dev: true + + /log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: registry.npmmirror.com/wrap-ansi@6.2.0 + dev: true + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: registry.npmmirror.com/sourcemap-codec@1.4.8 + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14 + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /markdown-it-link-attributes@4.0.1: + resolution: {integrity: sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ==} + dev: true + + /markdown-it@13.0.1: + resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 3.0.1 + linkify-it: 4.0.1 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: false + + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + dev: true + + /mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + dev: false + + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + dev: true + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: registry.npmmirror.com/read-pkg-up@7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: registry.npmmirror.com/type-fest@0.18.1 + yargs-parser: registry.npmmirror.com/yargs-parser@20.2.9 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==} + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /muggle-string@0.2.2: + resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==} + dev: true + + /naive-ui@2.34.3(vue@3.2.47): + resolution: {integrity: sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@css-render/plugin-bem': 0.15.12(css-render@0.15.12) + '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@types/katex': 0.14.0 + '@types/lodash': 4.14.191 + '@types/lodash-es': 4.17.6 + async-validator: 4.2.5 + css-render: 0.15.12 + date-fns: 2.29.3 + date-fns-tz: 1.3.8(date-fns@2.29.3) + evtd: 0.2.4 + highlight.js: 11.7.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + lodash-es: 4.17.21 + seemly: 0.3.6 + treemate: 0.3.11 + vdirs: 0.1.8(vue@3.2.47) + vooks: 0.2.12(vue@3.2.47) + vue: 3.2.47 + vueuc: 0.4.51(vue@3.2.47) + dev: false + + /nanoid@3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} + dev: true + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: registry.npmmirror.com/resolve@1.22.1 + semver: registry.npmmirror.com/semver@5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: registry.npmmirror.com/is-core-module@2.11.0 + semver: registry.npmmirror.com/semver@7.3.8 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.8.0 + string.prototype.padend: 3.1.4 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + dev: true + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.6.1: + resolution: {integrity: sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==} + engines: {node: '>=14'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@7.18.3 + minipass: registry.npmmirror.com/minipass@4.2.4 + dev: true + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + optional: true + + /pinia@2.0.33(typescript@4.9.5)(vue@3.2.47): + resolution: {integrity: sha512-HOj1yVV2itw6rNIrR2f7+MirGNxhORjrULL8GWgRwXsGSvEqIQ+SE0MYt6cwtpegzCda3i+rVTZM+AM7CG+kRg==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.0 + typescript: 4.9.5 + vue: 3.2.47 + vue-demi: 0.13.11(vue@3.2.47) + dev: false + + /postcss-import@14.1.0(postcss@8.4.21): + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-js@4.0.1(postcss@8.4.21): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.21 + dev: true + + /postcss-load-config@3.1.4(postcss@8.4.21): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.21 + yaml: 1.10.2 + dev: true + + /postcss-nested@6.0.0(postcss@8.4.21): + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + dev: true + + /postcss-selector-parser@6.0.11: + resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /pretty-bytes@6.1.0: + resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + dev: true + optional: true + + /q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /regexp-tree@0.1.24: + resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} + hasBin: true + dev: true + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: registry.npmmirror.com/jsesc@0.5.0 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: registry.npmmirror.com/onetime@5.1.2 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@4.3.0: + resolution: {integrity: sha512-5qVDXPbByA1qSJEWMv1qAwKsoS22vVpsL2QyxCKBw4gf6XiFo1K3uRLY6uSOOBFDwnqAZtnbILqWKKlzh8bkGg==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 9.2.1 + dev: true + + /rollup@3.18.0: + resolution: {integrity: sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.24 + dev: true + + /seemly@0.3.6: + resolution: {integrity: sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==} + dev: false + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + 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==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /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==} + engines: {node: '>=8'} + dev: true + + /shell-quote@1.8.0: + resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@6.2.1 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@4.0.0 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@3.6.1 + dev: true + + /string-argv@0.3.1: + resolution: {integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==} + engines: {node: '>=0.6.19'} + dev: true + + /string.prototype.padend@3.1.4: + resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /tailwindcss@3.2.7(postcss@8.4.21): + resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} + engines: {node: '>=12.13.0'} + hasBin: true + peerDependencies: + postcss: ^8.0.9 + dependencies: + arg: 5.0.2 + chokidar: 3.5.3 + color-name: 1.1.4 + detective: 5.2.1 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-import: 14.1.0(postcss@8.4.21) + postcss-js: 4.0.1(postcss@8.4.21) + postcss-load-config: 3.1.4(postcss@8.4.21) + postcss-nested: 6.0.0(postcss@8.4.21) + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + quick-lru: 5.1.1 + resolve: 1.22.1 + transitivePeerDependencies: + - ts-node + dev: true + + /text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + dev: true + + /text-segmentation@1.0.3: + resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} + dependencies: + utrie: 1.0.2 + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@3.6.1 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /treemate@0.3.11: + resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} + dev: false + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + /uc.micro@1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} + dev: false + + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + dependencies: + '@types/unist': 2.0.6 + dev: true + + /update-browserslist-db@1.0.10(browserslist@4.21.5): + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: registry.npmmirror.com/escalade@3.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + dev: true + + /utrie@1.0.2: + resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==} + dependencies: + base64-arraybuffer: 1.0.2 + dev: false + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vdirs@0.1.8(vue@3.2.47): + resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} + peerDependencies: + vue: ^3.0.11 + dependencies: + evtd: 0.2.4 + vue: 3.2.47 + dev: false + + /vite-plugin-pwa@0.14.4(vite@4.2.0): + resolution: {integrity: sha512-M7Ct0so8OlouMkTWgXnl8W1xU95glITSKIe7qswZf1tniAstO2idElGCnsrTJ5NPNSx1XqfTCOUj8j94S6FD7Q==} + peerDependencies: + vite: ^3.1.0 || ^4.0.0 + dependencies: + '@rollup/plugin-replace': 5.0.2(rollup@3.18.0) + debug: 4.3.4 + fast-glob: 3.2.12 + pretty-bytes: 6.1.0 + rollup: 3.18.0 + vite: 4.2.0(@types/node@18.14.6)(less@4.1.3) + workbox-build: registry.npmmirror.com/workbox-build@6.5.4 + workbox-window: registry.npmmirror.com/workbox-window@6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + /vite@4.2.0(@types/node@18.14.6)(less@4.1.3): + resolution: {integrity: sha512-AbDTyzzwuKoRtMIRLGNxhLRuv1FpRgdIw+1y6AQG73Q5+vtecmvzKo/yk8X/vrHDpETRTx01ABijqUHIzBXi0g==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.14.6 + esbuild: 0.17.11 + less: 4.1.3 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.18.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + /vooks@0.2.12(vue@3.2.47): + resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} + peerDependencies: + vue: ^3.0.0 + dependencies: + evtd: 0.2.4 + vue: 3.2.47 + dev: false + + /vue-demi@0.13.11(vue@3.2.47): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + dev: false + + /vue-eslint-parser@9.1.0(eslint@8.35.0): + resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.35.0 + eslint-scope: registry.npmmirror.com/eslint-scope@7.1.1 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.3.0 + espree: registry.npmmirror.com/espree@9.4.1 + esquery: registry.npmmirror.com/esquery@1.5.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + semver: registry.npmmirror.com/semver@7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-i18n@9.2.2(vue@3.2.47): + resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==} + engines: {node: '>= 14'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.2.2 + '@intlify/shared': 9.2.2 + '@intlify/vue-devtools': 9.2.2 + '@vue/devtools-api': 6.5.0 + vue: 3.2.47 + dev: false + + /vue-router@4.1.6(vue@3.2.47): + resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.0 + vue: 3.2.47 + dev: false + + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.2.0(typescript@4.9.5): + resolution: {integrity: sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/vue-language-core': 1.2.0 + '@volar/vue-typescript': 1.2.0 + typescript: 4.9.5 + dev: true + + /vue@3.2.47: + resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-sfc': 3.2.47 + '@vue/runtime-dom': 3.2.47 + '@vue/server-renderer': 3.2.47(vue@3.2.47) + '@vue/shared': 3.2.47 + + /vueuc@0.4.51(vue@3.2.47): + resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==} + peerDependencies: + vue: ^3.0.11 + dependencies: + '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@juggle/resize-observer': 3.4.0 + css-render: 0.15.12 + evtd: 0.2.4 + seemly: 0.3.6 + vdirs: 0.1.8(vue@3.2.47) + vooks: 0.2.12(vue@3.2.47) + vue: 3.2.47 + dev: false + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /yaml-eslint-parser@1.1.0: + resolution: {integrity: sha512-b464Q1fYiX1oYx2kE8k4mEp6S9Prk+tfDsY/IPxQ0FCjEuj3AKko5Skf3/yQJeYTTDyjDE+aWIJemnv29HvEWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.3.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + yaml: 2.2.1 + dev: true + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml@2.2.1: + resolution: {integrity: sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + engines: {node: '>=12'} + dependencies: + cliui: registry.npmmirror.com/cliui@8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: registry.npmmirror.com/string-width@4.2.3 + y18n: registry.npmmirror.com/y18n@5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + registry.nlark.com/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622796717993&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + dev: true + + registry.npmmirror.com/@ampproject/remapping@2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz} + name: '@ampproject/remapping' + version: 2.2.0 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.1.1 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.17 + dev: true + + registry.npmmirror.com/@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz} + id: registry.npmmirror.com/@apideck/better-ajv-errors/0.3.6 + name: '@apideck/better-ajv-errors' + version: 0.3.6 + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: registry.npmmirror.com/ajv@8.12.0 + json-schema: registry.npmmirror.com/json-schema@0.4.0 + jsonpointer: registry.npmmirror.com/jsonpointer@5.0.1 + leven: registry.npmmirror.com/leven@3.1.0 + dev: true + + registry.npmmirror.com/@babel/code-frame@7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz} + name: '@babel/code-frame' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight@7.18.6 + dev: true + + registry.npmmirror.com/@babel/compat-data@7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.21.0.tgz} + name: '@babel/compat-data' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/core@7.21.0: + resolution: {integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/core/-/core-7.21.0.tgz} + name: '@babel/core' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.0 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.21.1 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0) + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.21.2 + '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.21.0 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.21.2 + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + convert-source-map: registry.npmmirror.com/convert-source-map@1.9.0 + debug: registry.npmmirror.com/debug@4.3.4 + gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 + json5: registry.npmmirror.com/json5@2.2.3 + semver: registry.npmmirror.com/semver@6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/generator@7.21.1: + resolution: {integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/generator/-/generator-7.21.1.tgz} + name: '@babel/generator' + version: 7.21.1 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.2 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.17 + jsesc: registry.npmmirror.com/jsesc@2.5.2 + dev: true + + registry.npmmirror.com/@babel/helper-annotate-as-pure@7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz} + name: '@babel/helper-annotate-as-pure' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor@7.18.9: + resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz} + name: '@babel/helper-builder-binary-assignment-operator-visitor' + version: 7.18.9 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-explode-assignable-expression': registry.npmmirror.com/@babel/helper-explode-assignable-expression@7.18.6 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz} + id: registry.npmmirror.com/@babel/helper-compilation-targets/7.20.7 + name: '@babel/helper-compilation-targets' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.21.0 + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.21.0 + browserslist: registry.npmmirror.com/browserslist@4.21.5 + lru-cache: registry.npmmirror.com/lru-cache@5.1.1 + semver: registry.npmmirror.com/semver@6.3.0 + dev: true + + registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz} + id: registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.21.0 + name: '@babel/helper-create-class-features-plugin' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.18.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.21.0 + '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions@7.21.0 + '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression@7.18.6 + '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers@7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.20.0 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz} + id: registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.21.0 + name: '@babel/helper-create-regexp-features-plugin' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.18.6 + regexpu-core: registry.npmmirror.com/regexpu-core@5.3.1 + dev: true + + registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.0): + resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz} + id: registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.3.3 + name: '@babel/helper-define-polyfill-provider' + version: 0.3.3 + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + debug: registry.npmmirror.com/debug@4.3.4 + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + resolve: registry.npmmirror.com/resolve@1.22.1 + semver: registry.npmmirror.com/semver@6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz} + name: '@babel/helper-environment-visitor' + version: 7.18.9 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-explode-assignable-expression@7.18.6: + resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz} + name: '@babel/helper-explode-assignable-expression' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz} + name: '@babel/helper-function-name' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz} + name: '@babel/helper-hoist-variables' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-member-expression-to-functions@7.21.0: + resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz} + name: '@babel/helper-member-expression-to-functions' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-module-imports@7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} + name: '@babel/helper-module-imports' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-module-transforms@7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz} + name: '@babel/helper-module-transforms' + version: 7.21.2 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.18.6 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.20.2 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.18.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.19.1 + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-optimise-call-expression@7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz} + name: '@babel/helper-optimise-call-expression' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz} + name: '@babel/helper-plugin-utils' + version: 7.20.2 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz} + id: registry.npmmirror.com/@babel/helper-remap-async-to-generator/7.18.9 + name: '@babel/helper-remap-async-to-generator' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.18.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-wrap-function': registry.npmmirror.com/@babel/helper-wrap-function@7.20.5 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-replace-supers@7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz} + name: '@babel/helper-replace-supers' + version: 7.20.7 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions@7.21.0 + '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression@7.18.6 + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-simple-access@7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz} + name: '@babel/helper-simple-access' + version: 7.20.2 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz} + name: '@babel/helper-skip-transparent-expression-wrappers' + version: 7.20.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/helper-string-parser@7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} + name: '@babel/helper-string-parser' + version: 7.19.4 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} + name: '@babel/helper-validator-identifier' + version: 7.19.1 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz} + name: '@babel/helper-validator-option' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-wrap-function@7.20.5: + resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz} + name: '@babel/helper-wrap-function' + version: 7.20.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.21.0 + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helpers@7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helpers/-/helpers-7.21.0.tgz} + name: '@babel/helpers' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz} + name: '@babel/highlight' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.19.1 + chalk: registry.npmmirror.com/chalk@2.4.2 + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: true + + registry.npmmirror.com/@babel/parser@7.21.2: + resolution: {integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/parser/-/parser-7.21.2.tgz} + name: '@babel/parser' + version: 7.21.2 + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + + registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6 + name: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7 + name: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.20.0 + '@babel/plugin-proposal-optional-chaining': registry.npmmirror.com/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/7.20.7 + name: '@babel/plugin-proposal-async-generator-functions' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-remap-async-to-generator': registry.npmmirror.com/@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.0) + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-class-properties/7.18.6 + name: '@babel/plugin-proposal-class-properties' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-class-static-block/7.21.0 + name: '@babel/plugin-proposal-class-static-block' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-class-static-block': registry.npmmirror.com/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/7.18.6 + name: '@babel/plugin-proposal-dynamic-import' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-dynamic-import': registry.npmmirror.com/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/7.18.9 + name: '@babel/plugin-proposal-export-namespace-from' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-export-namespace-from': registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-json-strings/7.18.6 + name: '@babel/plugin-proposal-json-strings' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/7.20.7 + name: '@babel/plugin-proposal-logical-assignment-operators' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/7.18.6 + name: '@babel/plugin-proposal-nullish-coalescing-operator' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/7.18.6 + name: '@babel/plugin-proposal-numeric-separator' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/7.20.7 + name: '@babel/plugin-proposal-object-rest-spread' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.21.0 + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.0) + '@babel/plugin-transform-parameters': registry.npmmirror.com/@babel/plugin-transform-parameters@7.20.7(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/7.18.6 + name: '@babel/plugin-proposal-optional-catch-binding' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/7.21.0 + name: '@babel/plugin-proposal-optional-chaining' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.20.0 + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.0) + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-private-methods/7.18.6 + name: '@babel/plugin-proposal-private-methods' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/7.21.0 + name: '@babel/plugin-proposal-private-property-in-object' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.18.6 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-syntax-private-property-in-object': registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/7.18.6 + name: '@babel/plugin-proposal-unicode-property-regex' + version: 7.18.6 + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.0): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4 + name: '@babel/plugin-syntax-async-generators' + version: 7.8.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.0): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13 + name: '@babel/plugin-syntax-class-properties' + version: 7.12.13 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.0): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-static-block/7.14.5 + name: '@babel/plugin-syntax-class-static-block' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/7.8.3 + name: '@babel/plugin-syntax-dynamic-import' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/7.8.3 + name: '@babel/plugin-syntax-export-namespace-from' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.0): + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-assertions/7.20.0 + name: '@babel/plugin-syntax-import-assertions' + version: 7.20.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3 + name: '@babel/plugin-syntax-json-strings' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.0): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 + name: '@babel/plugin-syntax-logical-assignment-operators' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 + name: '@babel/plugin-syntax-nullish-coalescing-operator' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.0): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4 + name: '@babel/plugin-syntax-numeric-separator' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3 + name: '@babel/plugin-syntax-object-rest-spread' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 + name: '@babel/plugin-syntax-optional-catch-binding' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.0): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3 + name: '@babel/plugin-syntax-optional-chaining' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.0): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/7.14.5 + name: '@babel/plugin-syntax-private-property-in-object' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.0): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5 + name: '@babel/plugin-syntax-top-level-await' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-arrow-functions@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-arrow-functions/7.20.7 + name: '@babel/plugin-transform-arrow-functions' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-async-to-generator/7.20.7 + name: '@babel/plugin-transform-async-to-generator' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.18.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-remap-async-to-generator': registry.npmmirror.com/@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/7.18.6 + name: '@babel/plugin-transform-block-scoped-functions' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-block-scoping/7.21.0 + name: '@babel/plugin-transform-block-scoping' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-classes@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-classes/7.21.0 + name: '@babel/plugin-transform-classes' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.18.6 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0) + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.21.0 + '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression@7.18.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers@7.20.7 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.18.6 + globals: registry.npmmirror.com/globals@11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-computed-properties@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-computed-properties/7.20.7 + name: '@babel/plugin-transform-computed-properties' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/template': registry.npmmirror.com/@babel/template@7.20.7 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-destructuring@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-destructuring/7.20.7 + name: '@babel/plugin-transform-destructuring' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-dotall-regex/7.18.6 + name: '@babel/plugin-transform-dotall-regex' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/7.18.9 + name: '@babel/plugin-transform-duplicate-keys' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/7.18.6 + name: '@babel/plugin-transform-exponentiation-operator' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-builder-binary-assignment-operator-visitor': registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor@7.18.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-for-of@7.21.0(@babel/core@7.21.0): + resolution: {integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-for-of/7.21.0 + name: '@babel/plugin-transform-for-of' + version: 7.21.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-function-name/7.18.9 + name: '@babel/plugin-transform-function-name' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0) + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-literals/7.18.9 + name: '@babel/plugin-transform-literals' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/7.18.6 + name: '@babel/plugin-transform-member-expression-literals' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.0): + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-amd/7.20.11 + name: '@babel/plugin-transform-modules-amd' + version: 7.20.11 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.21.2 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.21.2(@babel/core@7.21.0): + resolution: {integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.21.2 + name: '@babel/plugin-transform-modules-commonjs' + version: 7.21.2 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.21.2 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.0): + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/7.20.11 + name: '@babel/plugin-transform-modules-systemjs' + version: 7.20.11 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.18.6 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.21.2 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-umd/7.18.6 + name: '@babel/plugin-transform-modules-umd' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.21.2 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.0): + resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/7.20.5 + name: '@babel/plugin-transform-named-capturing-groups-regex' + version: 7.20.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-new-target/7.18.6 + name: '@babel/plugin-transform-new-target' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-object-super/7.18.6 + name: '@babel/plugin-transform-object-super' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers@7.20.7 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/plugin-transform-parameters@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-parameters/7.20.7 + name: '@babel/plugin-transform-parameters' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-property-literals/7.18.6 + name: '@babel/plugin-transform-property-literals' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.21.0): + resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-regenerator/7.20.5 + name: '@babel/plugin-transform-regenerator' + version: 7.20.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + regenerator-transform: registry.npmmirror.com/regenerator-transform@0.15.1 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-reserved-words/7.18.6 + name: '@babel/plugin-transform-reserved-words' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/7.18.6 + name: '@babel/plugin-transform-shorthand-properties' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.0): + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-spread/7.20.7 + name: '@babel/plugin-transform-spread' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.20.0 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-sticky-regex/7.18.6 + name: '@babel/plugin-transform-sticky-regex' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-template-literals/7.18.9 + name: '@babel/plugin-transform-template-literals' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.0): + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/7.18.9 + name: '@babel/plugin-transform-typeof-symbol' + version: 7.18.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.21.0): + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/7.18.10 + name: '@babel/plugin-transform-unicode-escapes' + version: 7.18.10 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.0): + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-unicode-regex/7.18.6 + name: '@babel/plugin-transform-unicode-regex' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.21.0(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + dev: true + + registry.npmmirror.com/@babel/preset-env@7.20.2(@babel/core@7.21.0): + resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.20.2.tgz} + id: registry.npmmirror.com/@babel/preset-env/7.20.2 + name: '@babel/preset-env' + version: 7.20.2 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.21.0 + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.20.7(@babel/core@7.21.0) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.21.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.21.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.20.7(@babel/core@7.21.0) + '@babel/plugin-proposal-async-generator-functions': registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.21.0) + '@babel/plugin-proposal-class-properties': registry.npmmirror.com/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-class-static-block': registry.npmmirror.com/@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.21.0) + '@babel/plugin-proposal-dynamic-import': registry.npmmirror.com/@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-export-namespace-from': registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.21.0) + '@babel/plugin-proposal-json-strings': registry.npmmirror.com/@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.21.0) + '@babel/plugin-proposal-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-numeric-separator': registry.npmmirror.com/@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-object-rest-spread': registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.21.0) + '@babel/plugin-proposal-optional-catch-binding': registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-optional-chaining': registry.npmmirror.com/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.21.0) + '@babel/plugin-proposal-private-methods': registry.npmmirror.com/@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.21.0) + '@babel/plugin-proposal-private-property-in-object': registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.21.0) + '@babel/plugin-proposal-unicode-property-regex': registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.0) + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.0) + '@babel/plugin-syntax-class-properties': registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.0) + '@babel/plugin-syntax-class-static-block': registry.npmmirror.com/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.21.0) + '@babel/plugin-syntax-dynamic-import': registry.npmmirror.com/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-export-namespace-from': registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-import-assertions': registry.npmmirror.com/@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.21.0) + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.0) + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.0) + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.0) + '@babel/plugin-syntax-private-property-in-object': registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.21.0) + '@babel/plugin-syntax-top-level-await': registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.0) + '@babel/plugin-transform-arrow-functions': registry.npmmirror.com/@babel/plugin-transform-arrow-functions@7.20.7(@babel/core@7.21.0) + '@babel/plugin-transform-async-to-generator': registry.npmmirror.com/@babel/plugin-transform-async-to-generator@7.20.7(@babel/core@7.21.0) + '@babel/plugin-transform-block-scoped-functions': registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-block-scoping': registry.npmmirror.com/@babel/plugin-transform-block-scoping@7.21.0(@babel/core@7.21.0) + '@babel/plugin-transform-classes': registry.npmmirror.com/@babel/plugin-transform-classes@7.21.0(@babel/core@7.21.0) + '@babel/plugin-transform-computed-properties': registry.npmmirror.com/@babel/plugin-transform-computed-properties@7.20.7(@babel/core@7.21.0) + '@babel/plugin-transform-destructuring': registry.npmmirror.com/@babel/plugin-transform-destructuring@7.20.7(@babel/core@7.21.0) + '@babel/plugin-transform-dotall-regex': registry.npmmirror.com/@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-duplicate-keys': registry.npmmirror.com/@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.21.0) + '@babel/plugin-transform-exponentiation-operator': registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-for-of': registry.npmmirror.com/@babel/plugin-transform-for-of@7.21.0(@babel/core@7.21.0) + '@babel/plugin-transform-function-name': registry.npmmirror.com/@babel/plugin-transform-function-name@7.18.9(@babel/core@7.21.0) + '@babel/plugin-transform-literals': registry.npmmirror.com/@babel/plugin-transform-literals@7.18.9(@babel/core@7.21.0) + '@babel/plugin-transform-member-expression-literals': registry.npmmirror.com/@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-modules-amd': registry.npmmirror.com/@babel/plugin-transform-modules-amd@7.20.11(@babel/core@7.21.0) + '@babel/plugin-transform-modules-commonjs': registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.21.2(@babel/core@7.21.0) + '@babel/plugin-transform-modules-systemjs': registry.npmmirror.com/@babel/plugin-transform-modules-systemjs@7.20.11(@babel/core@7.21.0) + '@babel/plugin-transform-modules-umd': registry.npmmirror.com/@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-named-capturing-groups-regex': registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex@7.20.5(@babel/core@7.21.0) + '@babel/plugin-transform-new-target': registry.npmmirror.com/@babel/plugin-transform-new-target@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-object-super': registry.npmmirror.com/@babel/plugin-transform-object-super@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-parameters': registry.npmmirror.com/@babel/plugin-transform-parameters@7.20.7(@babel/core@7.21.0) + '@babel/plugin-transform-property-literals': registry.npmmirror.com/@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-regenerator': registry.npmmirror.com/@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.21.0) + '@babel/plugin-transform-reserved-words': registry.npmmirror.com/@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-shorthand-properties': registry.npmmirror.com/@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-spread': registry.npmmirror.com/@babel/plugin-transform-spread@7.20.7(@babel/core@7.21.0) + '@babel/plugin-transform-sticky-regex': registry.npmmirror.com/@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-template-literals': registry.npmmirror.com/@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.21.0) + '@babel/plugin-transform-typeof-symbol': registry.npmmirror.com/@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.21.0) + '@babel/plugin-transform-unicode-escapes': registry.npmmirror.com/@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.21.0) + '@babel/plugin-transform-unicode-regex': registry.npmmirror.com/@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.21.0) + '@babel/preset-modules': registry.npmmirror.com/@babel/preset-modules@0.1.5(@babel/core@7.21.0) + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + babel-plugin-polyfill-corejs2: registry.npmmirror.com/babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.0) + babel-plugin-polyfill-corejs3: registry.npmmirror.com/babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.0) + babel-plugin-polyfill-regenerator: registry.npmmirror.com/babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.0) + core-js-compat: registry.npmmirror.com/core-js-compat@3.29.0 + semver: registry.npmmirror.com/semver@6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/preset-modules@0.1.5(@babel/core@7.21.0): + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz} + id: registry.npmmirror.com/@babel/preset-modules/0.1.5 + name: '@babel/preset-modules' + version: 0.1.5 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.20.2 + '@babel/plugin-proposal-unicode-property-regex': registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.21.0) + '@babel/plugin-transform-dotall-regex': registry.npmmirror.com/@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.21.0) + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + esutils: registry.npmmirror.com/esutils@2.0.3 + dev: true + + registry.npmmirror.com/@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz} + name: '@babel/regjsgen' + version: 0.8.0 + dev: true + + registry.npmmirror.com/@babel/runtime@7.21.0: + resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz} + name: '@babel/runtime' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.13.11 + dev: true + + registry.npmmirror.com/@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/template/-/template-7.20.7.tgz} + name: '@babel/template' + version: 7.20.7 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + dev: true + + registry.npmmirror.com/@babel/traverse@7.21.2: + resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/traverse/-/traverse-7.21.2.tgz} + name: '@babel/traverse' + version: 7.21.2 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.21.1 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.21.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.18.6 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.21.2 + '@babel/types': registry.npmmirror.com/@babel/types@7.21.2 + debug: registry.npmmirror.com/debug@4.3.4 + globals: registry.npmmirror.com/globals@11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/types@7.21.2: + resolution: {integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/types/-/types-7.21.2.tgz} + name: '@babel/types' + version: 7.21.2 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser@7.19.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.19.1 + to-fast-properties: registry.npmmirror.com/to-fast-properties@2.0.0 + + registry.npmmirror.com/@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} + name: '@cspotcode/source-map-support' + version: 0.8.1 + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.9 + dev: true + + registry.npmmirror.com/@esbuild/android-arm64@0.17.11: + resolution: {integrity: sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz} + name: '@esbuild/android-arm64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.17.11: + resolution: {integrity: sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz} + name: '@esbuild/android-arm' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.17.11: + resolution: {integrity: sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz} + name: '@esbuild/android-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.11: + resolution: {integrity: sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz} + name: '@esbuild/darwin-arm64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.17.11: + resolution: {integrity: sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz} + name: '@esbuild/darwin-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.11: + resolution: {integrity: sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.11: + resolution: {integrity: sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz} + name: '@esbuild/freebsd-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.17.11: + resolution: {integrity: sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz} + name: '@esbuild/linux-arm64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.17.11: + resolution: {integrity: sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz} + name: '@esbuild/linux-arm' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.17.11: + resolution: {integrity: sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz} + name: '@esbuild/linux-ia32' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.17.11: + resolution: {integrity: sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz} + name: '@esbuild/linux-loong64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.11: + resolution: {integrity: sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz} + name: '@esbuild/linux-mips64el' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.11: + resolution: {integrity: sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz} + name: '@esbuild/linux-ppc64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.11: + resolution: {integrity: sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz} + name: '@esbuild/linux-riscv64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.17.11: + resolution: {integrity: sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz} + name: '@esbuild/linux-s390x' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.17.11: + resolution: {integrity: sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz} + name: '@esbuild/linux-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.11: + resolution: {integrity: sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz} + name: '@esbuild/netbsd-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.11: + resolution: {integrity: sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz} + name: '@esbuild/openbsd-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.17.11: + resolution: {integrity: sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz} + name: '@esbuild/sunos-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.17.11: + resolution: {integrity: sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz} + name: '@esbuild/win32-arm64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.17.11: + resolution: {integrity: sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz} + name: '@esbuild/win32-ia32' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.17.11: + resolution: {integrity: sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz} + name: '@esbuild/win32-x64' + version: 0.17.11 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@jridgewell/gen-mapping@0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} + name: '@jridgewell/gen-mapping' + version: 0.1.1 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/gen-mapping@0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.2 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.17 + dev: true + + registry.npmmirror.com/@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.0 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmmirror.com/@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmmirror.com/@jridgewell/source-map@0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz} + name: '@jridgewell/source-map' + version: 0.3.2 + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.2 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.17 + dev: true + + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/trace-mapping@0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.17 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.0 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.9 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.0 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.14 + dev: true + + registry.npmmirror.com/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.nlark.com/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmmirror.com/fastq@1.15.0 + dev: true + + registry.npmmirror.com/@rollup/plugin-babel@5.3.1(@babel/core@7.21.0)(rollup@2.79.1): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz} + id: registry.npmmirror.com/@rollup/plugin-babel/5.3.1 + name: '@rollup/plugin-babel' + version: 5.3.1 + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.18.6 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz} + id: registry.npmmirror.com/@rollup/plugin-node-resolve/11.2.1 + name: '@rollup/plugin-node-resolve' + version: 11.2.1 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + '@types/resolve': registry.npmmirror.com/@types/resolve@1.17.1 + builtin-modules: registry.npmmirror.com/builtin-modules@3.3.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.0 + is-module: registry.npmmirror.com/is-module@1.0.0 + resolve: registry.npmmirror.com/resolve@1.22.1 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/plugin-replace@2.4.2(rollup@2.79.1): + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz} + id: registry.npmmirror.com/@rollup/plugin-replace/2.4.2 + name: '@rollup/plugin-replace' + version: 2.4.2 + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + magic-string: registry.npmmirror.com/magic-string@0.25.9 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/3.1.0 + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@0.0.39 + estree-walker: registry.npmmirror.com/estree-walker@1.0.1 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz} + name: '@surma/rollup-plugin-off-main-thread' + version: 2.2.3 + dependencies: + ejs: registry.npmmirror.com/ejs@3.1.8 + json5: registry.npmmirror.com/json5@2.2.3 + magic-string: registry.npmmirror.com/magic-string@0.25.9 + string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.8 + dev: true + + registry.npmmirror.com/@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz} + name: '@tsconfig/node10' + version: 1.0.9 + dev: true + + registry.npmmirror.com/@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz} + name: '@tsconfig/node12' + version: 1.0.11 + dev: true + + registry.npmmirror.com/@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz} + name: '@tsconfig/node14' + version: 1.0.3 + dev: true + + registry.npmmirror.com/@tsconfig/node16@1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.3.tgz} + name: '@tsconfig/node16' + version: 1.0.3 + dev: true + + registry.npmmirror.com/@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: true + + registry.npmmirror.com/@types/estree@1.0.0: + resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/estree/-/estree-1.0.0.tgz} + name: '@types/estree' + version: 1.0.0 + dev: true + + registry.npmmirror.com/@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} + name: '@types/json-schema' + version: 7.0.11 + dev: true + + registry.npmmirror.com/@types/node@18.14.6: + resolution: {integrity: sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/node/-/node-18.14.6.tgz} + name: '@types/node' + version: 18.14.6 + dev: true + + registry.npmmirror.com/@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz} + name: '@types/resolve' + version: 1.17.1 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.14.6 + dev: true + + registry.npmmirror.com/@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/semver/-/semver-7.3.13.tgz} + name: '@types/semver' + version: 7.3.13 + dev: true + + registry.npmmirror.com/@types/trusted-types@2.0.3: + resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.3.tgz} + name: '@types/trusted-types' + version: 2.0.3 + dev: true + + registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.54.0(@typescript-eslint/parser@5.54.0)(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.54.0 + name: '@typescript-eslint/eslint-plugin' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.54.0(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.54.0 + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@5.54.0(eslint@8.35.0)(typescript@4.9.5) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.54.0(eslint@8.35.0)(typescript@4.9.5) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.35.0 + grapheme-splitter: registry.npmmirror.com/grapheme-splitter@1.0.4 + ignore: registry.npmmirror.com/ignore@5.2.4 + natural-compare-lite: registry.npmmirror.com/natural-compare-lite@1.4.0 + regexpp: registry.npmmirror.com/regexpp@3.2.0 + semver: registry.npmmirror.com/semver@7.3.8 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/parser@5.54.0(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.54.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/parser/5.54.0 + name: '@typescript-eslint/parser' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.54.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.54.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.54.0(typescript@4.9.5) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.35.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/scope-manager@5.54.0: + resolution: {integrity: sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.54.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.54.0 + dev: true + + registry.npmmirror.com/@typescript-eslint/type-utils@5.54.0(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/type-utils/5.54.0 + name: '@typescript-eslint/type-utils' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.54.0(typescript@4.9.5) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.54.0(eslint@8.35.0)(typescript@4.9.5) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.35.0 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/types@5.54.0: + resolution: {integrity: sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/types/-/types-5.54.0.tgz} + name: '@typescript-eslint/types' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@typescript-eslint/typescript-estree@5.54.0(typescript@4.9.5): + resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.54.0 + name: '@typescript-eslint/typescript-estree' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.54.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.54.0 + debug: registry.npmmirror.com/debug@4.3.4 + globby: registry.npmmirror.com/globby@11.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + semver: registry.npmmirror.com/semver@7.3.8 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/utils@5.54.0(eslint@8.35.0)(typescript@4.9.5): + resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.54.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/5.54.0 + name: '@typescript-eslint/utils' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.11 + '@types/semver': registry.npmmirror.com/@types/semver@7.3.13 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.54.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.54.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.54.0(typescript@4.9.5) + eslint: 8.35.0 + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + eslint-utils: registry.npmmirror.com/eslint-utils@3.0.0(eslint@8.35.0) + semver: registry.npmmirror.com/semver@7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmmirror.com/@typescript-eslint/visitor-keys@5.54.0: + resolution: {integrity: sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 5.54.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.54.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.3.0 + dev: true + + registry.npmmirror.com/@vicons/ionicons5@0.12.0: + resolution: {integrity: sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@vicons/ionicons5/-/ionicons5-0.12.0.tgz} + name: '@vicons/ionicons5' + version: 0.12.0 + dev: false + + registry.npmmirror.com/acorn-jsx@5.3.2(acorn@8.8.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + id: registry.npmmirror.com/acorn-jsx/5.3.2 + name: acorn-jsx + version: 5.3.2 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn@8.8.2 + dev: true + + registry.npmmirror.com/acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz} + name: acorn-walk + version: 8.2.0 + engines: {node: '>=0.4.0'} + dev: true + + registry.npmmirror.com/acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmmirror.com/acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz} + name: acorn + version: 8.8.2 + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + registry.npmmirror.com/ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: true + + registry.npmmirror.com/ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} + name: ajv + version: 8.12.0 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@1.0.0 + require-from-string: registry.npmmirror.com/require-from-string@2.0.2 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: true + + registry.npmmirror.com/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz} + name: ansi-regex + version: 6.0.1 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + dev: true + + registry.npmmirror.com/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@2.0.1 + dev: true + + registry.npmmirror.com/ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz} + name: ansi-styles + version: 6.2.1 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/arg/-/arg-4.1.3.tgz} + name: arg + version: 4.1.3 + dev: true + + registry.npmmirror.com/argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: true + + registry.npmmirror.com/array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/async/-/async-3.2.4.tgz} + name: async + version: 3.2.4 + dev: true + + registry.npmmirror.com/asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz} + name: asynckit + version: 0.4.0 + dev: true + + registry.npmmirror.com/at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz} + name: at-least-node + version: 1.0.0 + engines: {node: '>= 4.0.0'} + dev: true + + registry.npmmirror.com/available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + name: available-typed-arrays + version: 1.0.5 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.21.0): + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz} + id: registry.npmmirror.com/babel-plugin-polyfill-corejs2/0.3.3 + name: babel-plugin-polyfill-corejs2 + version: 0.3.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.21.0 + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.0) + semver: registry.npmmirror.com/semver@6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.21.0): + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz} + id: registry.npmmirror.com/babel-plugin-polyfill-corejs3/0.6.0 + name: babel-plugin-polyfill-corejs3 + version: 0.6.0 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.0) + core-js-compat: registry.npmmirror.com/core-js-compat@3.29.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.21.0): + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz} + id: registry.npmmirror.com/babel-plugin-polyfill-regenerator/0.4.1 + name: babel-plugin-polyfill-regenerator + version: 0.4.1 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.21.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: 0.0.1 + dev: true + + registry.npmmirror.com/brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + name: brace-expansion + version: 2.0.1 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + dev: true + + registry.npmmirror.com/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range@7.0.1 + dev: true + + registry.npmmirror.com/browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz} + name: browserslist + version: 4.21.5 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001460 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.320 + node-releases: registry.npmmirror.com/node-releases@2.0.10 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.10(browserslist@4.21.5) + dev: true + + registry.npmmirror.com/buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + dev: true + + registry.npmmirror.com/builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz} + name: builtin-modules + version: 3.3.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} + name: call-bind + version: 1.0.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + dev: true + + registry.npmmirror.com/callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} + name: camelcase + version: 5.3.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/caniuse-lite@1.0.30001460: + resolution: {integrity: sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz} + name: caniuse-lite + version: 1.0.30001460 + dev: true + + registry.npmmirror.com/chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@3.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + supports-color: registry.npmmirror.com/supports-color@5.5.0 + dev: true + + registry.npmmirror.com/chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: true + + registry.npmmirror.com/cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} + name: cliui + version: 8.0.1 + engines: {node: '>=12'} + dependencies: + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: true + + registry.npmmirror.com/color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + dev: true + + registry.npmmirror.com/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + dev: true + + registry.npmmirror.com/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: true + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmmirror.com/combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz} + name: combined-stream + version: 1.0.8 + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: registry.npmmirror.com/delayed-stream@1.0.0 + dev: true + + registry.npmmirror.com/commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + dev: true + + registry.npmmirror.com/common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/common-tags/-/common-tags-1.8.2.tgz} + name: common-tags + version: 1.8.2 + engines: {node: '>=4.0.0'} + dev: true + + registry.npmmirror.com/convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} + name: convert-source-map + version: 1.9.0 + dev: true + + registry.npmmirror.com/core-js-compat@3.29.0: + resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.29.0.tgz} + name: core-js-compat + version: 3.29.0 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.21.5 + dev: true + + registry.npmmirror.com/create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz} + name: create-require + version: 1.1.1 + dev: true + + registry.npmmirror.com/crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz} + name: crypto-random-string + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} + name: debug + version: 3.2.7 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.3 + dev: true + + registry.npmmirror.com/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.2 + dev: true + + registry.npmmirror.com/decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} + name: decamelize + version: 1.2.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/deepmerge@4.3.0: + resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.0.tgz} + name: deepmerge + version: 4.3.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/define-properties/-/define-properties-1.2.0.tgz} + name: define-properties + version: 1.2.0 + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + registry.npmmirror.com/delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} + name: delayed-stream + version: 1.0.0 + engines: {node: '>=0.4.0'} + dev: true + + registry.npmmirror.com/diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/diff/-/diff-4.0.2.tgz} + name: diff + version: 4.0.2 + engines: {node: '>=0.3.1'} + dev: true + + registry.npmmirror.com/dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmmirror.com/path-type@4.0.0 + dev: true + + registry.npmmirror.com/doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} + name: doctrine + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + esutils: registry.npmmirror.com/esutils@2.0.3 + dev: true + + registry.npmmirror.com/dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz} + name: dot-prop + version: 5.3.0 + engines: {node: '>=8'} + dependencies: + is-obj: registry.npmmirror.com/is-obj@2.0.0 + dev: true + + registry.npmmirror.com/ejs@3.1.8: + resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ejs/-/ejs-3.1.8.tgz} + name: ejs + version: 3.1.8 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dependencies: + jake: registry.npmmirror.com/jake@10.8.5 + dev: true + + registry.npmmirror.com/electron-to-chromium@1.4.320: + resolution: {integrity: sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz} + name: electron-to-chromium + version: 1.4.320 + dev: true + + registry.npmmirror.com/emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + name: emoji-regex + version: 8.0.0 + dev: true + + registry.npmmirror.com/emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz} + name: emoji-regex + version: 9.2.2 + dev: true + + registry.npmmirror.com/errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} + name: errno + version: 0.1.8 + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + registry.npmmirror.com/error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} + name: error-ex + version: 1.3.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.2.1 + dev: true + + registry.npmmirror.com/es-abstract@1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/es-abstract/-/es-abstract-1.21.1.tgz} + name: es-abstract + version: 1.21.1 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.1 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function-bind: registry.npmmirror.com/function-bind@1.1.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has: registry.npmmirror.com/has@1.0.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.0 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.10 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.12.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.4.3 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.6 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.6 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.9 + dev: true + + registry.npmmirror.com/es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz} + name: es-set-tostringtag + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + has: registry.npmmirror.com/has@1.0.3 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + name: es-to-primitive + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: true + + registry.npmmirror.com/escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: true + + registry.npmmirror.com/eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse@4.3.0 + estraverse: registry.npmmirror.com/estraverse@4.3.0 + dev: true + + registry.npmmirror.com/eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz} + name: eslint-scope + version: 7.1.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse@4.3.0 + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz} + name: eslint-utils + version: 2.1.0 + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@1.3.0 + dev: true + + registry.npmmirror.com/eslint-utils@3.0.0(eslint@8.35.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz} + id: registry.npmmirror.com/eslint-utils/3.0.0 + name: eslint-utils + version: 3.0.0 + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.35.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@2.1.0 + dev: true + + registry.npmmirror.com/eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz} + name: eslint-visitor-keys + version: 1.3.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} + name: eslint-visitor-keys + version: 2.1.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz} + name: eslint-visitor-keys + version: 3.3.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/espree@9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/espree/-/espree-9.4.1.tgz} + name: espree + version: 9.4.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: registry.npmmirror.com/acorn@8.8.2 + acorn-jsx: registry.npmmirror.com/acorn-jsx@5.3.2(acorn@8.8.2) + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.3.0 + dev: true + + registry.npmmirror.com/esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz} + name: esquery + version: 1.5.0 + engines: {node: '>=0.10'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/estree-walker/-/estree-walker-1.0.1.tgz} + name: estree-walker + version: 1.0.1 + dev: true + + registry.npmmirror.com/estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + + registry.npmmirror.com/esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: true + + registry.npmmirror.com/fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + name: fast-glob + version: 3.2.12 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: true + + registry.npmmirror.com/fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: true + + registry.npmmirror.com/fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + dev: true + + registry.npmmirror.com/filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz} + name: filelist + version: 1.0.4 + dependencies: + minimatch: registry.npmmirror.com/minimatch@5.1.6 + dev: true + + registry.npmmirror.com/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 + dev: true + + registry.npmmirror.com/find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} + name: find-up + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@5.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: true + + registry.npmmirror.com/find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} + name: find-up + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@6.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: true + + registry.npmmirror.com/for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: true + + registry.npmmirror.com/fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz} + name: fs-extra + version: 9.1.0 + engines: {node: '>=10'} + dependencies: + at-least-node: registry.npmmirror.com/at-least-node@1.0.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.0 + dev: true + + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.npmmirror.com/fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: true + + registry.npmmirror.com/function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz} + name: function.prototype.name + version: 1.1.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: true + + registry.npmmirror.com/functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: true + + registry.npmmirror.com/gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + name: gensync + version: 1.0.0-beta.2 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz} + name: get-intrinsic + version: 1.2.0 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + has: registry.npmmirror.com/has@1.0.3 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz} + name: get-own-enumerable-property-symbols + version: 3.0.2 + dev: true + + registry.npmmirror.com/get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + name: get-symbol-description + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + dev: true + + registry.npmmirror.com/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: true + + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: true + + registry.npmmirror.com/globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + name: globalthis + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.0 + dev: true + + registry.npmmirror.com/globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmmirror.com/array-union@2.1.0 + dir-glob: registry.npmmirror.com/dir-glob@3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + ignore: registry.npmmirror.com/ignore@5.2.4 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: registry.npmmirror.com/slash@3.0.0 + dev: true + + registry.npmmirror.com/gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + dev: true + + registry.npmmirror.com/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + dev: true + + registry.npmmirror.com/grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz} + name: grapheme-splitter + version: 1.0.4 + dev: true + + registry.npmmirror.com/has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: true + + registry.npmmirror.com/has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} + name: has-property-descriptors + version: 1.0.0 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + dev: true + + registry.npmmirror.com/has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + name: has-proto + version: 1.0.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + dev: true + + registry.npmmirror.com/iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} + name: iconv-lite + version: 0.6.3 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: true + optional: true + + registry.npmmirror.com/idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/idb/-/idb-7.1.1.tgz} + name: idb + version: 7.1.1 + dev: true + + registry.npmmirror.com/ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz} + name: ignore + version: 5.2.4 + engines: {node: '>= 4'} + dev: true + + registry.npmmirror.com/image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} + name: image-size + version: 0.5.5 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmmirror.com/parent-module@1.0.1 + resolve-from: registry.npmmirror.com/resolve-from@4.0.0 + dev: true + + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: true + + registry.npmmirror.com/internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.5.tgz} + name: internal-slot + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + has: registry.npmmirror.com/has@1.0.3 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: true + + registry.npmmirror.com/is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + name: is-array-buffer + version: 3.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.10 + dev: true + + registry.npmmirror.com/is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} + name: is-arrayish + version: 0.2.1 + dev: true + + registry.npmmirror.com/is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + dev: true + + registry.npmmirror.com/is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz} + name: is-core-module + version: 2.11.0 + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: true + + registry.npmmirror.com/is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + name: is-fullwidth-code-point + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz} + name: is-fullwidth-code-point + version: 4.0.0 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob@2.1.1 + dev: true + + registry.npmmirror.com/is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz} + name: is-module + version: 1.0.0 + dev: true + + registry.npmmirror.com/is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + name: is-negative-zero + version: 2.0.2 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: true + + registry.npmmirror.com/is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz} + name: is-obj + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz} + name: is-obj + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-regexp/-/is-regexp-1.0.0.tgz} + name: is-regexp + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + dev: true + + registry.npmmirror.com/is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.10.tgz} + name: is-typed-array + version: 1.1.10 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: true + + registry.npmmirror.com/is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + name: is-weakref + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + dev: true + + registry.npmmirror.com/jake@10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jake/-/jake-10.8.5.tgz} + name: jake + version: 10.8.5 + engines: {node: '>=10'} + hasBin: true + dependencies: + async: registry.npmmirror.com/async@3.2.4 + chalk: registry.npmmirror.com/chalk@4.1.2 + filelist: registry.npmmirror.com/filelist@1.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + dev: true + + registry.npmmirror.com/jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-worker/-/jest-worker-26.6.2.tgz} + name: jest-worker + version: 26.6.2 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.14.6 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: true + + registry.npmmirror.com/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: true + + registry.npmmirror.com/js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@2.0.1 + dev: true + + registry.npmmirror.com/jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz} + name: jsesc + version: 0.5.0 + hasBin: true + dev: true + + registry.npmmirror.com/jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + name: jsesc + version: 2.5.2 + engines: {node: '>=4'} + hasBin: true + dev: true + + registry.npmmirror.com/json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + dev: true + + registry.npmmirror.com/json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: true + + registry.npmmirror.com/json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + name: json-schema-traverse + version: 1.0.0 + dev: true + + registry.npmmirror.com/json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz} + name: json-schema + version: 0.4.0 + dev: true + + registry.npmmirror.com/json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json5/-/json5-1.0.2.tgz} + name: json5 + version: 1.0.2 + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist@1.2.8 + dev: true + + registry.npmmirror.com/json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} + name: json5 + version: 2.2.3 + engines: {node: '>=6'} + hasBin: true + dev: true + + registry.npmmirror.com/jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify@2.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + registry.npmmirror.com/jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz} + name: jsonpointer + version: 5.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/leven/-/leven-3.1.0.tgz} + name: leven + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + dev: true + + registry.npmmirror.com/locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} + name: locate-path + version: 5.0.0 + engines: {node: '>=8'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@4.1.0 + dev: true + + registry.npmmirror.com/locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} + name: locate-path + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@5.0.0 + dev: true + + registry.npmmirror.com/lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} + name: lodash.camelcase + version: 4.3.0 + dev: true + + registry.npmmirror.com/lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} + name: lodash.debounce + version: 4.0.8 + dev: true + + registry.npmmirror.com/lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz} + name: lodash.sortby + version: 4.7.0 + dev: true + + registry.npmmirror.com/lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + + registry.npmmirror.com/lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + name: lru-cache + version: 5.1.1 + dependencies: + yallist: registry.npmmirror.com/yallist@3.1.1 + dev: true + + registry.npmmirror.com/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: true + + registry.npmmirror.com/lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz} + name: lru-cache + version: 7.18.3 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz} + name: magic-string + version: 0.25.9 + dependencies: + sourcemap-codec: registry.npmmirror.com/sourcemap-codec@1.4.8 + + registry.npmmirror.com/make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} + name: make-dir + version: 2.1.0 + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: registry.npmmirror.com/semver@5.7.1 + dev: true + optional: true + + registry.npmmirror.com/make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz} + name: make-error + version: 1.3.6 + dev: true + + registry.npmmirror.com/marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/marked/-/marked-4.3.0.tgz} + name: marked + version: 4.3.0 + engines: {node: '>= 12'} + hasBin: true + dev: false + + registry.npmmirror.com/merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: true + + registry.npmmirror.com/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + registry.npmmirror.com/mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} + name: mime-db + version: 1.52.0 + engines: {node: '>= 0.6'} + dev: true + + registry.npmmirror.com/mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} + name: mime-types + version: 2.1.35 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.npmmirror.com/mime-db@1.52.0 + dev: true + + registry.npmmirror.com/mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + name: mime + version: 1.6.0 + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} + name: mimic-fn + version: 4.0.0 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: true + + registry.npmmirror.com/minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz} + name: minimatch + version: 5.1.6 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true + + registry.npmmirror.com/minimatch@6.2.0: + resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-6.2.0.tgz} + name: minimatch + version: 6.2.0 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true + + registry.npmmirror.com/minimatch@7.4.2: + resolution: {integrity: sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-7.4.2.tgz} + name: minimatch + version: 7.4.2 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true + + registry.npmmirror.com/minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + dev: true + + registry.npmmirror.com/minipass@4.2.4: + resolution: {integrity: sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minipass/-/minipass-4.2.4.tgz} + name: minipass + version: 4.2.4 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + + registry.npmmirror.com/ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + dev: true + + registry.npmmirror.com/natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} + name: natural-compare-lite + version: 1.4.0 + dev: true + + registry.npmmirror.com/natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} + name: natural-compare + version: 1.4.0 + dev: true + + registry.npmmirror.com/needle@3.2.0: + resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/needle/-/needle-3.2.0.tgz} + name: needle + version: 3.2.0 + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + debug: registry.npmmirror.com/debug@3.2.7 + iconv-lite: registry.npmmirror.com/iconv-lite@0.6.3 + sax: registry.npmmirror.com/sax@1.2.4 + transitivePeerDependencies: + - supports-color + dev: true + optional: true + + registry.npmmirror.com/node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz} + name: node-releases + version: 2.0.10 + dev: true + + registry.npmmirror.com/object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} + name: object-inspect + version: 1.12.3 + dev: true + + registry.npmmirror.com/object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} + name: object.assign + version: 4.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true + + registry.npmmirror.com/onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@2.1.0 + dev: true + + registry.npmmirror.com/onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz} + name: onetime + version: 6.0.0 + engines: {node: '>=12'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@4.0.0 + dev: true + + registry.npmmirror.com/p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} + name: p-limit + version: 2.3.0 + engines: {node: '>=6'} + dependencies: + p-try: registry.npmmirror.com/p-try@2.2.0 + dev: true + + registry.npmmirror.com/p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} + name: p-limit + version: 3.1.0 + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + registry.npmmirror.com/p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} + name: p-locate + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@2.3.0 + dev: true + + registry.npmmirror.com/p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} + name: p-locate + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@3.1.0 + dev: true + + registry.npmmirror.com/p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz} + name: p-map + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + registry.npmmirror.com/p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} + name: p-try + version: 2.2.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmmirror.com/callsites@3.1.0 + dev: true + + registry.npmmirror.com/parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} + name: parse-json + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.18.6 + error-ex: registry.npmmirror.com/error-ex@1.3.2 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 + dev: true + + registry.npmmirror.com/path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmmirror.com/path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: true + + registry.npmmirror.com/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: true + + registry.npmmirror.com/pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz} + name: pluralize + version: 8.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz} + name: pretty-bytes + version: 5.6.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz} + name: punycode + version: 2.3.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: true + + registry.npmmirror.com/quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} + name: quick-lru + version: 4.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} + name: randombytes + version: 2.1.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: true + + registry.npmmirror.com/read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + name: read-pkg-up + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + find-up: registry.npmmirror.com/find-up@4.1.0 + read-pkg: registry.npmmirror.com/read-pkg@5.2.0 + type-fest: registry.npmmirror.com/type-fest@0.8.1 + dev: true + + registry.npmmirror.com/read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz} + name: read-pkg + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: registry.npmmirror.com/parse-json@5.2.0 + type-fest: registry.npmmirror.com/type-fest@0.6.0 + dev: true + + registry.npmmirror.com/readable-stream@3.6.1: + resolution: {integrity: sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.1.tgz} + name: readable-stream + version: 3.6.1 + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + string_decoder: registry.npmmirror.com/string_decoder@1.3.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: true + + registry.npmmirror.com/regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz} + name: regenerate-unicode-properties + version: 10.1.0 + engines: {node: '>=4'} + dependencies: + regenerate: registry.npmmirror.com/regenerate@1.4.2 + dev: true + + registry.npmmirror.com/regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz} + name: regenerate + version: 1.4.2 + dev: true + + registry.npmmirror.com/regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + dev: true + + registry.npmmirror.com/regenerator-transform@0.15.1: + resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz} + name: regenerator-transform + version: 0.15.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.21.0 + dev: true + + registry.npmmirror.com/regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz} + name: regexp.prototype.flags + version: 1.4.3 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: true + + registry.npmmirror.com/regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz} + name: regexpp + version: 3.2.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/regexpu-core@5.3.1: + resolution: {integrity: sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.1.tgz} + name: regexpu-core + version: 5.3.1 + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': registry.npmmirror.com/@babel/regjsgen@0.8.0 + regenerate: registry.npmmirror.com/regenerate@1.4.2 + regenerate-unicode-properties: registry.npmmirror.com/regenerate-unicode-properties@10.1.0 + regjsparser: registry.npmmirror.com/regjsparser@0.9.1 + unicode-match-property-ecmascript: registry.npmmirror.com/unicode-match-property-ecmascript@2.0.0 + unicode-match-property-value-ecmascript: registry.npmmirror.com/unicode-match-property-value-ecmascript@2.1.0 + dev: true + + registry.npmmirror.com/regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz} + name: regjsparser + version: 0.9.1 + hasBin: true + dependencies: + jsesc: registry.npmmirror.com/jsesc@0.5.0 + dev: true + + registry.npmmirror.com/require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} + name: require-from-string + version: 2.0.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} + name: resolve + version: 1.22.1 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.11.0 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: true + + registry.npmmirror.com/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: true + + registry.npmmirror.com/rollup-plugin-terser@7.0.2(rollup@2.79.1): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz} + id: registry.npmmirror.com/rollup-plugin-terser/7.0.2 + name: rollup-plugin-terser + version: 7.0.2 + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.18.6 + jest-worker: registry.npmmirror.com/jest-worker@26.6.2 + rollup: registry.npmmirror.com/rollup@2.79.1 + serialize-javascript: registry.npmmirror.com/serialize-javascript@4.0.0 + terser: registry.npmmirror.com/terser@5.16.6 + dev: true + + registry.npmmirror.com/rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} + name: rollup + version: 2.79.1 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.2 + dev: true + + registry.npmmirror.com/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 + dev: true + + registry.npmmirror.com/rxjs@7.8.0: + resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rxjs/-/rxjs-7.8.0.tgz} + name: rxjs + version: 7.8.0 + dependencies: + tslib: registry.npmmirror.com/tslib@2.5.0 + dev: true + + registry.npmmirror.com/safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + name: safe-buffer + version: 5.2.1 + dev: true + + registry.npmmirror.com/safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + name: safe-regex-test + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + dev: true + + registry.npmmirror.com/safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} + name: safer-buffer + version: 2.1.2 + dev: true + optional: true + + registry.npmmirror.com/sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} + name: sax + version: 1.2.4 + dev: true + optional: true + + registry.npmmirror.com/semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/semver/-/semver-5.7.1.tgz} + name: semver + version: 5.7.1 + hasBin: true + dev: true + + registry.npmmirror.com/semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/semver/-/semver-6.3.0.tgz} + name: semver + version: 6.3.0 + hasBin: true + dev: true + + registry.npmmirror.com/semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/semver/-/semver-7.3.8.tgz} + name: semver + version: 7.3.8 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: true + + registry.npmmirror.com/serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz} + name: serialize-javascript + version: 4.0.0 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: true + + registry.npmmirror.com/side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + object-inspect: registry.npmmirror.com/object-inspect@1.12.3 + dev: true + + registry.npmmirror.com/signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} + name: signal-exit + version: 3.0.7 + dev: true + + registry.npmmirror.com/slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@1.1.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + registry.npmmirror.com/source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.8.0-beta.0.tgz} + name: source-map + version: 0.8.0-beta.0 + engines: {node: '>= 8'} + dependencies: + whatwg-url: registry.npmmirror.com/whatwg-url@7.1.0 + dev: true + + registry.npmmirror.com/sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + name: sourcemap-codec + version: 1.4.8 + deprecated: Please use @jridgewell/sourcemap-codec instead + + registry.npmmirror.com/string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + name: string-width + version: 4.2.3 + engines: {node: '>=8'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex@8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: true + + registry.npmmirror.com/string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz} + name: string-width + version: 5.1.2 + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: registry.npmmirror.com/emoji-regex@9.2.2 + strip-ansi: registry.npmmirror.com/strip-ansi@7.0.1 + dev: true + + registry.npmmirror.com/string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz} + name: string.prototype.matchall + version: 4.0.8 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.0 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.5 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.4.3 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: true + + registry.npmmirror.com/string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz} + name: string.prototype.trimend + version: 1.0.6 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + dev: true + + registry.npmmirror.com/string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz} + name: string.prototype.trimstart + version: 1.0.6 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + define-properties: registry.npmmirror.com/define-properties@1.2.0 + es-abstract: registry.npmmirror.com/es-abstract@1.21.1 + dev: true + + registry.npmmirror.com/string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} + name: string_decoder + version: 1.3.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: true + + registry.npmmirror.com/stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/stringify-object/-/stringify-object-3.3.0.tgz} + name: stringify-object + version: 3.3.0 + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: registry.npmmirror.com/get-own-enumerable-property-symbols@3.0.2 + is-obj: registry.npmmirror.com/is-obj@1.0.1 + is-regexp: registry.npmmirror.com/is-regexp@1.0.0 + dev: true + + registry.npmmirror.com/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + dev: true + + registry.npmmirror.com/strip-ansi@7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz} + name: strip-ansi + version: 7.0.1 + engines: {node: '>=12'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@6.0.1 + dev: true + + registry.npmmirror.com/strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz} + name: strip-bom + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-comments/-/strip-comments-2.0.1.tgz} + name: strip-comments + version: 2.0.1 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@3.0.0 + dev: true + + registry.npmmirror.com/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: true + + registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/temp-dir/-/temp-dir-2.0.0.tgz} + name: temp-dir + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tempy/-/tempy-0.6.0.tgz} + name: tempy + version: 0.6.0 + engines: {node: '>=10'} + dependencies: + is-stream: registry.npmmirror.com/is-stream@2.0.1 + temp-dir: registry.npmmirror.com/temp-dir@2.0.0 + type-fest: registry.npmmirror.com/type-fest@0.16.0 + unique-string: registry.npmmirror.com/unique-string@2.0.0 + dev: true + + registry.npmmirror.com/terser@5.16.6: + resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/terser/-/terser-5.16.6.tgz} + name: terser + version: 5.16.6 + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': registry.npmmirror.com/@jridgewell/source-map@0.3.2 + acorn: registry.npmmirror.com/acorn@8.8.2 + commander: registry.npmmirror.com/commander@2.20.3 + source-map-support: registry.npmmirror.com/source-map-support@0.5.21 + dev: true + + registry.npmmirror.com/through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/through/-/through-2.3.8.tgz} + name: through + version: 2.3.8 + dev: true + + registry.npmmirror.com/to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + + registry.npmmirror.com/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@7.0.0 + dev: true + + registry.npmmirror.com/tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz} + name: tr46 + version: 1.0.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.0 + dev: true + + registry.npmmirror.com/ts-node@10.9.1(@types/node@18.14.6)(typescript@4.9.5): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz} + id: registry.npmmirror.com/ts-node/10.9.1 + name: ts-node + version: 10.9.1 + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': registry.npmmirror.com/@cspotcode/source-map-support@0.8.1 + '@tsconfig/node10': registry.npmmirror.com/@tsconfig/node10@1.0.9 + '@tsconfig/node12': registry.npmmirror.com/@tsconfig/node12@1.0.11 + '@tsconfig/node14': registry.npmmirror.com/@tsconfig/node14@1.0.3 + '@tsconfig/node16': registry.npmmirror.com/@tsconfig/node16@1.0.3 + '@types/node': registry.npmmirror.com/@types/node@18.14.6 + acorn: registry.npmmirror.com/acorn@8.8.2 + acorn-walk: registry.npmmirror.com/acorn-walk@8.2.0 + arg: registry.npmmirror.com/arg@4.1.3 + create-require: registry.npmmirror.com/create-require@1.1.1 + diff: registry.npmmirror.com/diff@4.0.2 + make-error: registry.npmmirror.com/make-error@1.3.6 + typescript: registry.npmmirror.com/typescript@4.9.5 + v8-compile-cache-lib: registry.npmmirror.com/v8-compile-cache-lib@3.0.1 + yn: registry.npmmirror.com/yn@3.1.1 + dev: true + + registry.npmmirror.com/tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz} + name: tsconfig-paths + version: 3.14.2 + dependencies: + '@types/json5': 0.0.29 + json5: registry.npmmirror.com/json5@1.0.2 + minimist: registry.npmmirror.com/minimist@1.2.8 + strip-bom: registry.npmmirror.com/strip-bom@3.0.0 + dev: true + + registry.npmmirror.com/tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: true + + registry.npmmirror.com/tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz} + name: tslib + version: 2.5.0 + dev: true + + registry.npmmirror.com/tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz} + id: registry.npmmirror.com/tsutils/3.21.0 + name: tsutils + version: 3.21.0 + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + typescript: 4.9.5 + dev: true + + registry.npmmirror.com/type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.16.0.tgz} + name: type-fest + version: 0.16.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz} + name: type-fest + version: 0.18.1 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz} + name: type-fest + version: 0.21.3 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} + name: type-fest + version: 0.6.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz} + name: type-fest + version: 0.8.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + name: typed-array-length + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.10 + dev: true + + registry.npmmirror.com/typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz} + name: typescript + version: 4.9.5 + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + registry.npmmirror.com/unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + name: unbox-primitive + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.2 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + dev: true + + registry.npmmirror.com/unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz} + name: unicode-canonical-property-names-ecmascript + version: 2.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz} + name: unicode-match-property-ecmascript + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: registry.npmmirror.com/unicode-canonical-property-names-ecmascript@2.0.0 + unicode-property-aliases-ecmascript: registry.npmmirror.com/unicode-property-aliases-ecmascript@2.1.0 + dev: true + + registry.npmmirror.com/unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz} + name: unicode-match-property-value-ecmascript + version: 2.1.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz} + name: unicode-property-aliases-ecmascript + version: 2.1.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unique-string/-/unique-string-2.0.0.tgz} + name: unique-string + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + crypto-random-string: registry.npmmirror.com/crypto-random-string@2.0.0 + dev: true + + registry.npmmirror.com/universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} + name: universalify + version: 2.0.0 + engines: {node: '>= 10.0.0'} + dev: true + + registry.npmmirror.com/upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/upath/-/upath-1.2.0.tgz} + name: upath + version: 1.2.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/update-browserslist-db@1.0.10(browserslist@4.21.5): + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.10 + name: update-browserslist-db + version: 1.0.10 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.21.5 + escalade: registry.npmmirror.com/escalade@3.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + dev: true + + registry.npmmirror.com/uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.0 + dev: true + + registry.npmmirror.com/util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + name: util-deprecate + version: 1.0.2 + dev: true + + registry.npmmirror.com/v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} + name: v8-compile-cache-lib + version: 3.0.1 + dev: true + + registry.npmmirror.com/webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz} + name: webidl-conversions + version: 4.0.2 + dev: true + + registry.npmmirror.com/whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz} + name: whatwg-url + version: 7.1.0 + dependencies: + lodash.sortby: registry.npmmirror.com/lodash.sortby@4.7.0 + tr46: registry.npmmirror.com/tr46@1.0.1 + webidl-conversions: registry.npmmirror.com/webidl-conversions@4.0.2 + dev: true + + registry.npmmirror.com/which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: true + + registry.npmmirror.com/which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.9.tgz} + name: which-typed-array + version: 1.1.9 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.2 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.10 + dev: true + + registry.npmmirror.com/workbox-background-sync@6.5.4: + resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz} + name: workbox-background-sync + version: 6.5.4 + dependencies: + idb: registry.npmmirror.com/idb@7.1.1 + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-broadcast-update@6.5.4: + resolution: {integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz} + name: workbox-broadcast-update + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-build@6.5.4: + resolution: {integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-build/-/workbox-build-6.5.4.tgz} + name: workbox-build + version: 6.5.4 + engines: {node: '>=10.0.0'} + dependencies: + '@apideck/better-ajv-errors': registry.npmmirror.com/@apideck/better-ajv-errors@0.3.6(ajv@8.12.0) + '@babel/core': registry.npmmirror.com/@babel/core@7.21.0 + '@babel/preset-env': registry.npmmirror.com/@babel/preset-env@7.20.2(@babel/core@7.21.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.21.0 + '@rollup/plugin-babel': registry.npmmirror.com/@rollup/plugin-babel@5.3.1(@babel/core@7.21.0)(rollup@2.79.1) + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1) + '@rollup/plugin-replace': registry.npmmirror.com/@rollup/plugin-replace@2.4.2(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': registry.npmmirror.com/@surma/rollup-plugin-off-main-thread@2.2.3 + ajv: registry.npmmirror.com/ajv@8.12.0 + common-tags: registry.npmmirror.com/common-tags@1.8.2 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + fs-extra: registry.npmmirror.com/fs-extra@9.1.0 + glob: registry.npmmirror.com/glob@7.2.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + pretty-bytes: registry.npmmirror.com/pretty-bytes@5.6.0 + rollup: registry.npmmirror.com/rollup@2.79.1 + rollup-plugin-terser: registry.npmmirror.com/rollup-plugin-terser@7.0.2(rollup@2.79.1) + source-map: registry.npmmirror.com/source-map@0.8.0-beta.0 + stringify-object: registry.npmmirror.com/stringify-object@3.3.0 + strip-comments: registry.npmmirror.com/strip-comments@2.0.1 + tempy: registry.npmmirror.com/tempy@0.6.0 + upath: registry.npmmirror.com/upath@1.2.0 + workbox-background-sync: registry.npmmirror.com/workbox-background-sync@6.5.4 + workbox-broadcast-update: registry.npmmirror.com/workbox-broadcast-update@6.5.4 + workbox-cacheable-response: registry.npmmirror.com/workbox-cacheable-response@6.5.4 + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + workbox-expiration: registry.npmmirror.com/workbox-expiration@6.5.4 + workbox-google-analytics: registry.npmmirror.com/workbox-google-analytics@6.5.4 + workbox-navigation-preload: registry.npmmirror.com/workbox-navigation-preload@6.5.4 + workbox-precaching: registry.npmmirror.com/workbox-precaching@6.5.4 + workbox-range-requests: registry.npmmirror.com/workbox-range-requests@6.5.4 + workbox-recipes: registry.npmmirror.com/workbox-recipes@6.5.4 + workbox-routing: registry.npmmirror.com/workbox-routing@6.5.4 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.5.4 + workbox-streams: registry.npmmirror.com/workbox-streams@6.5.4 + workbox-sw: registry.npmmirror.com/workbox-sw@6.5.4 + workbox-window: registry.npmmirror.com/workbox-window@6.5.4 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + registry.npmmirror.com/workbox-cacheable-response@6.5.4: + resolution: {integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz} + name: workbox-cacheable-response + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-core@6.5.4: + resolution: {integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-core/-/workbox-core-6.5.4.tgz} + name: workbox-core + version: 6.5.4 + dev: true + + registry.npmmirror.com/workbox-expiration@6.5.4: + resolution: {integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz} + name: workbox-expiration + version: 6.5.4 + dependencies: + idb: registry.npmmirror.com/idb@7.1.1 + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-google-analytics@6.5.4: + resolution: {integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz} + name: workbox-google-analytics + version: 6.5.4 + dependencies: + workbox-background-sync: registry.npmmirror.com/workbox-background-sync@6.5.4 + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + workbox-routing: registry.npmmirror.com/workbox-routing@6.5.4 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.5.4 + dev: true + + registry.npmmirror.com/workbox-navigation-preload@6.5.4: + resolution: {integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz} + name: workbox-navigation-preload + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-precaching@6.5.4: + resolution: {integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz} + name: workbox-precaching + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + workbox-routing: registry.npmmirror.com/workbox-routing@6.5.4 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.5.4 + dev: true + + registry.npmmirror.com/workbox-range-requests@6.5.4: + resolution: {integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz} + name: workbox-range-requests + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-recipes@6.5.4: + resolution: {integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz} + name: workbox-recipes + version: 6.5.4 + dependencies: + workbox-cacheable-response: registry.npmmirror.com/workbox-cacheable-response@6.5.4 + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + workbox-expiration: registry.npmmirror.com/workbox-expiration@6.5.4 + workbox-precaching: registry.npmmirror.com/workbox-precaching@6.5.4 + workbox-routing: registry.npmmirror.com/workbox-routing@6.5.4 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.5.4 + dev: true + + registry.npmmirror.com/workbox-routing@6.5.4: + resolution: {integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-routing/-/workbox-routing-6.5.4.tgz} + name: workbox-routing + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-strategies@6.5.4: + resolution: {integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz} + name: workbox-strategies + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/workbox-streams@6.5.4: + resolution: {integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-streams/-/workbox-streams-6.5.4.tgz} + name: workbox-streams + version: 6.5.4 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + workbox-routing: registry.npmmirror.com/workbox-routing@6.5.4 + dev: true + + registry.npmmirror.com/workbox-sw@6.5.4: + resolution: {integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-sw/-/workbox-sw-6.5.4.tgz} + name: workbox-sw + version: 6.5.4 + dev: true + + registry.npmmirror.com/workbox-window@6.5.4: + resolution: {integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/workbox-window/-/workbox-window-6.5.4.tgz} + name: workbox-window + version: 6.5.4 + dependencies: + '@types/trusted-types': registry.npmmirror.com/@types/trusted-types@2.0.3 + workbox-core: registry.npmmirror.com/workbox-core@6.5.4 + dev: true + + registry.npmmirror.com/wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz} + name: wrap-ansi + version: 6.2.0 + engines: {node: '>=8'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: true + + registry.npmmirror.com/wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + name: wrap-ansi + version: 7.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: true + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.npmmirror.com/xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} + name: xtend + version: 4.0.2 + engines: {node: '>=0.4'} + dev: true + + registry.npmmirror.com/y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} + name: y18n + version: 5.0.8 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} + name: yallist + version: 3.1.1 + dev: true + + registry.npmmirror.com/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: true + + registry.npmmirror.com/yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} + name: yargs-parser + version: 20.2.9 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yn/-/yn-3.1.1.tgz} + name: yn + version: 3.1.1 + engines: {node: '>=6'} + dev: true diff --git a/chat/postcss.config.js b/chat/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/chat/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/chat/public/favicon.svg b/chat/public/favicon.svg new file mode 100644 index 0000000..12820c3 --- /dev/null +++ b/chat/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat/public/logo.png b/chat/public/logo.png new file mode 100644 index 0000000..e142435 Binary files /dev/null and b/chat/public/logo.png differ diff --git a/chat/resources/background.png b/chat/resources/background.png new file mode 100644 index 0000000..2e9c987 Binary files /dev/null and b/chat/resources/background.png differ diff --git a/chat/resources/background@2x.png b/chat/resources/background@2x.png new file mode 100644 index 0000000..834337e Binary files /dev/null and b/chat/resources/background@2x.png differ diff --git a/chat/resources/icon.icns b/chat/resources/icon.icns new file mode 100644 index 0000000..ab7374f Binary files /dev/null and b/chat/resources/icon.icns differ diff --git a/chat/resources/icon.ico b/chat/resources/icon.ico new file mode 100644 index 0000000..e04dd7c Binary files /dev/null and b/chat/resources/icon.ico differ diff --git a/chat/resources/icon.png b/chat/resources/icon.png new file mode 100644 index 0000000..aad0404 Binary files /dev/null and b/chat/resources/icon.png differ diff --git a/chat/src/App.vue b/chat/src/App.vue new file mode 100644 index 0000000..71e72b1 --- /dev/null +++ b/chat/src/App.vue @@ -0,0 +1,91 @@ + + + diff --git a/chat/src/api/appStore.ts b/chat/src/api/appStore.ts new file mode 100644 index 0000000..08be3f6 --- /dev/null +++ b/chat/src/api/appStore.ts @@ -0,0 +1,44 @@ +import { get, post } from '@/utils/request' + +/* 查询app分组 */ +export function fetchQueryAppCatsAPI(): Promise { + return get({ url: '/app/queryCats' }) +} + +/* 查询全量app列表 */ +export function fetchQueryAppsAPI(): Promise { + return get({ + url: '/app/list', + }) +} + +/* 查询个人app列表 */ +export function fetchQueryMineAppsAPI(): Promise { + return get({ + url: '/app/mineApps', + }) +} + +/* 收藏app */ +export function fetchCollectAppAPI(data: { appId: number }): Promise { + return post({ url: '/app/collect', data }) +} + +/* 收藏app */ +export function fetchCustomAppAPI(data: any): Promise { + return post({ url: '/app/customApp', data }) +} + +/* 删除app */ +export function fetchDelMineAppAPI(data: any): Promise { + return post({ url: '/app/delMineApp', data }) +} + +/* 查询全量app列表 */ +export function fetchQueryOneCatAPI(data): Promise { + return get({ + url: '/app/queryOneCat', + data + }) +} + diff --git a/chat/src/api/balance.ts b/chat/src/api/balance.ts new file mode 100644 index 0000000..ae625f9 --- /dev/null +++ b/chat/src/api/balance.ts @@ -0,0 +1,30 @@ +import { get, post } from '@/utils/request' + +/* get rechargeLog */ +export function fetchGetRechargeLogAPI(data: { page?: number; size?: number }): Promise { + return get({ + url: '/balance/rechargeLog', + data, + }) +} + +/* query balance */ +export function fetchGetBalanceQueryAPI(): Promise { + return get({ + url: '/balance/query', + }) +} + +/* log invite link count */ +export function fetchVisitorCountAPI(): Promise { + return get({ + url: '/balance/getVisitorCount', + }) +} + +/* log invite link count */ +export function fetchSyncVisitorDataAPI(): Promise { + return post({ + url: '/balance/inheritVisitorData', + }) +} diff --git a/chat/src/api/chatLog.ts b/chat/src/api/chatLog.ts new file mode 100644 index 0000000..8d63014 --- /dev/null +++ b/chat/src/api/chatLog.ts @@ -0,0 +1,33 @@ +import { get, post } from '@/utils/request' + +/* 删除对话记录 */ +export function fetchDelChatLogAPI(data: { id: number }): Promise { + return post({ + url: '/chatlog/del', + data, + }) +} + +/* 删除一组对话记录 */ +export function fetchDelChatLogByGroupIdAPI(data: { groupId: number }): Promise { + return post({ + url: '/chatlog/delByGroupId', + data, + }) +} + +/* 查询x组对话信息 */ +export function fetchQueryChatLogListAPI(data: { groupId: number }): Promise { + return get({ + url: '/chatlog/chatList', + data, + }) +} + +/* 查询单个应用的对话信息 */ +export function fetchQueryChatLogByAppIdAPI(data: { page?: number; size?: number; appId: number }): Promise { + return get({ + url: '/chatlog/byAppId', + data, + }) +} diff --git a/chat/src/api/config.ts b/chat/src/api/config.ts new file mode 100644 index 0000000..cb8fea1 --- /dev/null +++ b/chat/src/api/config.ts @@ -0,0 +1,17 @@ +import { get } from '@/utils/request' + +/* query globle config */ +export function fetchQueryConfigAPI(data: any) { + return get({ + url: '/config/queryFronet', + data, + }) +} + +/* query globle menu */ +export function fetchQueryMenuAPI(data: any) { + return get({ + url: '/menu/list', + data, + }) +} diff --git a/chat/src/api/crami.ts b/chat/src/api/crami.ts new file mode 100644 index 0000000..856f568 --- /dev/null +++ b/chat/src/api/crami.ts @@ -0,0 +1,17 @@ +import { get, post } from '@/utils/request' + +/* use crami */ +export function fetchUseCramiAPI(data: { code: string }): Promise { + return post({ + url: '/crami/useCrami', + data, + }) +} + +/* get all crami package */ +export function fetchGetPackageAPI(data: { status: number; type?: number; size?: number }): Promise { + return get({ + url: '/crami/queryAllPackage', + data, + }) +} diff --git a/chat/src/api/global.ts b/chat/src/api/global.ts new file mode 100644 index 0000000..2e016f2 --- /dev/null +++ b/chat/src/api/global.ts @@ -0,0 +1,8 @@ +import { get } from '@/utils/request' + +/* get notice */ +export function fetchGetGlobalNoticeAPI(): Promise { + return get({ + url: '/config/notice', + }) +} diff --git a/chat/src/api/group.ts b/chat/src/api/group.ts new file mode 100644 index 0000000..72ca631 --- /dev/null +++ b/chat/src/api/group.ts @@ -0,0 +1,43 @@ +import { get, post } from '@/utils/request' + +/* 创建新的对话组 */ +export function fetchCreateGroupAPI(data?: { appId?: number }): Promise { + return post({ + url: '/group/create', + data, + }) +} + +/* 查询对话组列表 */ +export function fetchQueryGroupAPI(): Promise { + return get({ url: '/group/query' }) +} + +/* 修改对话组 */ +export function fetchUpdateGroupAPI(data?: { + groupId?: number + title?: string + isSticky?: boolean, + config?: string +}): Promise { + return post({ + url: '/group/update', + data, + }) +} + +/* 删除对话组 */ +export function fetchDelGroupAPI(data?: { groupId: number }): Promise { + return post({ + url: '/group/del', + data, + }) +} + +/* 删除全部对话组 */ +export function fetchDelAllGroupAPI(data?: { groupId: number }): Promise { + return post({ + url: '/group/delAll', + data, + }) +} diff --git a/chat/src/api/index.ts b/chat/src/api/index.ts new file mode 100644 index 0000000..860f551 --- /dev/null +++ b/chat/src/api/index.ts @@ -0,0 +1,223 @@ +import type { AxiosProgressEvent, GenericAbortSignal } from "axios"; +import { get, post } from "@/utils/request"; +import { useSettingStore } from "@/store"; + +/* 流失对话聊天 */ +export function fetchChatAPIProcess(params: { + prompt: string; + appId?: number; + options?: { + conversationId?: string; + parentMessageId?: string; + temperature: number; + }; + imageUrl?: string; + model?: string; + signal?: GenericAbortSignal; + onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; +}) { + return post({ + url: "/chatgpt/chat-process", + data: { + prompt: params.prompt, + appId: params?.appId, + options: params.options, + imageUrl: params.imageUrl, + model: params.model, + }, + signal: params.signal, + onDownloadProgress: params.onDownloadProgress, + }); +} + +/* 获取个人信息 */ +export function fetchGetInfo() { + return get({ url: "/auth/getInfo" }); +} + +/* 注册 */ +export function fetchRegisterAPI(data: { + username: string; + password: string; + email: string; +}): Promise { + return post({ url: "/auth/register", data }) as Promise; +} + +/* 注册 */ +export function fetchRegisterByPhoneAPI(data: { + username: string; + password: string; + phone: string; + phoneCode: string; +}): Promise { + return post({ url: "/auth/registerByPhone", data }) as Promise; +} + +/* 登录 */ +export function fetchLoginAPI(data: { + username: string; + password: string; +}): Promise { + return post({ url: "/auth/login", data }) as Promise; +} + +/* 手机号登录 */ +export function fetchLoginByPhoneAPI(data: { + phone: string; + password: string; +}): Promise { + return post({ url: "/auth/loginByPhone", data }) as Promise; +} + +/* 修改个人信息 */ +export function fetchUpdateInfoAPI(data: { + username?: string; + avatar?: string; +}): Promise { + return post({ url: "/user/update", data }) as Promise; +} + +/* 获取个人绘画记录 */ +export function fetchGetChatLogDraw(data: { model: string }): Promise { + return get({ url: "/chatLog/draw", data }) as Promise; +} + +/* 获取所有绘画记录 */ +export function fetchGetAllChatLogDraw(data: { + size: number; + rec: number; + model: string; +}): Promise { + return get({ url: "/chatLog/drawAll", data }) as Promise; +} + +/* chatgpt的dall-e2绘画 */ +export function fetchChatDraw(data: { + prompt: string; + n: number; + size: string; +}): Promise { + return post({ url: "/chatgpt/chat-draw", data }) as Promise; +} + +/* 修改密码 */ +export function fetchUpdatePasswordAPI(data: { + oldPassword?: string; + password?: string; +}): Promise { + return post({ url: "/auth/updatePassword", data }) as Promise; +} + +/* 同步对话 */ +export function fetchGetchatSyncApi(params: { + prompt: string; + options?: { + conversationId?: string; + parentMessageId?: string; + temperature: number; + }; + signal?: GenericAbortSignal; + onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; +}) { + return post({ + url: "/chatgpt/chat-sync", + data: { prompt: params.prompt, options: params.options }, + signal: params.signal, + onDownloadProgress: params.onDownloadProgress, + }); +} + +/* 获取mind绘画联想词 */ +export function fetchGetchatMindApi(params: { + prompt: string; + options?: { + conversationId?: string; + parentMessageId?: string; + temperature: number; + }; + signal?: GenericAbortSignal; + onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; +}) { + return post({ + url: "/chatgpt/chat-mind", + data: { prompt: params.prompt, options: params.options }, + signal: params.signal, + onDownloadProgress: params.onDownloadProgress, + }); +} + +/* 获取MJ绘画联想词 */ +export function fetchGetMjPromptAssociateApi(data: { + prompt: string; +}): Promise { + return post({ url: "/chatgpt/mj-associate", data }) as Promise; +} + +/* 获取MJ绘画联想词 */ +export function fetchGetMjPromptFanyiApi(data: { + prompt: string; +}): Promise { + return post({ url: "/chatgpt/mj-fy", data }) as Promise; +} + +/* 获取我得绘制列表 */ +export function fetchMidjourneyDrawList(data: { + page?: number; + size?: number; +}): Promise { + return get({ url: "/midjourney/drawList", data }) as Promise; +} + +/* 获取Mj提示词 */ +export function fetchMidjourneyPromptList(): Promise { + return get({ url: "/midjourney/queryPrompts" }) as Promise; +} + +/* 获取Mj完整提示词 */ +export function fetchMidjourneyFullPrompt(data: any): Promise { + return get({ url: "/midjourney/getFullPrompt", data }) as Promise; +} + +/* 删除MJ绘画记录 */ +export function fetchDownloadImg(data: { id: number }): Promise { + return post({ url: "/midjourney/delete", data }) as Promise; +} + +/* 获取我得绘制列表 */ +export function fetchMidjourneyGetList(data: { + page?: number; + size?: number; + rec: number; +}): Promise { + return get({ url: "/midjourney/getList", data }) as Promise; +} + +/* 推荐图片 */ +export function fetchRecDraw(data: { id: number }): Promise { + return post({ url: "/midjourney/rec", data }) as Promise; +} + +/* 获取图片验证码 */ +export function fetchCaptchaImg(data: { color: string }): Promise { + return post({ url: "/auth/captcha", data }) as Promise; +} + +/* 发送手机验证码 */ +export function fetchSendSms(data: { + phone: string; + captchaId: string; + captchaCode: string; +}): Promise { + return post({ url: "/auth/sendPhoneCode", data }) as Promise; +} + +/* 获取九宫格设置 */ +export function fetchGetChatBoxList() { + return get({ url: "/chatgpt/queryChatBoxFrontend" }); +} + +/* 获取快问设置 */ +export function fetchGetChatPreList() { + return get({ url: "/chatgpt/queryChatPreList" }); +} diff --git a/chat/src/api/mjDraw.ts b/chat/src/api/mjDraw.ts new file mode 100644 index 0000000..2db7d1e --- /dev/null +++ b/chat/src/api/mjDraw.ts @@ -0,0 +1,52 @@ +import { get, post } from '@/utils/request' + +/* mj draw */ +export function fetchMjDtawAPI(data: { prompt: string }): Promise { + return post({ + url: '/mj/draw', + data, + }) +} + +/* mj upscale Img */ +export function fetchUpscaleSingleImgAPI(data: { message_id: string; orderId: number }): Promise { + return post({ + url: '/mj/upscaleSingleImg', + data, + }) +} + +/* mj variation img */ +export function fetchVariationSingleImgAPI(data: { message_id: string; orderId: number }): Promise { + return post({ + url: '/mj/variationSingleImg', + data, + }) +} + +/* mj fanyi */ +export function fetchTranslateAPI(data: { text: string }): Promise { + return get({ + url: '/fanyi/translate', + data, + }) +} + +/* 提交一个绘画任务 */ +export function fetchDrawTaskAPI(data: { prompt?: string; imgUrl?: string; extraParam?: string; drawId?: number; action?: string; orderId?: number }): Promise { + return post({ + url: '/queue/addMjDrawQueue', + data, + }) +} + +/* 代理图片 */ +export function fetchProxyImgAPI(data: { url: string }): Promise { + return get({ + url: '/midjourney/proxy', + data, + headers: { + responseType: 'arraybuffer' + } + }) +} diff --git a/chat/src/api/models.ts b/chat/src/api/models.ts new file mode 100644 index 0000000..62737f6 --- /dev/null +++ b/chat/src/api/models.ts @@ -0,0 +1,15 @@ +import { get } from '@/utils/request' + +/* query models list */ +export function fetchQueryModelsListAPI() { + return get({ + url: '/models/list', + }) +} + +/* query base model config */ +export function fetchModelBaseConfigAPI() { + return get({ + url: '/models/baseConfig', + }) +} diff --git a/chat/src/api/order.ts b/chat/src/api/order.ts new file mode 100644 index 0000000..fa4d98d --- /dev/null +++ b/chat/src/api/order.ts @@ -0,0 +1,17 @@ +import { get, post } from '@/utils/request' + +/* order buy */ +export function fetchOrderBuyAPI(data: { goodsId: number; payType?: string }): Promise { + return post({ + url: '/order/buy', + data, + }) +} + +/* order query */ +export function fetchOrderQueryAPI(data: { orderId: string }): Promise { + return get({ + url: '/order/queryByOrderId', + data, + }) +} diff --git a/chat/src/api/sales.ts b/chat/src/api/sales.ts new file mode 100644 index 0000000..7c0f11b --- /dev/null +++ b/chat/src/api/sales.ts @@ -0,0 +1,37 @@ +import { get, post } from '@/utils/request' + +/* query sales account */ +export function fetchSalesAccountAPI(): Promise { + return get({ + url: '/sales/mineAccount', + }) +} + +/* query sales records */ +export function fetchSalesRecordsAPI(data: { page?: number; size?: number }): Promise { + return get({ + url: '/sales/mineRecords', + data, + }) +} + +/* query sales order */ +export function fetchSalesOrderAPI(data: { page?: number; size?: number }): Promise { + return get({ + url: '/sales/drawMoneyOrder', + data, + }) +} + +/* salce appfor money */ +export function fetchAppforMoneyAPI(data: { + withdrawalAmount: number | null + withdrawalChannels: number | null + contactInformation: string + remark?: string +}): Promise { + return post({ + url: '/sales/appForMoney', + data, + }) +} diff --git a/chat/src/api/signin.ts b/chat/src/api/signin.ts new file mode 100644 index 0000000..4690745 --- /dev/null +++ b/chat/src/api/signin.ts @@ -0,0 +1,15 @@ +import { get, post } from '@/utils/request' + +/* sign in */ +export function fetchSignInAPI(): Promise { + return post({ + url: '/signin/sign', + }) +} + +/* sign log */ +export function fetchSignLogAPI(): Promise { + return get({ + url: '/signin/signinLog', + }) +} diff --git a/chat/src/api/types.ts b/chat/src/api/types.ts new file mode 100644 index 0000000..3d31869 --- /dev/null +++ b/chat/src/api/types.ts @@ -0,0 +1,5 @@ +export interface ResData { + success: boolean + message: string + data: any +} diff --git a/chat/src/api/user.ts b/chat/src/api/user.ts new file mode 100644 index 0000000..55ef3d6 --- /dev/null +++ b/chat/src/api/user.ts @@ -0,0 +1,104 @@ +import { get, post } from '@/utils/request' + +/* gen inviteCode */ +export function fetchGenInviteCodeAPI(): Promise { + return post({ + url: '/user/genInviteCode', + }) +} + +/* get inviteRecord */ +export function fetchGetInviteRecordAPI(data: { page?: number; size?: number }): Promise { + return get({ + url: '/user/inviteRecord', + data, + }) +} + +/* get wechat-login senceStr */ +export function fetchGetQRSceneStrAPI( + data: { invitedBy?: string }, +): Promise { + return post({ + url: '/official/getQRSceneStr', + data, + }) +} + +/* get wechat-login qr url */ +export function fetchGetQRCodeAPI( + data: { sceneStr: string }, +): Promise { + return get({ + url: '/official/getQRCode', + data, + }) +} + +/* login by scenceStr */ +export function fetchLoginBySceneStrAPI( + data: { sceneStr: string }, +): Promise { + return post({ + url: '/official/loginBySceneStr', + data, + }) +} + +/* login by code */ +export function fetchLoginByCodeAPI( + data: { code: string }, +): Promise { + return post({ + url: '/official/loginByCode', + data, + }) +} + +/* get wx registery config */ +export function fetchGetJsapiTicketAPI( + data: { url: string }, +): Promise { + return post({ + url: '/official/getJsapiTicket', + data, + }) +} + +/* get wechat-login senceStr */ +export function fetchGetQRSceneStrByBindAPI(): Promise { + return post({ + url: '/official/getQRSceneStrByBind', + }) +} + +/* bind wx by scenceStr */ +export function fetchBindWxBySceneStrAPI( + data: { sceneStr: string }, +): Promise { + return post({ + url: '/official/bindWxBySceneStr', + data, + }) +} + +/* get wx rediriect login url */ +export function fetchWxLoginRedirectAPI( + data: { url: string }, +): Promise { + return post({ + url: '/official/getRedirectUrl', + data, + }) +} + +/* log invite link count */ +export function fetchInviteCodeAPI( + data: { code: string }, +): Promise { + return get({ + url: '/user/inviteLink', + data, + }) +} + diff --git a/chat/src/assets/alipay.png b/chat/src/assets/alipay.png new file mode 100644 index 0000000..3b238b1 Binary files /dev/null and b/chat/src/assets/alipay.png differ diff --git a/chat/src/assets/avatar.png b/chat/src/assets/avatar.png new file mode 100644 index 0000000..c540e80 Binary files /dev/null and b/chat/src/assets/avatar.png differ diff --git a/chat/src/assets/avatar_old.png b/chat/src/assets/avatar_old.png new file mode 100644 index 0000000..b85d0e4 Binary files /dev/null and b/chat/src/assets/avatar_old.png differ diff --git a/chat/src/assets/badge.png b/chat/src/assets/badge.png new file mode 100644 index 0000000..29211d8 Binary files /dev/null and b/chat/src/assets/badge.png differ diff --git a/chat/src/assets/fail.png b/chat/src/assets/fail.png new file mode 100644 index 0000000..249b678 Binary files /dev/null and b/chat/src/assets/fail.png differ diff --git a/chat/src/assets/file.jpeg b/chat/src/assets/file.jpeg new file mode 100644 index 0000000..11dc5a0 Binary files /dev/null and b/chat/src/assets/file.jpeg differ diff --git a/chat/src/assets/icons/draw.svg b/chat/src/assets/icons/draw.svg new file mode 100644 index 0000000..988c798 --- /dev/null +++ b/chat/src/assets/icons/draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat/src/assets/icons/gift.png b/chat/src/assets/icons/gift.png new file mode 100644 index 0000000..e506dcf Binary files /dev/null and b/chat/src/assets/icons/gift.png differ diff --git a/chat/src/assets/icons/model.svg b/chat/src/assets/icons/model.svg new file mode 100644 index 0000000..d8bb341 --- /dev/null +++ b/chat/src/assets/icons/model.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat/src/assets/icons/modelSvg.svg b/chat/src/assets/icons/modelSvg.svg new file mode 100644 index 0000000..daae936 --- /dev/null +++ b/chat/src/assets/icons/modelSvg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat/src/assets/icons/zoom.svg b/chat/src/assets/icons/zoom.svg new file mode 100644 index 0000000..038bbc2 --- /dev/null +++ b/chat/src/assets/icons/zoom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/chat/src/assets/images/empty.png b/chat/src/assets/images/empty.png new file mode 100644 index 0000000..e6839cb Binary files /dev/null and b/chat/src/assets/images/empty.png differ diff --git a/chat/src/assets/images/mj.png b/chat/src/assets/images/mj.png new file mode 100644 index 0000000..17166dc Binary files /dev/null and b/chat/src/assets/images/mj.png differ diff --git a/chat/src/assets/images/niji.png b/chat/src/assets/images/niji.png new file mode 100644 index 0000000..4602489 Binary files /dev/null and b/chat/src/assets/images/niji.png differ diff --git a/chat/src/assets/images/preferential.png b/chat/src/assets/images/preferential.png new file mode 100644 index 0000000..5866353 Binary files /dev/null and b/chat/src/assets/images/preferential.png differ diff --git a/chat/src/assets/img-bg.png b/chat/src/assets/img-bg.png new file mode 100644 index 0000000..c0eceea Binary files /dev/null and b/chat/src/assets/img-bg.png differ diff --git a/chat/src/assets/login-banner.png b/chat/src/assets/login-banner.png new file mode 100644 index 0000000..7cb2ee6 Binary files /dev/null and b/chat/src/assets/login-banner.png differ diff --git a/chat/src/assets/market.png b/chat/src/assets/market.png new file mode 100644 index 0000000..3ef59fb Binary files /dev/null and b/chat/src/assets/market.png differ diff --git a/chat/src/assets/qianbao.png b/chat/src/assets/qianbao.png new file mode 100644 index 0000000..d7091fc Binary files /dev/null and b/chat/src/assets/qianbao.png differ diff --git a/chat/src/assets/recommend.json b/chat/src/assets/recommend.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/chat/src/assets/recommend.json @@ -0,0 +1 @@ +[] diff --git a/chat/src/assets/voice.gif b/chat/src/assets/voice.gif new file mode 100644 index 0000000..880edb4 Binary files /dev/null and b/chat/src/assets/voice.gif differ diff --git a/chat/src/assets/wechat.png b/chat/src/assets/wechat.png new file mode 100644 index 0000000..ade7699 Binary files /dev/null and b/chat/src/assets/wechat.png differ diff --git a/chat/src/assets/wxpay.png b/chat/src/assets/wxpay.png new file mode 100644 index 0000000..32b8d4d Binary files /dev/null and b/chat/src/assets/wxpay.png differ diff --git a/chat/src/components/base/Loading.vue b/chat/src/components/base/Loading.vue new file mode 100644 index 0000000..0c928ea --- /dev/null +++ b/chat/src/components/base/Loading.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/chat/src/components/base/index.ts b/chat/src/components/base/index.ts new file mode 100644 index 0000000..07b4287 --- /dev/null +++ b/chat/src/components/base/index.ts @@ -0,0 +1,3 @@ +import TitleBar from './titleBar.vue' + +export { TitleBar } diff --git a/chat/src/components/base/macTablebar.vue b/chat/src/components/base/macTablebar.vue new file mode 100644 index 0000000..66a0a60 --- /dev/null +++ b/chat/src/components/base/macTablebar.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/chat/src/components/base/titleBar.vue b/chat/src/components/base/titleBar.vue new file mode 100644 index 0000000..6140d77 --- /dev/null +++ b/chat/src/components/base/titleBar.vue @@ -0,0 +1,38 @@ + + + diff --git a/chat/src/components/common/CanvasMask/index.vue b/chat/src/components/common/CanvasMask/index.vue new file mode 100644 index 0000000..e03bed3 --- /dev/null +++ b/chat/src/components/common/CanvasMask/index.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/chat/src/components/common/GridManager2/index.vue b/chat/src/components/common/GridManager2/index.vue new file mode 100644 index 0000000..0f2275a --- /dev/null +++ b/chat/src/components/common/GridManager2/index.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/chat/src/components/common/HoverButton/Button.vue b/chat/src/components/common/HoverButton/Button.vue new file mode 100644 index 0000000..77dd932 --- /dev/null +++ b/chat/src/components/common/HoverButton/Button.vue @@ -0,0 +1,20 @@ + + + diff --git a/chat/src/components/common/HoverButton/index.vue b/chat/src/components/common/HoverButton/index.vue new file mode 100644 index 0000000..432445a --- /dev/null +++ b/chat/src/components/common/HoverButton/index.vue @@ -0,0 +1,46 @@ + + + diff --git a/chat/src/components/common/ImageEditorCanvas/index.vue b/chat/src/components/common/ImageEditorCanvas/index.vue new file mode 100644 index 0000000..63d5eb3 --- /dev/null +++ b/chat/src/components/common/ImageEditorCanvas/index.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/chat/src/components/common/NaiveProvider/index.vue b/chat/src/components/common/NaiveProvider/index.vue new file mode 100644 index 0000000..b30fc72 --- /dev/null +++ b/chat/src/components/common/NaiveProvider/index.vue @@ -0,0 +1,43 @@ + + + diff --git a/chat/src/components/common/OldGridManager/index.vue b/chat/src/components/common/OldGridManager/index.vue new file mode 100644 index 0000000..93ea15f --- /dev/null +++ b/chat/src/components/common/OldGridManager/index.vue @@ -0,0 +1,338 @@ + + + + + diff --git a/chat/src/components/common/QRCode/index.vue b/chat/src/components/common/QRCode/index.vue new file mode 100644 index 0000000..b4802b6 --- /dev/null +++ b/chat/src/components/common/QRCode/index.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/chat/src/components/common/Setting/Advanced.vue b/chat/src/components/common/Setting/Advanced.vue new file mode 100644 index 0000000..9f255ff --- /dev/null +++ b/chat/src/components/common/Setting/Advanced.vue @@ -0,0 +1,46 @@ + + + diff --git a/chat/src/components/common/Setting/General.vue b/chat/src/components/common/Setting/General.vue new file mode 100644 index 0000000..033b4dd --- /dev/null +++ b/chat/src/components/common/Setting/General.vue @@ -0,0 +1,213 @@ + + + diff --git a/chat/src/components/common/Setting/Personal.vue b/chat/src/components/common/Setting/Personal.vue new file mode 100644 index 0000000..c778ba5 --- /dev/null +++ b/chat/src/components/common/Setting/Personal.vue @@ -0,0 +1,66 @@ + + + diff --git a/chat/src/components/common/Setting/index.vue b/chat/src/components/common/Setting/index.vue new file mode 100644 index 0000000..ca18abf --- /dev/null +++ b/chat/src/components/common/Setting/index.vue @@ -0,0 +1,64 @@ + + + diff --git a/chat/src/components/common/SvgIcon/index.vue b/chat/src/components/common/SvgIcon/index.vue new file mode 100644 index 0000000..ff1c9c9 --- /dev/null +++ b/chat/src/components/common/SvgIcon/index.vue @@ -0,0 +1,21 @@ + + + diff --git a/chat/src/components/common/UserAvatar/index.vue b/chat/src/components/common/UserAvatar/index.vue new file mode 100644 index 0000000..689dd4e --- /dev/null +++ b/chat/src/components/common/UserAvatar/index.vue @@ -0,0 +1,52 @@ + + + diff --git a/chat/src/components/common/index.ts b/chat/src/components/common/index.ts new file mode 100644 index 0000000..16b6d10 --- /dev/null +++ b/chat/src/components/common/index.ts @@ -0,0 +1,7 @@ +import HoverButton from './HoverButton/index.vue' +import NaiveProvider from './NaiveProvider/index.vue' +import SvgIcon from './SvgIcon/index.vue' +import UserAvatar from './UserAvatar/index.vue' +import Setting from './Setting/index.vue' + +export { HoverButton, NaiveProvider, SvgIcon, UserAvatar, Setting } diff --git a/chat/src/constants/index.ts b/chat/src/constants/index.ts new file mode 100644 index 0000000..6ed1ccf --- /dev/null +++ b/chat/src/constants/index.ts @@ -0,0 +1,22 @@ +interface RechargeType { + [key: number]: string +} + +export const RechargeTypeMap: RechargeType = { + 1: '注册赠送', + 2: '受邀请赠送', + 3: '邀请他人赠送', + 4: '购买卡密充值', + 5: '管理员赠送', + 6: '扫码购买充值', + 7: 'MJ绘画失败退款', + 8: '签到奖励', +} + +// 0:未支付、1:已支付、2、支付失败、3:支付超时) +export const OrderMap = { + 0: '未支付', + 1: '已支付', + 2: '支付失败', + 3: '支付超时', +} diff --git a/chat/src/hooks/useBasicLayout.ts b/chat/src/hooks/useBasicLayout.ts new file mode 100644 index 0000000..a018c36 --- /dev/null +++ b/chat/src/hooks/useBasicLayout.ts @@ -0,0 +1,10 @@ +import { breakpointsTailwind, useBreakpoints } from '@vueuse/core' +export function useBasicLayout() { + const breakpoints = useBreakpoints(breakpointsTailwind) + const isMobile = breakpoints.smaller('sm') + const isSmallMd = breakpoints.smaller('md') + const isSmallLg = breakpoints.smaller('lg') + const isSmallXl = breakpoints.smaller('xl') + + return { isMobile, isSmallMd, isSmallLg, isSmallXl } +} diff --git a/chat/src/hooks/useIconRender.ts b/chat/src/hooks/useIconRender.ts new file mode 100644 index 0000000..73b9114 --- /dev/null +++ b/chat/src/hooks/useIconRender.ts @@ -0,0 +1,36 @@ +import { h } from 'vue' +import { SvgIcon } from '@/components/common' + +export const useIconRender = () => { + interface IconConfig { + icon?: string + color?: string + fontSize?: number + } + + interface IconStyle { + color?: string + fontSize?: string + } + + const iconRender = (config: IconConfig) => { + const { color, fontSize, icon } = config + + const style: IconStyle = {} + + if (color) + style.color = color + + if (fontSize) + style.fontSize = `${fontSize}px` + + if (!icon) + window.console.warn('iconRender: icon is required') + + return () => h(SvgIcon, { icon, style }) + } + + return { + iconRender, + } +} diff --git a/chat/src/hooks/useLanguage.ts b/chat/src/hooks/useLanguage.ts new file mode 100644 index 0000000..f015142 --- /dev/null +++ b/chat/src/hooks/useLanguage.ts @@ -0,0 +1,27 @@ +import { computed } from 'vue' +import { enUS, zhCN, zhTW } from 'naive-ui' +import { useAppStore } from '@/store' +import { setLocale } from '@/locales' + +export function useLanguage() { + const appStore = useAppStore() + + const language = computed(() => { + switch (appStore.language) { + case 'en-US': + setLocale('en-US') + return enUS + case 'zh-CN': + setLocale('zh-CN') + return zhCN + case 'zh-TW': + setLocale('zh-TW') + return zhTW + default: + setLocale('zh-CN') + return enUS + } + }) + + return { language } +} diff --git a/chat/src/hooks/useTheme.ts b/chat/src/hooks/useTheme.ts new file mode 100644 index 0000000..62549ea --- /dev/null +++ b/chat/src/hooks/useTheme.ts @@ -0,0 +1,79 @@ +import type { GlobalThemeOverrides } from 'naive-ui' +import { computed, watch } from 'vue' +import { darkTheme, useOsTheme } from 'naive-ui' +import { useAppStore } from '@/store' + +export function useTheme() { + const appStore = useAppStore() + + const OsTheme = useOsTheme() + + const isDark = computed(() => { + if (appStore.theme === 'auto') + return OsTheme.value === 'dark' + else + return appStore.theme === 'dark' + }) + + const theme = computed(() => { + return isDark.value ? darkTheme : undefined + }) + + const themeOverrides = computed(() => { + if (isDark.value) { + return { + common: {}, + } + } + return { + common: { + primaryColor: '#409eff', + }, + } + }) + + const darkThemeOverrides: GlobalThemeOverrides = { + common: { + primaryColor: '#5A91FCFF', + primaryColorHover: '#3074F8FF', + primaryColorPressed: '#3671E4FF', + baseColor: '#ffffff', + }, + Switch: { + railColorActive: '#5A91FCFF', + }, + Layout: { + // color: '#101014FF', + // siderColor: '#2F2E34', + }, + } + + const lightThemeOverrides: GlobalThemeOverrides = { + common: { + primaryColor: '#5A91FCFF', + primaryColorHover: '#3074F8FF', + primaryColorPressed: '#3671E4FF' + }, + Skeleton: { + color: '#F4F3F3FF', + colorEnd: '#F1F0F0FF' + }, + Layout: { + // color: '#F7F9FAFF', + // siderColor: '#EAF3F0FF', + }, + } + + watch( + () => isDark.value, + (dark) => { + if (dark) + document.documentElement.classList.add('dark') + else + document.documentElement.classList.remove('dark') + }, + { immediate: true }, + ) + + return { theme, themeOverrides, lightThemeOverrides, darkThemeOverrides } +} diff --git a/chat/src/icons/403.vue b/chat/src/icons/403.vue new file mode 100644 index 0000000..29fd940 --- /dev/null +++ b/chat/src/icons/403.vue @@ -0,0 +1,5 @@ + diff --git a/chat/src/icons/404.svg b/chat/src/icons/404.svg new file mode 100644 index 0000000..14cfa3a --- /dev/null +++ b/chat/src/icons/404.svg @@ -0,0 +1 @@ + diff --git a/chat/src/icons/500.vue b/chat/src/icons/500.vue new file mode 100644 index 0000000..e86e611 --- /dev/null +++ b/chat/src/icons/500.vue @@ -0,0 +1,5 @@ + diff --git a/chat/src/layout/components/BindWx.vue b/chat/src/layout/components/BindWx.vue new file mode 100644 index 0000000..60c13f5 --- /dev/null +++ b/chat/src/layout/components/BindWx.vue @@ -0,0 +1,118 @@ + + + diff --git a/chat/src/layout/components/GoodsDialog.vue b/chat/src/layout/components/GoodsDialog.vue new file mode 100644 index 0000000..d3d7e5e --- /dev/null +++ b/chat/src/layout/components/GoodsDialog.vue @@ -0,0 +1,292 @@ + + + diff --git a/chat/src/layout/components/Login copy.vue b/chat/src/layout/components/Login copy.vue new file mode 100644 index 0000000..21f5d63 --- /dev/null +++ b/chat/src/layout/components/Login copy.vue @@ -0,0 +1,98 @@ + + + diff --git a/chat/src/layout/components/Login.vue b/chat/src/layout/components/Login.vue new file mode 100644 index 0000000..9667941 --- /dev/null +++ b/chat/src/layout/components/Login.vue @@ -0,0 +1,119 @@ + + + + diff --git a/chat/src/layout/components/Login/Email.vue b/chat/src/layout/components/Login/Email.vue new file mode 100644 index 0000000..9044907 --- /dev/null +++ b/chat/src/layout/components/Login/Email.vue @@ -0,0 +1,266 @@ + + + diff --git a/chat/src/layout/components/Login/Phone.vue b/chat/src/layout/components/Login/Phone.vue new file mode 100644 index 0000000..ae738b8 --- /dev/null +++ b/chat/src/layout/components/Login/Phone.vue @@ -0,0 +1,323 @@ + + + diff --git a/chat/src/layout/components/Login/Wechat.vue b/chat/src/layout/components/Login/Wechat.vue new file mode 100644 index 0000000..5afd55d --- /dev/null +++ b/chat/src/layout/components/Login/Wechat.vue @@ -0,0 +1,143 @@ + + + + + + diff --git a/chat/src/layout/components/Login/send.vue b/chat/src/layout/components/Login/send.vue new file mode 100644 index 0000000..a96fb09 --- /dev/null +++ b/chat/src/layout/components/Login/send.vue @@ -0,0 +1,27 @@ + + + + + + + diff --git a/chat/src/layout/components/NoticeDialog.vue b/chat/src/layout/components/NoticeDialog.vue new file mode 100644 index 0000000..255cd8d --- /dev/null +++ b/chat/src/layout/components/NoticeDialog.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/chat/src/layout/components/PayDialog.vue b/chat/src/layout/components/PayDialog.vue new file mode 100644 index 0000000..b23ae74 --- /dev/null +++ b/chat/src/layout/components/PayDialog.vue @@ -0,0 +1,267 @@ + + + + + diff --git a/chat/src/views/inpaint/index.vue b/chat/src/views/inpaint/index.vue new file mode 100644 index 0000000..d12ebdc --- /dev/null +++ b/chat/src/views/inpaint/index.vue @@ -0,0 +1,139 @@ + + + + diff --git a/chat/src/views/market/index.vue b/chat/src/views/market/index.vue new file mode 100644 index 0000000..cdf2cdb --- /dev/null +++ b/chat/src/views/market/index.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/chat/src/views/midjourney/components/cardItem.vue b/chat/src/views/midjourney/components/cardItem.vue new file mode 100644 index 0000000..8a38ff7 --- /dev/null +++ b/chat/src/views/midjourney/components/cardItem.vue @@ -0,0 +1,531 @@ + + + + + diff --git a/chat/src/views/midjourney/index.vue b/chat/src/views/midjourney/index.vue new file mode 100644 index 0000000..ed66358 --- /dev/null +++ b/chat/src/views/midjourney/index.vue @@ -0,0 +1,972 @@ + + + + + diff --git a/chat/src/views/mind/index.vue b/chat/src/views/mind/index.vue new file mode 100644 index 0000000..c12283a --- /dev/null +++ b/chat/src/views/mind/index.vue @@ -0,0 +1,284 @@ + + + diff --git a/chat/src/views/mjDdraw/index.vue b/chat/src/views/mjDdraw/index.vue new file mode 100644 index 0000000..032f7c2 --- /dev/null +++ b/chat/src/views/mjDdraw/index.vue @@ -0,0 +1,386 @@ + + + + + diff --git a/chat/src/views/pay/index.vue b/chat/src/views/pay/index.vue new file mode 100644 index 0000000..1595a20 --- /dev/null +++ b/chat/src/views/pay/index.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/chat/src/views/share/components/drawMoneyDialog.vue b/chat/src/views/share/components/drawMoneyDialog.vue new file mode 100644 index 0000000..a5396bf --- /dev/null +++ b/chat/src/views/share/components/drawMoneyDialog.vue @@ -0,0 +1,148 @@ + + + diff --git a/chat/src/views/share/index.vue b/chat/src/views/share/index.vue new file mode 100644 index 0000000..4490adc --- /dev/null +++ b/chat/src/views/share/index.vue @@ -0,0 +1,669 @@ + + + + + diff --git a/chat/src/views/userCenter/components/detail.vue b/chat/src/views/userCenter/components/detail.vue new file mode 100644 index 0000000..576341e --- /dev/null +++ b/chat/src/views/userCenter/components/detail.vue @@ -0,0 +1,91 @@ + + + diff --git a/chat/src/views/userCenter/components/invite.vue b/chat/src/views/userCenter/components/invite.vue new file mode 100644 index 0000000..e7a1662 --- /dev/null +++ b/chat/src/views/userCenter/components/invite.vue @@ -0,0 +1,198 @@ + + + diff --git a/chat/src/views/userCenter/components/password.vue b/chat/src/views/userCenter/components/password.vue new file mode 100644 index 0000000..4387b8d --- /dev/null +++ b/chat/src/views/userCenter/components/password.vue @@ -0,0 +1,178 @@ + + + diff --git a/chat/src/views/userCenter/components/wallet.vue b/chat/src/views/userCenter/components/wallet.vue new file mode 100644 index 0000000..4539c4e --- /dev/null +++ b/chat/src/views/userCenter/components/wallet.vue @@ -0,0 +1,228 @@ + + + diff --git a/chat/src/views/userCenter/index.vue b/chat/src/views/userCenter/index.vue new file mode 100644 index 0000000..875a96e --- /dev/null +++ b/chat/src/views/userCenter/index.vue @@ -0,0 +1,237 @@ + + + diff --git a/chat/src/views/welcome/index.vue b/chat/src/views/welcome/index.vue new file mode 100644 index 0000000..c6cd02f --- /dev/null +++ b/chat/src/views/welcome/index.vue @@ -0,0 +1,480 @@ + + + + + diff --git a/chat/tailwind.config.js b/chat/tailwind.config.js new file mode 100644 index 0000000..e7ae618 --- /dev/null +++ b/chat/tailwind.config.js @@ -0,0 +1,39 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: 'class', + purge: false, + content: [ + './index.html', + './src/**/*.{vue,js,ts,jsx,tsx}', + ], + theme: { + extend: { + screens: { + '3xl': '1750px', + '4xl': '1870px', + }, + animation: { + blink: 'blink 1.2s infinite steps(1, start)', + }, + keyframes: { + blink: { + '0%, 100%': { 'background-color': 'currentColor' }, + '50%': { 'background-color': 'transparent' }, + }, + }, + width: { + sider: '60px', + }, + textColor: { + primary: '#409eff', + }, + minHeight: { + 28: '28px', + }, + backgroundColor: { + lightBg: 'linear-gradient(145deg, #F7F9FA 0%, #D9E9F0 50%, #F7F9FA 100%)', + }, + }, + }, + plugins: ['@tailwindcss/typography'], +} diff --git a/chat/tsconfig.json b/chat/tsconfig.json new file mode 100644 index 0000000..3a55b3c --- /dev/null +++ b/chat/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "ESNext", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "jsx": "preserve", + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "paths": { + "@/*": ["./src/*"] + }, + "types": ["vite/client", "node", "naive-ui/volar"] + }, + "exclude": ["node_modules", "dist", "service", "electron"] +} diff --git a/chat/vite.config.ts b/chat/vite.config.ts new file mode 100644 index 0000000..68f2941 --- /dev/null +++ b/chat/vite.config.ts @@ -0,0 +1,56 @@ +import path from 'path' +import type { PluginOption } from 'vite' +import { defineConfig, loadEnv } from 'vite' +import vue from '@vitejs/plugin-vue' +import { VitePWA } from 'vite-plugin-pwa' + +function setupPlugins(env: ImportMetaEnv): PluginOption[] { + return [ + vue(), + env.VITE_GLOB_APP_PWA === 'true' && VitePWA({ + injectRegister: 'auto', + manifest: { + name: 'YI AI', + short_name: 'YI AI', + icons: [ + { src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' }, + { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' }, + ], + }, + }), + ] +} + +export default defineConfig((env) => { + const viteEnv = loadEnv(env.mode, process.cwd()) as unknown as ImportMetaEnv + + return { + baseUrl: './', + minify: true, + resolve: { + alias: { + '@': path.resolve(process.cwd(), 'src'), + }, + }, + plugins: setupPlugins(viteEnv), + server: { + host: '0.0.0.0', + port: 1002, + open: false, + proxy: { + '/api': { + target: viteEnv.VITE_APP_API_BASE_URL, + changeOrigin: true, + rewrite: path => path.replace('/api/', '/api/'), + }, + }, + }, + build: { + reportCompressedSize: false, + sourcemap: false, + commonjsOptions: { + ignoreTryCatch: false, + }, + }, + } +}) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..93b0182 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3376 @@ +{ + "name": "yi-ai", + "version": "2.5.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "yi-ai", + "version": "2.5.0", + "license": "MID", + "dependencies": { + "dayjs": "^1.11.10", + "eslint": "^8.39.0", + "eslint-config-prettier": "^8.8.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "eslint-plugin-antfu": "^0.35.3", + "eslint-plugin-es": "^4.1.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jest": "^27.2.1", + "eslint-plugin-jsonc": "^2.7.0", + "eslint-plugin-markdown": "^3.0.0", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-unicorn": "^45.0.2", + "eslint-plugin-unused-imports": "^2.0.0", + "eslint-plugin-vue": "^9.11.0", + "eslint-plugin-yml": "^1.5.0", + "eslint-rule-composer": "^0.3.0", + "eslint-scope": "^7.2.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.4.0", + "jsonc-eslint-parser": "^2.2.0", + "prettier": "^2.8.8", + "prettier-linter-helpers": "^1.0.0", + "vue-eslint-parser": "^9.1.1", + "yaml-eslint-parser": "^1.2.0" + }, + "devDependencies": {} + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==" + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", + "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-regexp/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.0.0.tgz", + "integrity": "sha512-yHV74THqMJUyFKkHyN7hyENcEZM3Dj2a2IrdClY+IT4BFQHkIVwlh8s6uZfjsFydMdNHv0F5mWgAA3ajFbsvVQ==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/eslint-compat-utils/-/eslint-compat-utils-0.4.1.tgz", + "integrity": "sha512-5N7ZaJG5pZxUeNNJfUchurLVrunD1xJvyg5kYOIVF8kg1f3ajTikmAu/5fZ9w100omNPOoMjngRszh/Q/uFGMg==", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-antfu": { + "version": "0.35.3", + "resolved": "https://registry.npmmirror.com/eslint-plugin-antfu/-/eslint-plugin-antfu-0.35.3.tgz", + "integrity": "sha512-90Xct24s2n3aQhuuFFcPLhF5E6lU5s225B0VXupSjvDTuF+CmSQQLQG6KcqcdpA8O6dMbeXB9zy3SJ4aO7lndw==", + "dependencies": { + "@typescript-eslint/utils": "^5.53.0" + } + }, + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-plugin-html": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz", + "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==", + "dependencies": { + "htmlparser2": "^8.0.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.6.3", + "resolved": "https://registry.npmmirror.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz", + "integrity": "sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA==", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsonc": { + "version": "2.13.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.13.0.tgz", + "integrity": "sha512-2wWdJfpO/UbZzPDABuUVvlUQjfMJa2p2iQfYt/oWxOMpXCcjuiMUSaA02gtY/Dbu82vpaSqc+O7Xq6ECHwtIxA==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "eslint-compat-utils": "^0.4.0", + "espree": "^9.6.1", + "graphemer": "^1.4.0", + "jsonc-eslint-parser": "^2.0.4", + "natural-compare": "^1.4.0", + "synckit": "^0.6.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-markdown": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "dependencies": { + "mdast-util-from-markdown": "^0.8.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-no-only-tests": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz", + "integrity": "sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==", + "engines": { + "node": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", + "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "45.0.2", + "resolved": "https://registry.npmmirror.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz", + "integrity": "sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.19.1", + "@eslint-community/eslint-utils": "^4.1.2", + "ci-info": "^3.6.1", + "clean-regexp": "^1.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.2.0", + "jsesc": "^3.0.2", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "regjsparser": "^0.9.1", + "safe-regex": "^2.1.1", + "semver": "^7.3.8", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "peerDependencies": { + "eslint": ">=8.28.0" + } + }, + "node_modules/eslint-plugin-unused-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", + "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "dependencies": { + "eslint-rule-composer": "^0.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "eslint": "^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.21.1", + "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.1.tgz", + "integrity": "sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.4.2", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-yml": { + "version": "1.12.2", + "resolved": "https://registry.npmmirror.com/eslint-plugin-yml/-/eslint-plugin-yml-1.12.2.tgz", + "integrity": "sha512-hvS9p08FhPT7i/ynwl7/Wt7ke7Rf4P2D6fT8lZlL43peZDTsHtH2A0SIFQ7Kt7+mJ6if6P+FX3iJhMkdnxQwpg==", + "dependencies": { + "debug": "^4.3.2", + "eslint-compat-utils": "^0.4.0", + "lodash": "^4.17.21", + "natural-compare": "^1.4.0", + "yaml-eslint-parser": "^1.2.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-rule-composer": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", + "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.17.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.0.tgz", + "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.3.tgz", + "integrity": "sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==", + "dependencies": { + "es-errors": "^1.0.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmmirror.com/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz", + "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmmirror.com/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmmirror.com/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz", + "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "dependencies": { + "define-data-property": "^1.1.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==" + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/synckit": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.6.2.tgz", + "integrity": "sha512-Vhf+bUa//YSTYKseDiiEuQmhGCoIF3CVBhunm3r/DQnYiGT4JssmnKQc44BIyOZRK2pKjXXAgbhfmbeoC9CJpA==", + "dependencies": { + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.2", + "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", + "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", + "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "lodash": "^4.17.21", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ace1473 --- /dev/null +++ b/package.json @@ -0,0 +1,50 @@ +{ + "name": "yi-ai", + "version": "2.6.0", + "description": "使用 Nestjs 和 Vue3 搭建的 AIGC 生态社区 持续集成AI能力到社区之中", + "main": "index.js", + "author": "longyanjiang", + "keywords": [ + "ChatGpt", + "AIGC", + "AI" + ], + "dependencies": { + "dayjs": "^1.11.10", + "eslint": "^8.39.0", + "eslint-config-prettier": "^8.8.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "eslint-plugin-antfu": "^0.35.3", + "eslint-plugin-es": "^4.1.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jest": "^27.2.1", + "eslint-plugin-jsonc": "^2.7.0", + "eslint-plugin-markdown": "^3.0.0", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-unicorn": "^45.0.2", + "eslint-plugin-unused-imports": "^2.0.0", + "eslint-plugin-vue": "^9.11.0", + "eslint-plugin-yml": "^1.5.0", + "eslint-rule-composer": "^0.3.0", + "eslint-scope": "^7.2.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.4.0", + "jsonc-eslint-parser": "^2.2.0", + "prettier": "^2.8.8", + "prettier-linter-helpers": "^1.0.0", + "vue-eslint-parser": "^9.1.1", + "yaml-eslint-parser": "^1.2.0" + }, + "repository": { + "type": "git", + "url": "" + }, + "license": "MID", + "homepage": "" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..227bae4 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,25000 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + dayjs: + specifier: ^1.11.10 + version: registry.npmmirror.com/dayjs@1.11.10 + eslint: + specifier: ^8.39.0 + version: 8.39.0 + eslint-config-prettier: + specifier: ^8.8.0 + version: 8.8.0(eslint@8.39.0) + eslint-import-resolver-node: + specifier: ^0.3.7 + version: 0.3.7 + eslint-module-utils: + specifier: ^2.8.0 + version: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) + eslint-plugin-antfu: + specifier: ^0.35.3 + version: 0.35.3(eslint@8.39.0)(typescript@4.9.5) + eslint-plugin-es: + specifier: ^4.1.0 + version: 4.1.0(eslint@8.39.0) + eslint-plugin-eslint-comments: + specifier: ^3.2.0 + version: 3.2.0(eslint@8.39.0) + eslint-plugin-html: + specifier: ^7.1.0 + version: 7.1.0 + eslint-plugin-import: + specifier: ^2.27.5 + version: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) + eslint-plugin-jest: + specifier: ^27.2.1 + version: 27.2.1(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + eslint-plugin-jsonc: + specifier: ^2.7.0 + version: 2.7.0(eslint@8.39.0) + eslint-plugin-markdown: + specifier: ^3.0.0 + version: 3.0.0(eslint@8.39.0) + eslint-plugin-n: + specifier: ^15.7.0 + version: 15.7.0(eslint@8.39.0) + eslint-plugin-no-only-tests: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-prettier: + specifier: ^4.2.1 + version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.39.0)(prettier@2.8.8) + eslint-plugin-promise: + specifier: ^6.1.1 + version: 6.1.1(eslint@8.39.0) + eslint-plugin-unicorn: + specifier: ^45.0.2 + version: 45.0.2(eslint@8.39.0) + eslint-plugin-unused-imports: + specifier: ^2.0.0 + version: 2.0.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0) + eslint-plugin-vue: + specifier: ^9.11.0 + version: 9.11.0(eslint@8.39.0) + eslint-plugin-yml: + specifier: ^1.5.0 + version: 1.5.0(eslint@8.39.0) + eslint-rule-composer: + specifier: ^0.3.0 + version: 0.3.0 + eslint-scope: + specifier: ^7.2.0 + version: 7.2.0 + eslint-utils: + specifier: ^3.0.0 + version: 3.0.0(eslint@8.39.0) + eslint-visitor-keys: + specifier: ^3.4.0 + version: 3.4.0 + jsonc-eslint-parser: + specifier: ^2.2.0 + version: 2.2.0 + prettier: + specifier: ^2.8.8 + version: 2.8.8 + prettier-linter-helpers: + specifier: ^1.0.0 + version: 1.0.0 + vue-eslint-parser: + specifier: ^9.1.1 + version: 9.1.1(eslint@8.39.0) + yaml-eslint-parser: + specifier: ^1.2.0 + version: 1.2.0 + + admin: + dependencies: + '@element-plus/icons-vue': + specifier: ^2.1.0 + version: 2.1.0(vue@3.2.47) + '@types/marked': + specifier: ^4.0.8 + version: 4.3.0 + '@vueuse/core': + specifier: ^10.0.2 + version: 10.1.2(vue@3.2.47) + '@vueuse/integrations': + specifier: ^10.0.2 + version: 10.1.2(axios@1.4.0)(nprogress@0.2.0)(vue@3.2.47) + axios: + specifier: ^1.3.6 + version: 1.4.0 + dayjs: + specifier: ^1.11.7 + version: 1.11.7 + echarts: + specifier: ^5.4.2 + version: 5.4.2 + element-plus: + specifier: ^2.3.3 + version: 2.3.4(vue@3.2.47) + eruda: + specifier: ^3.0.0 + version: 3.0.0 + highlight.js: + specifier: ^11.7.0 + version: 11.8.0 + hotkeys-js: + specifier: ^3.10.2 + version: 3.10.2 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + marked: + specifier: ^4.3.0 + version: 4.3.0 + md-editor-v3: + specifier: ^3.0.0 + version: 3.0.0(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1)(vue@3.2.47) + mitt: + specifier: ^3.0.0 + version: 3.0.0 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + path-to-regexp: + specifier: ^6.2.1 + version: 6.2.1 + pinia: + specifier: ^2.0.35 + version: 2.0.35(typescript@5.0.4)(vue@3.2.47) + postcss: + specifier: ^8.4.23 + version: 8.4.23 + qs: + specifier: ^6.11.1 + version: 6.11.1 + resize-observer-polyfill: + specifier: ^1.5.1 + version: 1.5.1 + tailwindcss: + specifier: ^3.3.1 + version: 3.3.2(ts-node@10.9.1) + vconsole: + specifier: ^3.15.0 + version: 3.15.0 + vue: + specifier: ^3.2.47 + version: 3.2.47 + vue-echarts: + specifier: ^6.5.4 + version: 6.5.5(echarts@5.4.2)(vue@3.2.47) + vue-router: + specifier: ^4.1.6 + version: 4.1.6(vue@3.2.47) + devDependencies: + '@antfu/eslint-config': + specifier: ^0.38.5 + version: 0.38.5(eslint@8.39.0)(typescript@5.0.4) + '@iconify-json/ep': + specifier: ^1.1.10 + version: 1.1.10 + '@iconify/vue': + specifier: ^4.1.1 + version: 4.1.1(vue@3.2.47) + '@types/nprogress': + specifier: ^0.2.0 + version: 0.2.0 + '@types/path-browserify': + specifier: ^1.0.0 + version: 1.0.0 + '@types/qs': + specifier: ^6.9.7 + version: 6.9.7 + '@vitejs/plugin-vue': + specifier: ^4.1.0 + version: 4.2.1(vite@4.3.3)(vue@3.2.47) + '@vitejs/plugin-vue-jsx': + specifier: ^3.0.1 + version: 3.0.1(vite@4.3.3)(vue@3.2.47) + autoprefixer: + specifier: ^10.4.14 + version: 10.4.14(postcss@8.4.23) + bumpp: + specifier: ^9.1.0 + version: 9.1.0 + eslint: + specifier: ^8.38.0 + version: 8.39.0 + esno: + specifier: ^0.16.3 + version: 0.16.3 + fs-extra: + specifier: ^11.1.1 + version: 11.1.1 + http-server: + specifier: ^14.1.1 + version: 14.1.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + plop: + specifier: ^3.1.2 + version: 3.1.2 + postcss-html: + specifier: ^1.5.0 + version: 1.5.0 + sass: + specifier: ^1.62.0 + version: 1.62.1 + stylelint: + specifier: ^15.5.0 + version: 15.6.0 + stylelint-config-standard: + specifier: ^33.0.0 + version: 33.0.0(stylelint@15.6.0) + stylelint-config-standard-scss: + specifier: ^8.0.0 + version: 8.0.0(postcss@8.4.23)(stylelint@15.6.0) + stylelint-config-standard-vue: + specifier: ^1.0.0 + version: 1.0.0(postcss-html@1.5.0)(stylelint@15.6.0) + stylelint-scss: + specifier: ^4.6.0 + version: 4.7.0(stylelint@15.6.0) + stylelint-stylistic: + specifier: ^0.4.0 + version: 0.4.0(stylelint@15.6.0) + svgo: + specifier: ^3.0.2 + version: 3.0.2 + terser: + specifier: ^5.17.1 + version: 5.17.1 + typescript: + specifier: ^5.0.4 + version: 5.0.4 + unplugin-auto-import: + specifier: ^0.15.3 + version: 0.15.3(@vueuse/core@10.1.2) + unplugin-vue-components: + specifier: ^0.24.1 + version: 0.24.1(vue@3.2.47) + unplugin-vue-setup-extend-plus: + specifier: ^1.0.0 + version: 1.0.0 + vite: + specifier: ^4.3.1 + version: 4.3.3(sass@1.62.1)(terser@5.17.1) + vite-plugin-banner: + specifier: ^0.7.0 + version: 0.7.0 + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@4.3.3) + vite-plugin-mock: + specifier: ^2.9.8 + version: 2.9.8(mockjs@1.1.0)(vite@4.3.3) + vite-plugin-pages: + specifier: ^0.29.0 + version: 0.29.0(vite@4.3.3) + vite-plugin-spritesmith: + specifier: ^0.1.1 + version: 0.1.1 + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@4.3.3) + vite-plugin-vue-inspector: + specifier: ^3.4.0 + version: 3.4.1(vite@4.3.3) + vite-plugin-vue-meta-layouts: + specifier: ^0.2.2 + version: 0.2.2(vite@4.3.3)(vue-router@4.1.6) + vue-tsc: + specifier: ^1.4.2 + version: 1.6.3(typescript@5.0.4) + + chat: + dependencies: + '@electron/remote': + specifier: ^2.1.0 + version: 2.1.0(electron@25.3.1) + '@icon-park/vue-next': + specifier: ^1.4.2 + version: 1.4.2(vue@3.2.47) + '@traptitech/markdown-it-katex': + specifier: ^3.6.0 + version: 3.6.0 + '@types/dom-to-image': + specifier: ^2.6.4 + version: 2.6.4 + '@types/file-saver': + specifier: ^2.0.5 + version: 2.0.5 + '@vicons/ionicons5': + specifier: ^0.12.0 + version: 0.12.0 + '@vueuse/core': + specifier: ^9.13.0 + version: 9.13.0(vue@3.2.47) + '@vueuse/electron': + specifier: ^10.2.1 + version: 10.2.1(electron@25.3.1)(vue@3.2.47) + '@vueuse/integrations': + specifier: ^10.2.0 + version: 10.2.0(axios@1.4.0)(qrcode@1.5.3)(vue@3.2.47) + '@vueuse/motion': + specifier: ^2.0.0 + version: 2.0.0(rollup@2.79.1)(vue@3.2.47) + add: + specifier: ^2.0.6 + version: 2.0.6 + clientjs: + specifier: ^0.2.1 + version: 0.2.1 + date-fns: + specifier: ^2.30.0 + version: 2.30.0 + dom-to-image: + specifier: ^2.6.0 + version: 2.6.0 + file-saver: + specifier: ^2.0.5 + version: 2.0.5 + highlight.js: + specifier: ^11.7.0 + version: 11.8.0 + html-to-image: + specifier: ^1.11.11 + version: 1.11.11 + html2canvas: + specifier: ^1.4.1 + version: 1.4.1 + katex: + specifier: ^0.16.4 + version: 0.16.7 + markdown-it: + specifier: ^13.0.1 + version: 13.0.1 + marked: + specifier: ^4.3.0 + version: 4.3.0 + markmap-common: + specifier: 0.14.2 + version: 0.14.2 + markmap-lib: + specifier: 0.14.4 + version: 0.14.4(markmap-common@0.14.2) + markmap-view: + specifier: 0.14.4 + version: 0.14.4(markmap-common@0.14.2) + naive-ui: + specifier: ^2.37.3 + version: registry.npmmirror.com/naive-ui@2.37.3(vue@3.2.47) + pinia: + specifier: ^2.0.33 + version: 2.0.35(typescript@4.9.5)(vue@3.2.47) + qrcode: + specifier: ^1.5.3 + version: 1.5.3 + v-viewer: + specifier: 3.0.11 + version: 3.0.11(vue@3.2.47) + vue: + specifier: ^3.2.47 + version: 3.2.47 + vue-clipboard3: + specifier: ^2.0.0 + version: 2.0.0 + vue-i18n: + specifier: ^9.2.2 + version: 9.2.2(vue@3.2.47) + vue-router: + specifier: ^4.1.6 + version: 4.1.6(vue@3.2.47) + devDependencies: + '@antfu/eslint-config': + specifier: ^0.35.3 + version: 0.35.3(eslint@8.39.0)(typescript@4.9.5) + '@commitlint/cli': + specifier: ^17.4.4 + version: 17.6.3 + '@commitlint/config-conventional': + specifier: ^17.4.4 + version: 17.6.3 + '@iconify/vue': + specifier: ^4.1.0 + version: 4.1.1(vue@3.2.47) + '@types/crypto-js': + specifier: ^4.1.1 + version: 4.1.1 + '@types/katex': + specifier: ^0.16.0 + version: 0.16.0 + '@types/markdown-it': + specifier: ^12.2.3 + version: 12.2.3 + '@types/markdown-it-link-attributes': + specifier: ^3.0.1 + version: 3.0.1 + '@types/node': + specifier: ^18.14.6 + version: 18.16.3 + '@vitejs/plugin-vue': + specifier: ^4.0.0 + version: 4.2.1(vite@4.3.3)(vue@3.2.47) + autoprefixer: + specifier: ^10.4.13 + version: 10.4.14(postcss@8.4.23) + axios: + specifier: ^1.3.4 + version: 1.4.0 + crypto-js: + specifier: ^4.1.1 + version: 4.1.1 + electron: + specifier: ^25.3.1 + version: 25.3.1 + electron-builder: + specifier: ^24.4.0 + version: 24.4.0 + eslint: + specifier: ^8.35.0 + version: 8.39.0 + husky: + specifier: ^8.0.3 + version: 8.0.3 + less: + specifier: ^4.1.3 + version: 4.1.3 + lint-staged: + specifier: ^13.1.2 + version: 13.2.2 + markdown-it-link-attributes: + specifier: ^4.0.1 + version: 4.0.1 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + postcss: + specifier: ^8.4.21 + version: 8.4.23 + rimraf: + specifier: ^4.2.0 + version: 4.4.1 + tailwindcss: + specifier: ^3.2.7 + version: 3.3.2(ts-node@10.9.1) + typescript: + specifier: ~4.9.5 + version: 4.9.5 + vite: + specifier: ^4.2.0 + version: 4.3.3(@types/node@18.16.3)(less@4.1.3) + vite-plugin-pwa: + specifier: ^0.14.4 + version: 0.14.7(vite@4.3.3)(workbox-build@6.6.0)(workbox-window@6.6.0) + vue-tsc: + specifier: ^1.2.0 + version: 1.6.3(typescript@4.9.5) + + service: + dependencies: + '@alicloud/pop-core': + specifier: ^1.7.13 + version: 1.7.13 + '@dqbd/tiktoken': + specifier: ^1.0.7 + version: 1.0.7 + '@keyv/redis': + specifier: ^2.6.1 + version: 2.6.1 + '@nestjs-modules/mailer': + specifier: ^1.8.1 + version: 1.8.1(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(nodemailer@6.9.1) + '@nestjs/bull': + specifier: ^0.6.3 + version: 0.6.3(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(bull@4.10.4) + '@nestjs/common': + specifier: ^9.0.0 + version: 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': + specifier: ^9.0.0 + version: 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/jwt': + specifier: ^10.0.3 + version: 10.0.3(@nestjs/common@9.4.0) + '@nestjs/passport': + specifier: ^9.0.3 + version: 9.0.3(@nestjs/common@9.4.0)(passport@0.6.0) + '@nestjs/platform-express': + specifier: ^9.4.0 + version: 9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0) + '@nestjs/schedule': + specifier: ^2.2.2 + version: 2.2.2(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(reflect-metadata@0.1.13) + '@nestjs/serve-static': + specifier: ^4.0.0 + version: 4.0.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(express@4.18.2) + '@nestjs/swagger': + specifier: ^6.2.1 + version: 6.3.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) + '@nestjs/typeorm': + specifier: ^9.0.1 + version: 9.0.1(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)(typeorm@0.3.15) + '@types/cache-manager-redis-store': + specifier: ^2.0.1 + version: 2.0.1 + abort-controller: + specifier: ^3.0.0 + version: 3.0.0 + ali-oss: + specifier: ^6.17.1 + version: 6.17.1 + axios: + specifier: ^1.3.4 + version: 1.4.0 + bcryptjs: + specifier: ^2.4.3 + version: 2.4.3 + body-parser: + specifier: ^1.20.2 + version: 1.20.2 + bull: + specifier: ^4.10.4 + version: 4.10.4 + cache-manager-redis-store: + specifier: ^3.0.1 + version: 3.0.1 + chatgpt-ai-web: + specifier: ^1.0.0 + version: registry.npmmirror.com/chatgpt-ai-web@1.0.0 + class-transformer: + specifier: ^0.5.1 + version: 0.5.1 + class-validator: + specifier: ^0.14.0 + version: 0.14.0 + compression: + specifier: ^1.7.4 + version: 1.7.4 + cos-nodejs-sdk-v5: + specifier: ^2.11.19 + version: 2.12.0 + dayjs: + specifier: ^1.11.7 + version: 1.11.7 + decimal.js: + specifier: ^10.4.3 + version: 10.4.3 + dotenv: + specifier: ^16.0.3 + version: 16.0.3 + eventsource: + specifier: ^2.0.2 + version: 2.0.2 + exceljs: + specifier: ^4.3.0 + version: 4.3.0 + express: + specifier: ^4.18.2 + version: 4.18.2 + express-xml-bodyparser: + specifier: ^0.3.0 + version: 0.3.0 + form-data: + specifier: ^4.0.0 + version: 4.0.0 + guid-typescript: + specifier: ^1.0.9 + version: 1.0.9 + hbs: + specifier: ^4.2.0 + version: 4.2.0 + image-size: + specifier: ^1.1.1 + version: registry.npmmirror.com/image-size@1.1.1 + ioredis: + specifier: ^5.3.2 + version: 5.3.2 + isomorphic-fetch: + specifier: ^3.0.0 + version: 3.0.0 + javascript-obfuscator: + specifier: ^4.0.2 + version: 4.0.2 + jimp: + specifier: ^0.22.7 + version: 0.22.7 + jsonwebtoken: + specifier: ^9.0.0 + version: 9.0.0 + keyv: + specifier: ^4.5.2 + version: 4.5.2 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + mysql2: + specifier: ^3.2.0 + version: 3.2.4 + nestjs-config: + specifier: ^1.4.10 + version: 1.4.10(@nestjs/common@9.4.0) + nestjs-rate-limiter: + specifier: ^3.1.0 + version: 3.1.0 + nestjs-redis: + specifier: ^1.3.3 + version: 1.3.3(@nestjs/platform-express@9.4.0)(class-transformer@0.5.1)(class-validator@0.14.0) + node-fetch: + specifier: ^3.3.1 + version: 3.3.1 + nodemailer: + specifier: ^6.9.1 + version: 6.9.1 + passport: + specifier: ^0.6.0 + version: 0.6.0 + passport-jwt: + specifier: ^4.0.1 + version: 4.0.1 + redis: + specifier: ^4.6.5 + version: 4.6.6 + reflect-metadata: + specifier: ^0.1.13 + version: 0.1.13 + rxjs: + specifier: ^7.2.0 + version: 7.8.1 + stream-to-buffer: + specifier: ^0.1.0 + version: 0.1.0 + svg-captcha: + specifier: ^1.4.0 + version: 1.4.0 + swagger-ui-express: + specifier: ^4.6.2 + version: 4.6.2(express@4.18.2) + typeorm: + specifier: ^0.3.12 + version: 0.3.15(ioredis@5.3.2)(mysql2@3.2.4)(redis@4.6.6)(ts-node@10.9.1) + uuid: + specifier: ^9.0.0 + version: 9.0.0 + wechatpay-node-v3: + specifier: ^2.1.5 + version: 2.1.5 + devDependencies: + '@nestjs/cli': + specifier: ^9.0.0 + version: 9.4.2 + '@nestjs/schematics': + specifier: ^9.0.0 + version: 9.1.0(chokidar@3.5.3)(typescript@4.9.5) + '@nestjs/testing': + specifier: ^9.0.0 + version: 9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(@nestjs/platform-express@9.4.0) + '@types/express': + specifier: ^4.17.13 + version: 4.17.17 + '@types/jest': + specifier: 29.2.4 + version: 29.2.4 + '@types/node': + specifier: 18.11.18 + version: 18.11.18 + '@types/supertest': + specifier: ^2.0.11 + version: 2.0.12 + '@typescript-eslint/eslint-plugin': + specifier: ^5.0.0 + version: 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/parser': + specifier: ^5.0.0 + version: 5.59.2(eslint@8.39.0)(typescript@4.9.5) + eslint: + specifier: ^8.0.1 + version: 8.39.0 + eslint-config-prettier: + specifier: ^8.3.0 + version: 8.8.0(eslint@8.39.0) + eslint-plugin-prettier: + specifier: ^4.0.0 + version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.39.0)(prettier@2.8.8) + jest: + specifier: 29.3.1 + version: 29.3.1(@types/node@18.11.18)(ts-node@10.9.1) + prettier: + specifier: ^2.3.2 + version: 2.8.8 + source-map-support: + specifier: ^0.5.20 + version: 0.5.21 + supertest: + specifier: ^6.1.3 + version: 6.3.3 + ts-jest: + specifier: 29.0.3 + version: 29.0.3(@babel/core@7.23.9)(jest@29.3.1)(typescript@4.9.5) + ts-loader: + specifier: ^9.2.3 + version: 9.4.2(typescript@4.9.5)(webpack@5.90.1) + ts-node: + specifier: ^10.0.0 + version: 10.9.1(@types/node@18.11.18)(typescript@4.9.5) + tsconfig-paths: + specifier: 4.1.1 + version: 4.1.1 + typescript: + specifier: ^4.7.4 + version: 4.9.5 + +packages: + + /7zip-bin@5.1.1: + resolution: {integrity: sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==} + dev: true + + /@alicloud/pop-core@1.7.13: + resolution: {integrity: sha512-agzr4DU+aAGW7/2mp2hP1JcNJkn/zBS0jUGQt5etIASN0MVq1tMdudVqvWbExUG0mUouo/n2VgdnjOHjswvrlA==} + engines: {node: '>=8.0.0'} + dependencies: + debug: 3.2.7 + httpx: 2.2.7 + json-bigint: 1.0.0 + kitx: 1.3.0 + xml2js: 0.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, tarball: http://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz} + engines: {node: '>=10'} + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@angular-devkit/core@15.2.4(chokidar@3.5.3): + resolution: {integrity: sha512-yl+0j1bMwJLKShsyCXw77tbJG8Sd21+itisPLL2MgEpLNAO252kr9zG4TLlFRJyKVftm2l1h78KjqvM5nbOXNg==, tarball: http://registry.npmjs.org/@angular-devkit/core/-/core-15.2.4.tgz} + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + chokidar: 3.5.3 + jsonc-parser: 3.2.0 + rxjs: 6.6.7 + source-map: 0.7.4 + dev: true + + /@angular-devkit/core@15.2.6(chokidar@3.5.3): + resolution: {integrity: sha512-YVTWZ+M+xNKdFX4EnY9QX49PZraawiaA0iTd2CUW8ZoTUvU7yOGMKZLSdz6aokTMRVfm0449wt6YL994ibOo1g==, tarball: http://registry.npmjs.org/@angular-devkit/core/-/core-15.2.6.tgz} + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + chokidar: 3.5.3 + jsonc-parser: 3.2.0 + rxjs: 6.6.7 + source-map: 0.7.4 + dev: true + + /@angular-devkit/schematics-cli@15.2.6(chokidar@3.5.3): + resolution: {integrity: sha512-dkmJAvLmiXIX3uAY0a7GcnEvKNN/RKR5Q/ez4OQb+jaz+2/XbAiQVmTgZ5uwU2gYkFNLvG9ZCAaQdC4JJp9xaw==, tarball: http://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-15.2.6.tgz} + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + dependencies: + '@angular-devkit/core': 15.2.6(chokidar@3.5.3) + '@angular-devkit/schematics': 15.2.6(chokidar@3.5.3) + ansi-colors: 4.1.3 + inquirer: 8.2.4 + symbol-observable: 4.0.0 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/schematics@15.2.4(chokidar@3.5.3): + resolution: {integrity: sha512-/W7/vvn59PAVLzhcvD4/N/E8RDhub8ny1A7I96LTRjC5o+yvVV16YJ4YJzolrRrIEN01KmLVQJ9A58VCaweMgw==, tarball: http://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.4.tgz} + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 15.2.4(chokidar@3.5.3) + jsonc-parser: 3.2.0 + magic-string: 0.29.0 + ora: 5.4.1 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@angular-devkit/schematics@15.2.6(chokidar@3.5.3): + resolution: {integrity: sha512-f7VgnAcok7AwR/DhX0ZWskB0rFBo/KsvtIUA2qZSrpKMf8eFiwu03dv/b2mI0vnf+1FBfIQzJvO0ww45zRp6dA==, tarball: http://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.6.tgz} + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': 15.2.6(chokidar@3.5.3) + jsonc-parser: 3.2.0 + magic-string: 0.29.0 + ora: 5.4.1 + rxjs: 6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + /@antfu/eslint-config-basic@0.35.3(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-NbWJKNgd3Ky3/ok2Z88cXNme/6I9otkiaB+FYLFgQE81sfMAhKpLKXtTSwzdcKMzhKDqUchAijt0BxjE/mcTJg==, tarball: http://registry.npmjs.org/@antfu/eslint-config-basic/-/eslint-config-basic-0.35.3.tgz} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + eslint: 8.39.0 + eslint-plugin-antfu: 0.35.3(eslint@8.39.0)(typescript@4.9.5) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) + eslint-plugin-markdown: 3.0.0(eslint@8.39.0) + eslint-plugin-n: 15.7.0(eslint@8.39.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-promise: 6.1.1(eslint@8.39.0) + eslint-plugin-unicorn: 45.0.2(eslint@8.39.0) + eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0) + eslint-plugin-yml: 1.5.0(eslint@8.39.0) + jsonc-eslint-parser: 2.2.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + - typescript + dev: true + + /@antfu/eslint-config-basic@0.38.5(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-Xifabjs94QscgQoLgZbj87GsagvtzZBoEY1+efHsz6RZE8kHqHzxZr9ulEZ/3e563Ld8fDGbgCTAxkDhrhkOjA==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + eslint: 8.39.0 + eslint-plugin-antfu: 0.38.5(eslint@8.39.0)(typescript@5.0.4) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) + eslint-plugin-markdown: 3.0.0(eslint@8.39.0) + eslint-plugin-n: 15.7.0(eslint@8.39.0) + eslint-plugin-no-only-tests: 3.1.0 + eslint-plugin-promise: 6.1.1(eslint@8.39.0) + eslint-plugin-unicorn: 46.0.0(eslint@8.39.0) + eslint-plugin-unused-imports: 2.0.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0) + eslint-plugin-yml: 1.5.0(eslint@8.39.0) + jsonc-eslint-parser: 2.2.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + - typescript + dev: true + + /@antfu/eslint-config-ts@0.35.3(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-FS5hir2ghXYlJWAiB2bpT9oAr0kpSNmYbaJWWkztocJG95AORl4tWzxMTkLT+TxaOmhuwJszcrMTHy5RgHL8/w==, tarball: http://registry.npmjs.org/@antfu/eslint-config-ts/-/eslint-config-ts-0.35.3.tgz} + peerDependencies: + eslint: '>=7.4.0' + typescript: '>=3.9' + dependencies: + '@antfu/eslint-config-basic': 0.35.3(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + eslint: 8.39.0 + eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true + + /@antfu/eslint-config-ts@0.38.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-5NCZj44HgWNLvp5ikah26f7RnovhSgrNzfO3zSMewhaJZgDerglVpig3Rc0tOZFEGieWZTDWruZHyvZZRc3lJw==} + peerDependencies: + eslint: '>=7.4.0' + typescript: '>=3.9' + dependencies: + '@antfu/eslint-config-basic': 0.38.5(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + eslint-plugin-jest: 27.2.1(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true + + /@antfu/eslint-config-vue@0.35.3(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-BA3vGLyuzqtEUb9gfgE7YzBT+a4oUnQuUPasIUfN/BVXaEhRVYlMmUgxN4ekQLuzOgUjUH13lqplXtkLJ62t9g==, tarball: http://registry.npmjs.org/@antfu/eslint-config-vue/-/eslint-config-vue-0.35.3.tgz} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-basic': 0.35.3(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@antfu/eslint-config-ts': 0.35.3(eslint@8.39.0)(typescript@4.9.5) + eslint: 8.39.0 + eslint-plugin-vue: 9.11.0(eslint@8.39.0) + local-pkg: 0.4.3 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/eslint-config-vue@0.38.5(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-vfih3rjrPfaqep/UaxKs0tFifBvxzL3QXy6uW7eYXkabwglG7IeUZZZJnbbKe8bIGqfLNGl3HDHHDiloprivlQ==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-basic': 0.38.5(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@antfu/eslint-config-ts': 0.38.5(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + eslint-plugin-vue: 9.11.0(eslint@8.39.0) + local-pkg: 0.4.3 + transitivePeerDependencies: + - '@typescript-eslint/eslint-plugin' + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/eslint-config@0.35.3(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-wd0ry/TNqaZmniqkKtZKoCvpl55x9YbHgL5Ug3H9rVuUSqaNi9G9AjYlynQqn4/M1EhYYWO597Lu7f/fC+csrg==, tarball: http://registry.npmjs.org/@antfu/eslint-config/-/eslint-config-0.35.3.tgz} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-vue': 0.35.3(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + eslint: 8.39.0 + eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) + eslint-plugin-n: 15.7.0(eslint@8.39.0) + eslint-plugin-promise: 6.1.1(eslint@8.39.0) + eslint-plugin-unicorn: 45.0.2(eslint@8.39.0) + eslint-plugin-vue: 9.11.0(eslint@8.39.0) + eslint-plugin-yml: 1.5.0(eslint@8.39.0) + jsonc-eslint-parser: 2.2.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/eslint-config@0.38.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-Oks5vh5FPMu/IAmXeaTzp0YUYoDuvM7UqaRyFQ7EOG9NLx8TBXQw7gkqB/h5+d11ikhKxrGCMbxcUO7910dobg==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-vue': 0.38.5(@typescript-eslint/eslint-plugin@5.59.2)(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + eslint-plugin-eslint-comments: 3.2.0(eslint@8.39.0) + eslint-plugin-html: 7.1.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0) + eslint-plugin-jsonc: 2.7.0(eslint@8.39.0) + eslint-plugin-n: 15.7.0(eslint@8.39.0) + eslint-plugin-promise: 6.1.1(eslint@8.39.0) + eslint-plugin-unicorn: 46.0.0(eslint@8.39.0) + eslint-plugin-vue: 9.11.0(eslint@8.39.0) + eslint-plugin-yml: 1.5.0(eslint@8.39.0) + jsonc-eslint-parser: 2.2.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + - typescript + dev: true + + /@antfu/utils@0.7.2: + resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==} + dev: true + + /@babel/code-frame@7.21.4: + resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==, tarball: http://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: true + + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + + /@babel/compat-data@7.21.7: + resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.21.5: + resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==, tarball: http://registry.npmjs.org/@babel/core/-/core-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.5 + '@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5) + '@babel/helper-module-transforms': 7.21.5 + '@babel/helpers': 7.21.5 + '@babel/parser': 7.21.5 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.21.5: + resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==, tarball: http://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + + /@babel/generator@7.23.3: + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.3 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, tarball: http://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==, tarball: http://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.21.7 + '@babel/core': 7.21.5 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin@7.21.5(@babel/core@7.21.5): + resolution: {integrity: sha512-yNSEck9SuDvPTEUYm4BSXl6ZVC7yO5ZLEMAhG3v3zi7RDxyL/nQDemWWZmw4L0stPWwhpnznRRyJHPRcbXR2jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.21.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.21.5: + resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.3 + dev: true + + /@babel/helper-hoist-variables@7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.3 + dev: true + + /@babel/helper-member-expression-to-functions@7.21.5: + resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==, tarball: http://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-module-imports@7.21.4: + resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==, tarball: http://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-module-transforms@7.21.5: + resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==, tarball: http://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression@7.18.6: + resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-plugin-utils@7.21.5: + resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==, tarball: http://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-replace-supers@7.21.5: + resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.21.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access@7.21.5: + resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.20.0: + resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.3 + dev: true + + /@babel/helper-split-export-declaration@7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.3 + dev: true + + /@babel/helper-string-parser@7.21.5: + resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} + engines: {node: '>=6.9.0'} + + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, tarball: http://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers@7.21.5: + resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==, tarball: http://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.21.5: + resolution: {integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==, tarball: http://registry.npmjs.org/@babel/parser/-/parser-7.21.5.tgz} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.21.5 + + /@babel/parser@7.23.3: + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.3 + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.5): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, tarball: http://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.5): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.5): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, tarball: http://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-jsx@7.21.4(@babel/core@7.21.5): + resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==, tarball: http://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.5): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.5): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.5): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.5): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-syntax-typescript@7.21.4(@babel/core@7.21.5): + resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==, tarball: http://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-plugin-utils': 7.21.5 + dev: true + + /@babel/plugin-transform-typescript@7.21.3(@babel/core@7.21.5): + resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.21.5(@babel/core@7.21.5) + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.21.5) + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/runtime@7.21.5: + resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==, tarball: http://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@babel/template@7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==, tarball: http://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.21.5 + '@babel/types': 7.21.5 + dev: true + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + dev: true + + /@babel/traverse@7.21.5: + resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==, tarball: http://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.21.5 + '@babel/helper-environment-visitor': 7.21.5 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.21.5 + '@babel/types': 7.21.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse@7.23.3: + resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.21.5: + resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==, tarball: http://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, tarball: http://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz} + dev: true + + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.1)(@lezer/common@1.0.2): + resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': 1.0.2 + dev: false + + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.1)(@lezer/common@1.2.1): + resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.2.1 + dev: false + + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.23.1)(@lezer/common@1.0.2): + resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.23.1 + '@lezer/common': 1.0.2 + dev: false + + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1): + resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.23.1 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.2.1 + dev: false + + /@codemirror/autocomplete@6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1): + resolution: {integrity: sha512-SjbgWSwNKbyQOiVXtG8DXG2z29zTbmzpGccxMqakVo+vqK8fx3Ai0Ee7is3JqX6dxJOoK0GfP3LfeUK53Ltv7w==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.4.0 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.23.1 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.2.1 + dev: false + + /@codemirror/commands@6.2.3: + resolution: {integrity: sha512-9uf0g9m2wZyrIim1SavcxMdwsu8wc/y5uSw6JRUBYIGWrN+RY4vSru/BqB+MyNWqx4C2uRhQ/Kh7Pw8lAyT3qQ==} + dependencies: + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': 1.0.2 + dev: false + + /@codemirror/lang-angular@0.1.0: + resolution: {integrity: sha512-vTjoHjzJmLrrMFmf/tojwp+O0P+R9mgWtjjaKDNDoY58PzOPg7ldMEBqIzABBc+/2mYPD85SG7O5byfBxc83eA==} + dependencies: + '@codemirror/lang-html': 6.4.3 + '@codemirror/lang-javascript': 6.1.7 + '@codemirror/language': 6.6.0 + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.4 + dev: false + + /@codemirror/lang-cpp@6.0.2: + resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} + dependencies: + '@codemirror/language': 6.6.0 + '@lezer/cpp': 1.1.0 + dev: false + + /@codemirror/lang-css@6.2.0(@codemirror/view@6.10.1): + resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.1)(@lezer/common@1.0.2) + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/common': 1.0.2 + '@lezer/css': 1.1.1 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-css@6.2.0(@codemirror/view@6.23.1): + resolution: {integrity: sha512-oyIdJM29AyRPM3+PPq1I2oIk8NpUfEN3kAM05XWDDs6o3gSneIKaVJifT2P+fqONLou2uIgXynFyMUDQvo/szA==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.23.1)(@lezer/common@1.0.2) + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/common': 1.0.2 + '@lezer/css': 1.1.1 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-html@6.4.3: + resolution: {integrity: sha512-VKzQXEC8nL69Jg2hvAFPBwOdZNvL8tMFOrdFwWpU+wc6a6KEkndJ/19R5xSaglNX6v2bttm8uIEFYxdQDcIZVQ==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.1)(@lezer/common@1.0.2) + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.10.1) + '@codemirror/lang-javascript': 6.1.7 + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': 1.0.2 + '@lezer/css': 1.1.1 + '@lezer/html': 1.3.4 + dev: false + + /@codemirror/lang-java@6.0.1: + resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} + dependencies: + '@codemirror/language': 6.6.0 + '@lezer/java': 1.0.3 + dev: false + + /@codemirror/lang-javascript@6.1.7: + resolution: {integrity: sha512-KXKqxlZ4W6t5I7i2ScmITUD3f/F5Cllk3kj0De9P9mFeYVfhOVOWuDLgYiLpk357u7Xh4dhqjJAnsNPPoTLghQ==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.1)(@lezer/common@1.0.2) + '@codemirror/language': 6.6.0 + '@codemirror/lint': 6.2.1 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': 1.0.2 + '@lezer/javascript': 1.4.3 + dev: false + + /@codemirror/lang-json@6.0.1: + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + dependencies: + '@codemirror/language': 6.6.0 + '@lezer/json': 1.0.0 + dev: false + + /@codemirror/lang-less@6.0.1(@codemirror/view@6.23.1): + resolution: {integrity: sha512-ABcsKBjLbyPZwPR5gePpc8jEKCQrFF4pby2WlMVdmJOOr7OWwwyz8DZonPx/cKDE00hfoSLc8F7yAcn/d6+rTQ==} + dependencies: + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.23.1) + '@codemirror/language': 6.6.0 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-markdown@6.1.1: + resolution: {integrity: sha512-n87Ms6Y5UYb1UkFu8sRzTLfq/yyF1y2AYiWvaVdbBQi5WDj1tFk5N+AKA+WC0Jcjc1VxvrCCM0iizjdYYi9sFQ==} + dependencies: + '@codemirror/lang-html': 6.4.3 + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': 1.0.2 + '@lezer/markdown': 1.0.2 + dev: false + + /@codemirror/lang-php@6.0.1: + resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} + dependencies: + '@codemirror/lang-html': 6.4.3 + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/common': 1.0.2 + '@lezer/php': 1.0.1 + dev: false + + /@codemirror/lang-python@6.1.2(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1): + resolution: {integrity: sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1) + '@codemirror/language': 6.6.0 + '@lezer/python': 1.1.5 + transitivePeerDependencies: + - '@codemirror/state' + - '@codemirror/view' + - '@lezer/common' + dev: false + + /@codemirror/lang-rust@6.0.1: + resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} + dependencies: + '@codemirror/language': 6.6.0 + '@lezer/rust': 1.0.0 + dev: false + + /@codemirror/lang-sass@6.0.1(@codemirror/view@6.23.1): + resolution: {integrity: sha512-USy9zqtdLYxSuqq0s4peMoQi+BDzyOyO7chUzli+X2xVCjmBhc3CsWQ4kkDU0NYtCHHFQRkcFO8770eaOwZqfw==} + dependencies: + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.23.1) + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/common': 1.0.2 + '@lezer/sass': 1.0.1 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-sql@6.4.1(@codemirror/view@6.23.1)(@lezer/common@1.2.1): + resolution: {integrity: sha512-PFB56L+A0WGY35uRya+Trt5g19V9k2V9X3c55xoFW4RgiATr/yLqWsbbnEsdxuMn5tLpuikp7Kmj9smRsqBXAg==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1) + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + transitivePeerDependencies: + - '@codemirror/view' + - '@lezer/common' + dev: false + + /@codemirror/lang-vue@0.1.1: + resolution: {integrity: sha512-GIfc/MemCFKUdNSYGTFZDN8XsD2z0DUY7DgrK34on0dzdZ/CawZbi+SADYfVzWoPPdxngHzLhqlR5pSOqyPCvA==} + dependencies: + '@codemirror/lang-html': 6.4.3 + '@codemirror/lang-javascript': 6.1.7 + '@codemirror/language': 6.6.0 + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@codemirror/lang-wast@6.0.1: + resolution: {integrity: sha512-sQLsqhRjl2MWG3rxZysX+2XAyed48KhLBHLgq9xcKxIJu3npH/G+BIXW5NM5mHeDUjG0jcGh9BcjP0NfMStuzA==} + dependencies: + '@codemirror/language': 6.6.0 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@codemirror/lang-xml@6.0.2(@codemirror/view@6.23.1): + resolution: {integrity: sha512-JQYZjHL2LAfpiZI2/qZ/qzDuSqmGKMwyApYmEUUCTxLM4MWS7sATUEfIguZQr9Zjx/7gcdnewb039smF6nC2zw==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.23.1)(@lezer/common@1.0.2) + '@codemirror/language': 6.6.0 + '@codemirror/state': 6.2.0 + '@lezer/common': 1.0.2 + '@lezer/xml': 1.0.1 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/language-data@6.3.1(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1): + resolution: {integrity: sha512-p6jhJmvhGe1TG1EGNhwH7nFWWFSTJ8NDKnB2fVx5g3t+PpO0+63R7GJNxjS0TmmH3cdMxZbzejsik+rlEh1EyQ==} + dependencies: + '@codemirror/lang-angular': 0.1.0 + '@codemirror/lang-cpp': 6.0.2 + '@codemirror/lang-css': 6.2.0(@codemirror/view@6.23.1) + '@codemirror/lang-html': 6.4.3 + '@codemirror/lang-java': 6.0.1 + '@codemirror/lang-javascript': 6.1.7 + '@codemirror/lang-json': 6.0.1 + '@codemirror/lang-less': 6.0.1(@codemirror/view@6.23.1) + '@codemirror/lang-markdown': 6.1.1 + '@codemirror/lang-php': 6.0.1 + '@codemirror/lang-python': 6.1.2(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1) + '@codemirror/lang-rust': 6.0.1 + '@codemirror/lang-sass': 6.0.1(@codemirror/view@6.23.1) + '@codemirror/lang-sql': 6.4.1(@codemirror/view@6.23.1)(@lezer/common@1.2.1) + '@codemirror/lang-vue': 0.1.1 + '@codemirror/lang-wast': 6.0.1 + '@codemirror/lang-xml': 6.0.2(@codemirror/view@6.23.1) + '@codemirror/language': 6.6.0 + '@codemirror/legacy-modes': 6.3.2 + transitivePeerDependencies: + - '@codemirror/state' + - '@codemirror/view' + - '@lezer/common' + dev: false + + /@codemirror/language@6.6.0: + resolution: {integrity: sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==} + dependencies: + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + style-mod: 4.0.3 + dev: false + + /@codemirror/legacy-modes@6.3.2: + resolution: {integrity: sha512-ki5sqNKWzKi5AKvpVE6Cna4Q+SgxYuYVLAZFSsMjGBWx5qSVa+D+xipix65GS3f2syTfAD9pXKMX4i4p49eneQ==} + dependencies: + '@codemirror/language': 6.6.0 + dev: false + + /@codemirror/lint@6.2.1: + resolution: {integrity: sha512-y1muai5U/uUPAGRyHMx9mHuHLypPcHWxzlZGknp/U5Mdb5Ol8Q5ZLp67UqyTbNFJJ3unVxZ8iX3g1fMN79S1JQ==} + dependencies: + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + crelt: 1.0.5 + dev: false + + /@codemirror/search@6.4.0: + resolution: {integrity: sha512-zMDgaBXah+nMLK2dHz9GdCnGbQu+oaGRXS1qviqNZkvOCv/whp5XZFyoikLp/23PM9RBcbuKUUISUmQHM1eRHw==} + dependencies: + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + crelt: 1.0.5 + dev: false + + /@codemirror/state@6.2.0: + resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==} + dev: false + + /@codemirror/view@6.10.1: + resolution: {integrity: sha512-Q3FAmkajqcoqBUlfrlD6p58lnuffYxS/6ImIrsLd4SZOZItCBysqAXvQ/OqWxMCyVuDoh5KaNErl9/FDlWM5IA==} + dependencies: + '@codemirror/state': 6.2.0 + style-mod: 4.0.3 + w3c-keyname: 2.2.6 + dev: false + + /@commitlint/cli@17.6.3: + resolution: {integrity: sha512-ItSz2fd4F+CujgIbQOfNNerDF1eFlsBGEfp9QcCb1kxTYMuKTYZzA6Nu1YRRrIaaWwe2E7awUGpIMrPoZkOG3A==, tarball: http://registry.npmjs.org/@commitlint/cli/-/cli-17.6.3.tgz} + engines: {node: '>=v14'} + hasBin: true + dependencies: + '@commitlint/format': 17.4.4 + '@commitlint/lint': 17.6.3 + '@commitlint/load': 17.5.0 + '@commitlint/read': 17.5.1 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/config-conventional@17.6.3: + resolution: {integrity: sha512-bLyHEjjRWqlLQWIgYFHmUPbEFMOOLXeF3QbUinDIJev/u9e769tkoTH9YPknEywiuIrAgZaVo+OfzAIsJP0fsw==, tarball: http://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.6.3.tgz} + engines: {node: '>=v14'} + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + dev: true + + /@commitlint/config-validator@17.4.4: + resolution: {integrity: sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==, tarball: http://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.4.4.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + ajv: 8.12.0 + dev: true + + /@commitlint/ensure@17.4.4: + resolution: {integrity: sha512-AHsFCNh8hbhJiuZ2qHv/m59W/GRE9UeOXbkOqxYMNNg9pJ7qELnFcwj5oYpa6vzTSHtPGKf3C2yUFNy1GGHq6g==, tarball: http://registry.npmjs.org/@commitlint/ensure/-/ensure-17.4.4.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule@17.4.0: + resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==, tarball: http://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz} + engines: {node: '>=v14'} + dev: true + + /@commitlint/format@17.4.4: + resolution: {integrity: sha512-+IS7vpC4Gd/x+uyQPTAt3hXs5NxnkqAZ3aqrHd5Bx/R9skyCAWusNlNbw3InDbAK6j166D9asQM8fnmYIa+CXQ==, tarball: http://registry.npmjs.org/@commitlint/format/-/format-17.4.4.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored@17.6.3: + resolution: {integrity: sha512-LQbNdnPbxrpbcrVKR5yf51SvquqktpyZJwqXx3lUMF6+nT9PHB8xn3wLy8pi2EQv5Zwba484JnUwDE1ygVYNQA==, tarball: http://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.6.3.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + semver: 7.5.0 + dev: true + + /@commitlint/lint@17.6.3: + resolution: {integrity: sha512-fBlXwt6SHJFgm3Tz+luuo3DkydAx9HNC5y4eBqcKuDuMVqHd2ugMNr+bQtx6riv9mXFiPoKp7nE4Xn/ls3iVDA==, tarball: http://registry.npmjs.org/@commitlint/lint/-/lint-17.6.3.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/is-ignored': 17.6.3 + '@commitlint/parse': 17.4.4 + '@commitlint/rules': 17.6.1 + '@commitlint/types': 17.4.4 + dev: true + + /@commitlint/load@17.5.0: + resolution: {integrity: sha512-l+4W8Sx4CD5rYFsrhHH8HP01/8jEP7kKf33Xlx2Uk2out/UKoKPYMOIRcDH5ppT8UXLMV+x6Wm5osdRKKgaD1Q==, tarball: http://registry.npmjs.org/@commitlint/load/-/load-17.5.0.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.4.4 + '@commitlint/execute-rule': 17.4.0 + '@commitlint/resolve-extends': 17.4.4 + '@commitlint/types': 17.4.4 + '@types/node': 18.16.3 + chalk: 4.1.2 + cosmiconfig: 8.1.3 + cosmiconfig-typescript-loader: 4.3.0(@types/node@18.16.3)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@4.9.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.1(@types/node@18.16.3)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + dev: true + + /@commitlint/message@17.4.2: + resolution: {integrity: sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q==, tarball: http://registry.npmjs.org/@commitlint/message/-/message-17.4.2.tgz} + engines: {node: '>=v14'} + dev: true + + /@commitlint/parse@17.4.4: + resolution: {integrity: sha512-EKzz4f49d3/OU0Fplog7nwz/lAfXMaDxtriidyGF9PtR+SRbgv4FhsfF310tKxs6EPj8Y+aWWuX3beN5s+yqGg==, tarball: http://registry.npmjs.org/@commitlint/parse/-/parse-17.4.4.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/types': 17.4.4 + conventional-changelog-angular: 5.0.13 + conventional-commits-parser: 3.2.4 + dev: true + + /@commitlint/read@17.5.1: + resolution: {integrity: sha512-7IhfvEvB//p9aYW09YVclHbdf1u7g7QhxeYW9ZHSO8Huzp8Rz7m05aCO1mFG7G8M+7yfFnXB5xOmG18brqQIBg==, tarball: http://registry.npmjs.org/@commitlint/read/-/read-17.5.1.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/top-level': 17.4.0 + '@commitlint/types': 17.4.4 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@17.4.4: + resolution: {integrity: sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==, tarball: http://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.4.4.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/config-validator': 17.4.4 + '@commitlint/types': 17.4.4 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@17.6.1: + resolution: {integrity: sha512-lUdHw6lYQ1RywExXDdLOKxhpp6857/4c95Dc/1BikrHgdysVUXz26yV0vp1GL7Gv+avx9WqZWTIVB7pNouxlfw==, tarball: http://registry.npmjs.org/@commitlint/rules/-/rules-17.6.1.tgz} + engines: {node: '>=v14'} + dependencies: + '@commitlint/ensure': 17.4.4 + '@commitlint/message': 17.4.2 + '@commitlint/to-lines': 17.4.0 + '@commitlint/types': 17.4.4 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines@17.4.0: + resolution: {integrity: sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg==, tarball: http://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.4.0.tgz} + engines: {node: '>=v14'} + dev: true + + /@commitlint/top-level@17.4.0: + resolution: {integrity: sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g==, tarball: http://registry.npmjs.org/@commitlint/top-level/-/top-level-17.4.0.tgz} + engines: {node: '>=v14'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types@17.4.4: + resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==, tarball: http://registry.npmjs.org/@commitlint/types/-/types-17.4.4.tgz} + engines: {node: '>=v14'} + dependencies: + chalk: 4.1.2 + dev: true + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, tarball: http://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + /@css-render/plugin-bem@0.15.12(css-render@0.15.12): + resolution: {integrity: sha512-Lq2jSOZn+wYQtsyaFj6QRz2EzAnd3iW5fZeHO1WSXQdVYwvwGX0ZiH3X2JQgtgYLT1yeGtrwrqJdNdMEUD2xTw==, tarball: http://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz} + peerDependencies: + css-render: ~0.15.12 + dependencies: + css-render: 0.15.12 + dev: false + + /@css-render/vue3-ssr@0.15.12(vue@3.2.47): + resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==, tarball: http://registry.npmjs.org/@css-render/vue3-ssr/-/vue3-ssr-0.15.12.tgz} + peerDependencies: + vue: ^3.0.11 + dependencies: + vue: 3.2.47 + dev: false + + /@csstools/css-parser-algorithms@2.1.1(@csstools/css-tokenizer@2.1.1): + resolution: {integrity: sha512-viRnRh02AgO4mwIQb2xQNJju0i+Fh9roNgmbR5xEuG7J3TGgxjnE95HnBLgsFJOJOksvcfxOUCgODcft6Y07cA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-tokenizer': ^2.1.1 + dependencies: + '@csstools/css-tokenizer': 2.1.1 + dev: true + + /@csstools/css-tokenizer@2.1.1: + resolution: {integrity: sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==} + engines: {node: ^14 || ^16 || >=18} + dev: true + + /@csstools/media-query-list-parser@2.0.4(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1): + resolution: {integrity: sha512-GyYot6jHgcSDZZ+tLSnrzkR7aJhF2ZW6d+CXH66mjy5WpAQhZD4HDke2OQ36SivGRWlZJpAz7TzbW6OKlEpxAA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.1.1 + '@csstools/css-tokenizer': ^2.1.1 + dependencies: + '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) + '@csstools/css-tokenizer': 2.1.1 + dev: true + + /@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.12): + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.10 + dependencies: + postcss-selector-parser: 6.0.12 + dev: true + + /@ctrl/tinycolor@3.6.0: + resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==} + engines: {node: '>=10'} + dev: false + + /@develar/schema-utils@2.6.5: + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /@dqbd/tiktoken@1.0.7: + resolution: {integrity: sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==} + dev: false + + /@electron/asar@3.2.4: + resolution: {integrity: sha512-lykfY3TJRRWFeTxccEKdf1I6BLl2Plw81H0bbp4Fc5iEc67foDCa5pjJQULVgo0wF+Dli75f3xVcdb/67FFZ/g==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + chromium-pickle-js: 0.2.0 + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /@electron/get@2.0.2: + resolution: {integrity: sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==} + engines: {node: '>=12'} + dependencies: + debug: 4.3.4 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.0 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: registry.npmmirror.com/global-agent@3.0.0 + transitivePeerDependencies: + - supports-color + + /@electron/notarize@1.2.4: + resolution: {integrity: sha512-W5GQhJEosFNafewnS28d3bpQ37/s91CDWqxVchHfmv2dQSTWpOzNlUVQwYzC1ay5bChRV/A9BTL68yj0Pa+TSg==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/osx-sign@1.0.4: + resolution: {integrity: sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + compare-version: 0.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/rebuild@3.2.13: + resolution: {integrity: sha512-DH9Ol4JCnHDYVOD0fKWq+Qqbn/0WU1O6QR0mIpMXEVU4YFM4PlaqNC9K36mGShNBxxGFotZCMDrB1wl/iHM12g==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@malept/cross-spawn-promise': 2.0.0 + chalk: 4.1.2 + debug: 4.3.4 + detect-libc: 2.0.2 + fs-extra: 10.1.0 + got: 11.8.6 + node-abi: 3.45.0 + node-api-version: 0.1.4 + node-gyp: 9.4.0 + ora: 5.4.1 + semver: 7.5.4 + tar: 6.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/remote@2.1.0(electron@25.3.1): + resolution: {integrity: sha512-38jzz2beoYTo0DNS+aoaGyLS/fHeNTAc1Aom6HlYsxKnvVWjcg4xriC7J2IUkYSEDHGKX/D7jUst+mH4dHR6QA==} + peerDependencies: + electron: '>= 13.0.0' + dependencies: + electron: 25.3.1 + dev: false + + /@electron/universal@1.3.4: + resolution: {integrity: sha512-BdhBgm2ZBnYyYRLRgOjM5VHkyFItsbggJ0MHycOjKWdFGYwK97ZFXH54dTvUWEfha81vfvwr5On6XBjt99uDcg==} + engines: {node: '>=8.6'} + dependencies: + '@electron/asar': 3.2.4 + '@malept/cross-spawn-promise': 1.1.1 + debug: 4.3.4 + dir-compare: 3.3.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@element-plus/icons-vue@2.1.0(vue@3.2.47): + resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==} + peerDependencies: + vue: ^3.2.0 + dependencies: + vue: 3.2.47 + dev: false + + /@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, tarball: http://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz} + dev: false + + /@esbuild-kit/cjs-loader@2.4.2: + resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.5.0 + dev: true + + /@esbuild-kit/core-utils@3.1.0: + resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} + dependencies: + esbuild: 0.17.18 + source-map-support: 0.5.21 + dev: true + + /@esbuild-kit/esm-loader@2.5.5: + resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} + dependencies: + '@esbuild-kit/core-utils': 3.1.0 + get-tsconfig: 4.5.0 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, tarball: http://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.39.0 + eslint-visitor-keys: 3.4.0 + + /@eslint-community/regexpp@4.5.1: + resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==, tarball: http://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + /@eslint/eslintrc@2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==, tarball: http://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.5.1 + globals: 13.20.0 + ignore: 5.2.4 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@eslint/js@8.39.0: + resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==, tarball: http://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /@fast-csv/format@4.3.5: + resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==, tarball: http://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz} + dependencies: + '@types/node': 14.18.47 + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + dev: false + + /@fast-csv/parse@4.3.6: + resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==, tarball: http://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz} + dependencies: + '@types/node': 14.18.47 + lodash.escaperegexp: 4.1.2 + lodash.groupby: 4.6.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + lodash.isundefined: 3.0.1 + lodash.uniq: 4.5.0 + dev: false + + /@fidm/asn1@1.0.4: + resolution: {integrity: sha512-esd1jyNvRb2HVaQGq2Gg8Z0kbQPXzV9Tq5Z14KNIov6KfFD6PTaRIO8UpcsYiTNzOqJpmyzWgVTrUwFV3UF4TQ==} + engines: {node: '>= 8'} + dev: false + + /@fidm/x509@1.2.1: + resolution: {integrity: sha512-nwc2iesjyc9hkuzcrMCBXQRn653XuAUKorfWM8PZyJawiy1QzLj4vahwzaI25+pfpwOLvMzbJ0uKpWLDNmo16w==} + engines: {node: '>= 8'} + dependencies: + '@fidm/asn1': 1.0.4 + tweetnacl: 1.0.3 + dev: false + + /@floating-ui/core@1.2.6: + resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==} + dev: false + + /@floating-ui/dom@1.2.7: + resolution: {integrity: sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==} + dependencies: + '@floating-ui/core': 1.2.6 + dev: false + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, tarball: http://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, tarball: http://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} + engines: {node: '>=12.22'} + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, tarball: http://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz} + + /@icon-park/vue-next@1.4.2(vue@3.2.47): + resolution: {integrity: sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==, tarball: http://registry.npmjs.org/@icon-park/vue-next/-/vue-next-1.4.2.tgz} + engines: {node: '>= 8.0.0', npm: '>= 5.0.0'} + peerDependencies: + vue: 3.x + dependencies: + vue: 3.2.47 + dev: false + + /@iconify-json/ep@1.1.10: + resolution: {integrity: sha512-1N3H28hbulsw3UNZjAZ1c7BhK9mLiw8VrngQc58xNQ7dnzaUgtKN81aqkrZ9ffDXcfJGL3Rk9Yc3/QrSSI24sg==} + dependencies: + '@iconify/types': 2.0.0 + dev: true + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, tarball: http://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz} + dev: true + + /@iconify/vue@4.1.1(vue@3.2.47): + resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==, tarball: http://registry.npmjs.org/@iconify/vue/-/vue-4.1.1.tgz} + peerDependencies: + vue: '>=3' + dependencies: + '@iconify/types': 2.0.0 + vue: 3.2.47 + dev: true + + /@intlify/core-base@9.2.2: + resolution: {integrity: sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==, tarball: http://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz} + engines: {node: '>= 14'} + dependencies: + '@intlify/devtools-if': 9.2.2 + '@intlify/message-compiler': 9.2.2 + '@intlify/shared': 9.2.2 + '@intlify/vue-devtools': 9.2.2 + dev: false + + /@intlify/devtools-if@9.2.2: + resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==, tarball: http://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz} + engines: {node: '>= 14'} + dependencies: + '@intlify/shared': 9.2.2 + dev: false + + /@intlify/message-compiler@9.2.2: + resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==, tarball: http://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz} + engines: {node: '>= 14'} + dependencies: + '@intlify/shared': 9.2.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + /@intlify/shared@9.2.2: + resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==, tarball: http://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz} + engines: {node: '>= 14'} + dev: false + + /@intlify/vue-devtools@9.2.2: + resolution: {integrity: sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==, tarball: http://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz} + engines: {node: '>= 14'} + dependencies: + '@intlify/core-base': 9.2.2 + '@intlify/shared': 9.2.2 + dev: false + + /@ioredis/commands@1.2.0: + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==, tarball: http://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz} + dev: false + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: 7.0.1 + strip-ansi-cjs: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: true + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, tarball: http://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, tarball: http://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz} + engines: {node: '>=8'} + dev: true + + /@javascript-obfuscator/escodegen@2.3.0: + resolution: {integrity: sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==, tarball: http://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz} + engines: {node: '>=6.0'} + dependencies: + '@javascript-obfuscator/estraverse': 5.4.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + /@javascript-obfuscator/estraverse@5.4.0: + resolution: {integrity: sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==, tarball: http://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz} + engines: {node: '>=4.0'} + dev: false + + /@jest/console@29.5.0: + resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==, tarball: http://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/node': 18.11.18 + chalk: 4.1.2 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.5.0(ts-node@10.9.1): + resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==, tarball: http://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.5.0 + '@jest/reporters': 29.5.0 + '@jest/test-result': 29.5.0 + '@jest/transform': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.8.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.5.0 + jest-config: 29.5.0(@types/node@18.16.3)(ts-node@10.9.1) + jest-haste-map: 29.5.0 + jest-message-util: 29.5.0 + jest-regex-util: 29.4.3 + jest-resolve: 29.5.0 + jest-resolve-dependencies: 29.5.0 + jest-runner: 29.5.0 + jest-runtime: 29.5.0 + jest-snapshot: 29.5.0 + jest-util: 29.5.0 + jest-validate: 29.5.0 + jest-watcher: 29.5.0 + micromatch: 4.0.5 + pretty-format: 29.5.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /@jest/environment@29.5.0: + resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==, tarball: http://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + jest-mock: 29.5.0 + dev: true + + /@jest/expect-utils@29.5.0: + resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==, tarball: http://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.4.3 + dev: true + + /@jest/expect@29.5.0: + resolution: {integrity: sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==, tarball: http://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.5.0 + jest-snapshot: 29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.5.0: + resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==, tarball: http://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@sinonjs/fake-timers': 10.0.2 + '@types/node': 18.16.3 + jest-message-util: 29.5.0 + jest-mock: 29.5.0 + jest-util: 29.5.0 + dev: true + + /@jest/globals@29.5.0: + resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==, tarball: http://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.5.0 + '@jest/expect': 29.5.0 + '@jest/types': 29.5.0 + jest-mock: 29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.5.0: + resolution: {integrity: sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==, tarball: http://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.5.0 + '@jest/test-result': 29.5.0 + '@jest/transform': 29.5.0 + '@jest/types': 29.5.0 + '@jridgewell/trace-mapping': 0.3.18 + '@types/node': 18.11.18 + chalk: 4.1.2 + collect-v8-coverage: 1.0.1 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.0 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.5 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + jest-worker: 29.5.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@29.4.3: + resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==, tarball: http://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.25.24 + dev: true + + /@jest/source-map@29.4.3: + resolution: {integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==, tarball: http://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + callsites: 3.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + /@jest/test-result@29.5.0: + resolution: {integrity: sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==, tarball: http://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.5.0 + '@jest/types': 29.5.0 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.1 + dev: true + + /@jest/test-sequencer@29.5.0: + resolution: {integrity: sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==, tarball: http://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.5.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-haste-map: 29.5.0 + slash: registry.npmmirror.com/slash@3.0.0 + dev: true + + /@jest/transform@29.5.0: + resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==, tarball: http://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.21.5 + '@jest/types': 29.5.0 + '@jridgewell/trace-mapping': 0.3.18 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-haste-map: 29.5.0 + jest-regex-util: 29.4.3 + jest-util: 29.5.0 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@29.5.0: + resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==, tarball: http://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.16.3 + '@types/yargs': 17.0.24 + chalk: 4.1.2 + dev: true + + /@jimp/bmp@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-0cfBPvugURS7G+60vRBL+penDRst8x40alS5Rhn2nlGsgsBHljFDw7+H4o5r6gldw9nv9PR9JA90Wloy7KMZdQ==, tarball: http://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + bmp-js: 0.1.0 + dev: false + + /@jimp/core@0.22.7: + resolution: {integrity: sha512-lg4z+pw23v2Gp9LWQur0NqYtnmoNWnyN/Or96elhJgeEJskrDGwROdajortHCCOI1xDnUZSirg8sFvStC8BIlg==, tarball: http://registry.npmjs.org/@jimp/core/-/core-0.22.7.tgz} + dependencies: + '@jimp/utils': 0.22.7 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 16.5.4 + isomorphic-fetch: 3.0.0 + mkdirp: 2.1.6 + pixelmatch: 4.0.2 + tinycolor2: 1.6.0 + transitivePeerDependencies: + - encoding + dev: false + + /@jimp/custom@0.22.7: + resolution: {integrity: sha512-n+1+ZVDNumB1E+sL7KdGKAJ6MbgniX1/v/xOEFEQ46WDZ4cRTqP4+tXjHTuHSlOXiANH+K9zD6qgzqmgO6mCVw==, tarball: http://registry.npmjs.org/@jimp/custom/-/custom-0.22.7.tgz} + dependencies: + '@jimp/core': 0.22.7 + transitivePeerDependencies: + - encoding + dev: false + + /@jimp/gif@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-PGZMS8sYFnDcqg+t8IT3RaSJLrqB+3GzhI0hU5D4mmSuJ5UO/6Bdgu8nrwh3uFPxw0ZH6h9ozYk88cz0pKEhLQ==, tarball: http://registry.npmjs.org/@jimp/gif/-/gif-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + gifwrap: 0.9.4 + omggif: 1.0.10 + dev: false + + /@jimp/jpeg@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-ptwWyX/7RPcREy8SpPN/8IlywbwyPXiuXmoHwM6m4iKcyaCmmnfCdZwLNXYliJzFAFLLOWDuOrwO3cZSkH6Czg==, tarball: http://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + jpeg-js: 0.4.4 + dev: false + + /@jimp/plugin-blit@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-8oXcBTSd/sBmTQATrCxQ1ZBER31Lge8vXzWqNCbC3b1ZvRggCcqnDzRRH1+JiI4i+jPRo3Fi6/sdvEUyQ5LY3g==, tarball: http://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-blur@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-M+0I5CKFIpnIQE27j8o8NECBsOFBd4z7C95ydy2UohYopugFq+hSVtMs1D4pQgb0RW1DJPiXD/4PHqb+lzV5mA==, tarball: http://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-circle@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-zfZKKpOhlyiDeFjGW5JB9K4h/kvbdaAJWUEwmKrvvGar67G3j8dKu46AX0MeWRNZ1yk/lfz+JIa7TzKfxEBf6w==, tarball: http://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-color@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-OXro9pdB0twQjV4LgW0bTEXaX1VgBsTBcFoDAs8q9mtQzD5p3UQmJ+ykCiQ5rTPxNN1Buc44tcCIfp8haB1ZVQ==, tarball: http://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + tinycolor2: 1.6.0 + dev: false + + /@jimp/plugin-contain@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7)(@jimp/plugin-resize@0.22.7)(@jimp/plugin-scale@0.22.7): + resolution: {integrity: sha512-GwUxZp4jMA0O0qbknUPDONJAfHFaTRs8kK+jgRtUfgb1Xi96l5RN/PMMDv4owZCUiPVAON80X1BMj7nSQWNVUw==, tarball: http://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-blit': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-scale': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-resize@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-cover@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-crop@0.22.7)(@jimp/plugin-resize@0.22.7)(@jimp/plugin-scale@0.22.7): + resolution: {integrity: sha512-PVXeQyofGepMoJaQ5XapLwCcZfsOF1IoAotHosh8AOP8niCP/Erm8T6ZWf5tf0sMJiLHQMPUyns186H5isqEMQ==, tarball: http://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-crop': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-scale': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-resize@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-crop@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-XXvUU+hPdodtTBSgyUJUnzh7JgKMVlS1GxjcQsjYU8iGr1dbpuazKMTQxc76ChVmy8ue4goi8bGstacWUHpl/Q==, tarball: http://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-displace@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-CCNAkmm2OS4QQtNRfQvXqoAMxNE0maSlVEV5DNdioHOUKycy02EJ5hNYR3l0FG+NraQHOuqv9XV37sGRl6QzMA==, tarball: http://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-dither@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-ndCW5MIGMdh3aBvvgRCO7el9cIPG29kU7xQYlOs5+3JsDk3Vf7X30QGPjzxABOY95qLUNUjf5Qe/p/tqv/vbcw==, tarball: http://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-fisheye@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-boI1QowhZRfb6OF+ZPWtiSJP1GATsTHjd5Oy/lJ+n0L4rp439ZOTB1Elzcgc44O2C1mgZDdybRPQQvYdPF8slA==, tarball: http://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-flip@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-rotate@0.22.7): + resolution: {integrity: sha512-/jkbgtvQPcKadAEV5ZXyoEpSdd7GEvGs/Ya/f48+LNszc+S24u4UXtuP3QPRJ5FHm0Re1t4uztM7xa6IPklAOA==, tarball: http://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-rotate': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7)(@jimp/plugin-crop@0.22.7)(@jimp/plugin-resize@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-gaussian@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-OB1sdnjzq2rfUHmx9Rvi3SJIDbQAgWFgYEw6KhN3TSVOdrJHvwrQkEnwR9PoUzQg992VIpGcVc9Y1s/SOU2oCA==, tarball: http://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-invert@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-dX/TqACJ/M5uXDIEJlVPPwietMD6EWUeA/CV4uvhLz9EMjTgHociJ3TWqGCY/70phhIBLbhLcHUVBL/q65ynfQ==, tarball: http://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-mask@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-rfKHKJLAtJG7qbB4zYAMcQ9ue3CIFRuAJ3xX0lzCxC0fGvCVuXlcxiAEauBxqaTWqiKMnahqpR3/Ah679K2FKQ==, tarball: http://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-normalize@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-t8x2jjKDmvUAZB4Wbeagr4D0BvoVCIWquy94mpglvSZ8ujKLt0aQBl3CBEIbXFAoVqNif+G36NtxPHNsjxIXOg==, tarball: http://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-print@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7): + resolution: {integrity: sha512-kx0+cPeinki1IFg9cJy7LC4uVuOEOa8TIrcERioB6PVgJ7EDzCAfatTKULZ+t4uSs2K/lQF97wPYlbiyxs/Hzg==, tarball: http://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-blit': 0.22.7(@jimp/custom@0.22.7) + '@jimp/utils': 0.22.7 + load-bmfont: 1.4.1 + dev: false + + /@jimp/plugin-resize@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-pg7i0JIYt7x7ag+CoD/yG70Xvwm1sKRfcFjQh954yestiin14uppPgXchAmTBmctecBjLNdsVlqSXbPvU4Jvxw==, tarball: http://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-rotate@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7)(@jimp/plugin-crop@0.22.7)(@jimp/plugin-resize@0.22.7): + resolution: {integrity: sha512-Uh3Gb18IY8uXWk6E1bzMopum2GP+xwohbnMIDE0MSWmLaz7LXrfnvgXFba1uRGgn73CJz8UDS4fC1KIJMuxQZA==, tarball: http://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-blit': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-crop': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-scale@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-resize@0.22.7): + resolution: {integrity: sha512-3uHUrk5Rl6MCxuoJtHTSeJjSHIxHWqOOgmD2caKIvyxds0Zmofu/Fva+N4V/m80E4q4G2RXNsUplFpFGhUM7hw==, tarball: http://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-shadow@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blur@0.22.7)(@jimp/plugin-resize@0.22.7): + resolution: {integrity: sha512-NKEq5VR8U/d0OKf0hxFtrrbMCuNv7by31V+Kwgxb1oTP+j+zZEaww+m3YgEwIwRe7E8/yeDSHa5bJ+CmuyFZjw==, tarball: http://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-blur': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugin-threshold@0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-color@0.22.7)(@jimp/plugin-resize@0.22.7): + resolution: {integrity: sha512-BH4aLwfmnqjRVhdzMIqUns4ycZ6QoHHFR6Qz+X2iSpH5a33xFA4DRbd3Ehtrs4Gk7XiCjWkUyM6wjmH7l/1hNQ==, tarball: http://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-color': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/utils': 0.22.7 + dev: false + + /@jimp/plugins@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-AJmzTG/sa+CDpvle/UE89hjHR85gnRGSwLuQqPbhlY6GFCmC3uqHRJz9O5I8A4zdi9+e8LsBphuTlKV7RbuXOw==, tarball: http://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugin-blit': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-blur': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-circle': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-color': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-contain': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7)(@jimp/plugin-resize@0.22.7)(@jimp/plugin-scale@0.22.7) + '@jimp/plugin-cover': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-crop@0.22.7)(@jimp/plugin-resize@0.22.7)(@jimp/plugin-scale@0.22.7) + '@jimp/plugin-crop': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-displace': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-dither': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-fisheye': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-flip': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-rotate@0.22.7) + '@jimp/plugin-gaussian': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-invert': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-mask': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-normalize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-print': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7) + '@jimp/plugin-resize': 0.22.7(@jimp/custom@0.22.7) + '@jimp/plugin-rotate': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blit@0.22.7)(@jimp/plugin-crop@0.22.7)(@jimp/plugin-resize@0.22.7) + '@jimp/plugin-scale': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-resize@0.22.7) + '@jimp/plugin-shadow': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-blur@0.22.7)(@jimp/plugin-resize@0.22.7) + '@jimp/plugin-threshold': 0.22.7(@jimp/custom@0.22.7)(@jimp/plugin-color@0.22.7)(@jimp/plugin-resize@0.22.7) + timm: 1.7.1 + dev: false + + /@jimp/png@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-LxD3O9FKEwVv+j+HcUV7ez72Miy+823EjhtFZbBYXNp9qjHtHFBpgcSJBftUOCei8OlmmVgULYn9XjyfPsDgGw==, tarball: http://registry.npmjs.org/@jimp/png/-/png-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/utils': 0.22.7 + pngjs: 6.0.0 + dev: false + + /@jimp/tiff@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-/oE8kLumzBfU1Z6h4TrDXYCGQNc4CjbZQvPssjImEqNLr5vbefpIpoy1fVMpsyuHZHsGovsBhBHxTJaRLO4+Og==, tarball: http://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': 0.22.7 + utif2: 4.0.1 + dev: false + + /@jimp/types@0.22.7(@jimp/custom@0.22.7): + resolution: {integrity: sha512-1T8BxwDh5HJvBh3tt6HUd8r7ir5Ge3JWATXC8O3Y9QYwOaERjA2+FVhGSjtoo5xCeJvLRjSzEtfZ8heowMBL4w==, tarball: http://registry.npmjs.org/@jimp/types/-/types-0.22.7.tgz} + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/bmp': 0.22.7(@jimp/custom@0.22.7) + '@jimp/custom': 0.22.7 + '@jimp/gif': 0.22.7(@jimp/custom@0.22.7) + '@jimp/jpeg': 0.22.7(@jimp/custom@0.22.7) + '@jimp/png': 0.22.7(@jimp/custom@0.22.7) + '@jimp/tiff': 0.22.7(@jimp/custom@0.22.7) + timm: 1.7.1 + dev: false + + /@jimp/utils@0.22.7: + resolution: {integrity: sha512-4ax4IOWLIERx4yz9y3fNXKvQaPOY23yJF5h4sizxVkQUObkZHWE0kL0TVHodBt3rS8ksdbCL8Jkz4GeNP/Katg==, tarball: http://registry.npmjs.org/@jimp/utils/-/utils-0.22.7.tgz} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@jonkemp/package-utils@1.0.8: + resolution: {integrity: sha512-bIcKnH5YmtTYr7S6J3J86dn/rFiklwRpOqbTOQ9C0WMmR9FKHVb3bxs2UYfqEmNb93O4nbA97sb6rtz33i9SyA==, tarball: http://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.8.tgz} + dev: false + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.3: + resolution: {integrity: sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==, tarball: http://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@jsdevtools/ez-spawn@3.0.4: + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.3 + string-argv: 0.3.2 + type-detect: 4.0.8 + dev: true + + /@keyv/redis@2.6.1: + resolution: {integrity: sha512-s0L2DRZoa3eahIf/I/mhG6bpb90JFKVnpd1iVlhBOr6PxsqvCyPU99BhZKRAkMThnoJZRewI7sO9G/bYjQ+B6Q==, tarball: http://registry.npmjs.org/@keyv/redis/-/redis-2.6.1.tgz} + engines: {node: '>= 14'} + dependencies: + ioredis: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@lezer/common@1.0.2: + resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} + dev: false + + /@lezer/cpp@1.1.0: + resolution: {integrity: sha512-zUHrjNFuY/DOZCkOBJ6qItQIkcopHM/Zv/QOE0a4XNG3HDNahxTNu5fQYl8dIuKCpxCqRdMl5cEwl5zekFc7BA==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/css@1.1.1: + resolution: {integrity: sha512-mSjx+unLLapEqdOYDejnGBokB5+AiJKZVclmud0MKQOKx3DLJ5b5VTCstgDDknR6iIV4gVrN6euzsCnj0A2gQA==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/highlight@1.1.4: + resolution: {integrity: sha512-IECkFmw2l7sFcYXrV8iT9GeY4W0fU4CxX0WMwhmhMIVjoDdD1Hr6q3G2NqVtLg/yVe5n7i4menG3tJ2r4eCrPQ==} + dependencies: + '@lezer/common': 1.0.2 + dev: false + + /@lezer/html@1.3.4: + resolution: {integrity: sha512-HdJYMVZcT4YsMo7lW3ipL4NoyS2T67kMPuSVS5TgLGqmaCjEU/D6xv7zsa1ktvTK5lwk7zzF1e3eU6gBZIPm5g==} + dependencies: + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/java@1.0.3: + resolution: {integrity: sha512-kKN17wmgP1cgHb8juR4pwVSPMKkDMzY/lAPbBsZ1fpXwbk2sg3N1kIrf0q+LefxgrANaQb/eNO7+m2QPruTFng==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/javascript@1.4.3: + resolution: {integrity: sha512-k7Eo9z9B1supZ5cCD4ilQv/RZVN30eUQL+gGbr6ybrEY3avBAL5MDiYi2aa23Aj0A79ry4rJRvPAwE2TM8bd+A==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/json@1.0.0: + resolution: {integrity: sha512-zbAuUY09RBzCoCA3lJ1+ypKw5WSNvLqGMtasdW6HvVOqZoCpPr8eWrsGnOVWGKGn8Rh21FnrKRVlJXrGAVUqRw==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/lr@1.3.4: + resolution: {integrity: sha512-7o+e4og/QoC/6btozDPJqnzBhUaD1fMfmvnEKQO1wRRiTse1WxaJ3OMEXZJnkgT6HCcTVOctSoXK9jGJw2oe9g==} + dependencies: + '@lezer/common': 1.0.2 + dev: false + + /@lezer/markdown@1.0.2: + resolution: {integrity: sha512-8CY0OoZ6V5EzPjSPeJ4KLVbtXdLBd8V6sRCooN5kHnO28ytreEGTyrtU/zUwo/XLRzGr/e1g44KlzKi3yWGB5A==} + dependencies: + '@lezer/common': 1.0.2 + '@lezer/highlight': 1.1.4 + dev: false + + /@lezer/php@1.0.1: + resolution: {integrity: sha512-aqdCQJOXJ66De22vzdwnuC502hIaG9EnPK2rSi+ebXyUd+j7GAX1mRjWZOVOmf3GST1YUfUCu6WXDiEgDGOVwA==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/python@1.1.5: + resolution: {integrity: sha512-h0DVr6IfrmKUbTc5PeetaC87IZYoHyn5JogsVYW5mRDpVRyEsvaLBMLyEN4Ufc2BKp1c9y2Pkr8ZNLxS8dTLsQ==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/rust@1.0.0: + resolution: {integrity: sha512-IpGAxIjNxYmX9ra6GfQTSPegdCAWNeq23WNmrsMMQI7YNSvKtYxO4TX5rgZUmbhEucWn0KTBMeDEPXg99YKtTA==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/sass@1.0.1: + resolution: {integrity: sha512-S/aYAzABzMqWLfKKqV89pCWME4yjZYC6xzD02l44wbmb0sHxmN9/8aE4GULrKFzFaGazHdXcGEbPZ4zzB6yqwQ==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lezer/xml@1.0.1: + resolution: {integrity: sha512-jMDXrV953sDAUEMI25VNrI9dz94Ai96FfeglytFINhhwQ867HKlCE2jt3AwZTCT7M528WxdDWv/Ty8e9wizwmQ==} + dependencies: + '@lezer/highlight': 1.1.4 + '@lezer/lr': 1.3.4 + dev: false + + /@lukeed/csprng@1.1.0: + resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==, tarball: http://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz} + engines: {node: '>=8'} + + /@malept/cross-spawn-promise@1.1.1: + resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} + engines: {node: '>= 10'} + dependencies: + cross-spawn: 7.0.3 + dev: true + + /@malept/cross-spawn-promise@2.0.0: + resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} + engines: {node: '>= 12.13.0'} + dependencies: + cross-spawn: 7.0.3 + dev: true + + /@malept/flatpak-bundler@0.4.0: + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@nestjs-modules/mailer@1.8.1(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(nodemailer@6.9.1): + resolution: {integrity: sha512-rNlKzNB+Vr/aRDVcTibj2JCJQcTSE59EBQIpCwh/FkKg0Be1xoF3dQDZ4dmc9X1j396fkIBI5aQ5XAtJNPdxpw==, tarball: http://registry.npmjs.org/@nestjs-modules/mailer/-/mailer-1.8.1.tgz} + peerDependencies: + '@nestjs/common': ^7.0.9 || ^8.0.0 || ^9.0.0 + '@nestjs/core': ^7.0.9 || ^8.0.0 || ^9.0.0 + nodemailer: ^6.4.6 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + glob: 8.0.3 + inline-css: 4.0.1 + mjml: 4.14.1 + nodemailer: 6.9.1 + preview-email: 3.0.5 + optionalDependencies: + '@types/ejs': registry.npmmirror.com/@types/ejs@3.1.5 + '@types/pug': registry.npmmirror.com/@types/pug@2.0.6 + ejs: registry.npmmirror.com/ejs@3.1.9 + handlebars: registry.npmmirror.com/handlebars@4.7.8 + pug: registry.npmmirror.com/pug@3.0.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /@nestjs/bull-shared@0.1.3(@nestjs/common@9.4.0)(@nestjs/core@9.4.0): + resolution: {integrity: sha512-K0a1ERpnl/ZnTmm0UtYSSClDlDkQwNNwJYM6PogzpeflD64oqwVIn8Pj8rdS+BOYUxqdDy55q3p67ytO5oaVDA==, tarball: http://registry.npmjs.org/@nestjs/bull-shared/-/bull-shared-0.1.3.tgz} + peerDependencies: + '@nestjs/common': ^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0 + '@nestjs/core': ^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + tslib: 2.5.0 + dev: false + + /@nestjs/bull@0.6.3(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(bull@4.10.4): + resolution: {integrity: sha512-CckH9O3t9qSiO4RCzdYvtFSaaMfIhTXMYagV/rtmVvI1SX5XNnxEaQXvtjxDBXF9DB1JE/5AejIl6ICym+MJIw==, tarball: http://registry.npmjs.org/@nestjs/bull/-/bull-0.6.3.tgz} + peerDependencies: + '@nestjs/common': ^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0 + '@nestjs/core': ^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0 + bull: ^3.3 || ^4.0.0 + dependencies: + '@nestjs/bull-shared': 0.1.3(@nestjs/common@9.4.0)(@nestjs/core@9.4.0) + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + bull: 4.10.4 + tslib: 2.5.0 + dev: false + + /@nestjs/cli@9.4.2: + resolution: {integrity: sha512-QWpk3UkpcAIvlqh2sSc6atHyaNFl7POi45Ujd5sAtVNogzpGphOlSyh39XuJcpe0FP3Z9IxX/0AUHF7KL/VyJQ==, tarball: http://registry.npmjs.org/@nestjs/cli/-/cli-9.4.2.tgz} + engines: {node: '>= 12.9.0'} + hasBin: true + dependencies: + '@angular-devkit/core': 15.2.6(chokidar@3.5.3) + '@angular-devkit/schematics': 15.2.6(chokidar@3.5.3) + '@angular-devkit/schematics-cli': 15.2.6(chokidar@3.5.3) + '@nestjs/schematics': 9.1.0(chokidar@3.5.3)(typescript@4.9.5) + chalk: 4.1.2 + chokidar: 3.5.3 + cli-table3: 0.6.3 + commander: 4.1.1 + fork-ts-checker-webpack-plugin: 8.0.0(typescript@4.9.5)(webpack@5.80.0) + inquirer: 8.2.5 + node-emoji: 1.11.0 + ora: 5.4.1 + os-name: 4.0.1 + rimraf: 4.4.1 + shelljs: 0.8.5 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + tsconfig-paths: 4.2.0 + tsconfig-paths-webpack-plugin: 4.0.1 + typescript: 4.9.5 + webpack: 5.80.0 + webpack-node-externals: 3.0.0 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + - webpack-cli + dev: true + + /@nestjs/common@7.6.18(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@6.6.7): + resolution: {integrity: sha512-BUJQHNhWzwWOkS4Ryndzd4HTeRObcAWV2Fh+ermyo3q3xYQQzNoEWclJVL/wZec8AONELwIJ+PSpWI53VP0leg==, tarball: http://registry.npmjs.org/@nestjs/common/-/common-7.6.18.tgz} + peerDependencies: + cache-manager: '*' + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + rxjs: ^6.0.0 + peerDependenciesMeta: + cache-manager: + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + axios: 0.21.1 + class-transformer: 0.5.1 + class-validator: 0.14.0 + iterare: 1.2.1 + reflect-metadata: 0.1.13 + rxjs: 6.6.7 + tslib: 2.2.0 + uuid: 8.3.2 + transitivePeerDependencies: + - debug + dev: false + + /@nestjs/common@9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + resolution: {integrity: sha512-RUcVAQsEF4WPrmzFXEOUfZnPwrLTe1UVlzXTlSyfqfqbdWDPKDGlIPVelBLfc5/+RRUQ0I5iE4+CQvpCmkqldw==, tarball: http://registry.npmjs.org/@nestjs/common/-/common-9.4.0.tgz} + peerDependencies: + cache-manager: <=5 + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + cache-manager: + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + class-transformer: 0.5.1 + class-validator: 0.14.0 + iterare: 1.2.1 + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + tslib: 2.5.0 + uid: 2.0.2 + + /@nestjs/core@7.6.18(@nestjs/common@7.6.18)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@6.6.7): + resolution: {integrity: sha512-CGu20OjIxgFDY7RJT5t1TDGL8wSlTSlbZEkn8U5OlICZEB3WIpi98G7ajJpnRWmEgW8S4aDJmRKGjT+Ntj5U4A==, tarball: http://registry.npmjs.org/@nestjs/core/-/core-7.6.18.tgz} + requiresBuild: true + peerDependencies: + '@nestjs/common': ^7.0.0 + '@nestjs/microservices': ^7.0.0 + '@nestjs/platform-express': ^7.0.0 + '@nestjs/websockets': ^7.0.0 + reflect-metadata: ^0.1.12 + rxjs: ^6.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + dependencies: + '@nestjs/common': 7.6.18(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@6.6.7) + '@nestjs/platform-express': 9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0) + '@nuxtjs/opencollective': 0.3.2 + fast-safe-stringify: 2.0.7 + iterare: 1.2.1 + object-hash: 2.1.1 + path-to-regexp: 3.2.0 + reflect-metadata: 0.1.13 + rxjs: 6.6.7 + tslib: 2.2.0 + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + dev: false + + /@nestjs/core@9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + resolution: {integrity: sha512-yTLryCgFD0462wPe4HIzhyTcDgibt8Stfwb5YzcX7Ma0NM4m8uBIpcPG109KBubp8ZmV85e5mw4rl20qLQQVsQ==, tarball: http://registry.npmjs.org/@nestjs/core/-/core-9.4.0.tgz} + requiresBuild: true + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/microservices': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + '@nestjs/websockets': ^9.0.0 + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/platform-express': 9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0) + '@nuxtjs/opencollective': 0.3.2 + fast-safe-stringify: 2.1.1 + iterare: 1.2.1 + path-to-regexp: 3.2.0 + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + tslib: 2.5.0 + uid: 2.0.2 + transitivePeerDependencies: + - encoding + + /@nestjs/jwt@10.0.3(@nestjs/common@9.4.0): + resolution: {integrity: sha512-WO8MI3uEMOFKpbO+SAg6l4aRCr+9KvaL+raFMZaXuEUDphXek6pqdox+4tex9242pNSJUA0trfAMaiy/yVrXQg==, tarball: http://registry.npmjs.org/@nestjs/jwt/-/jwt-10.0.3.tgz} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@types/jsonwebtoken': 9.0.1 + jsonwebtoken: 9.0.0 + dev: false + + /@nestjs/mapped-types@1.2.2(@nestjs/common@9.4.0)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-3dHxLXs3M0GPiriAcCFFJQHoDFUuzTD5w6JDhE7TyfT89YKpe6tcCCIqOZWdXmt9AZjjK30RkHRSFF+QEnWFQg==, tarball: http://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-1.2.2.tgz} + peerDependencies: + '@nestjs/common': ^7.0.8 || ^8.0.0 || ^9.0.0 + class-transformer: ^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0 + class-validator: ^0.11.1 || ^0.12.0 || ^0.13.0 || ^0.14.0 + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + class-transformer: 0.5.1 + class-validator: 0.14.0 + reflect-metadata: 0.1.13 + dev: false + + /@nestjs/passport@9.0.3(@nestjs/common@9.4.0)(passport@0.6.0): + resolution: {integrity: sha512-HplSJaimEAz1IOZEu+pdJHHJhQyBOPAYWXYHfAPQvRqWtw4FJF1VXl1Qtk9dcXQX1eKytDtH+qBzNQc19GWNEg==, tarball: http://registry.npmjs.org/@nestjs/passport/-/passport-9.0.3.tgz} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + passport: ^0.4.0 || ^0.5.0 || ^0.6.0 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + passport: 0.6.0 + dev: false + + /@nestjs/platform-express@9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0): + resolution: {integrity: sha512-PpnfghpNq7mwG43z3+pacHulsabUCBMla4nUikntXT525ORpZSDvh/nLi1HLfE4w5+FcINc8/RBOyYTeRVmiRQ==, tarball: http://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.4.0.tgz} + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + body-parser: 1.20.2 + cors: 2.8.5 + express: 4.18.2 + multer: 1.4.4-lts.1 + tslib: 2.5.0 + transitivePeerDependencies: + - supports-color + + /@nestjs/schedule@2.2.2(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-e9z1bbFwi4QsPkR2ix72OABhBlfRQcl4ZjF8LShlefOskR4ySN4rUzJilH+1rk8vORYDyGDurVdeduPyyfSQRg==, tarball: http://registry.npmjs.org/@nestjs/schedule/-/schedule-2.2.2.tgz} + peerDependencies: + '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 + '@nestjs/core': ^7.0.0 || ^8.0.0 || ^9.0.0 + reflect-metadata: ^0.1.12 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + cron: 2.3.0 + reflect-metadata: 0.1.13 + uuid: 9.0.0 + dev: false + + /@nestjs/schematics@9.1.0(chokidar@3.5.3)(typescript@4.9.5): + resolution: {integrity: sha512-/7CyMTnPJSK9/xD9CkCqwuHPOlHVlLC2RDnbdCJ7mIO07SdbBbY14msTqtYW9VRQtsjZPLh1GTChf7ryJUImwA==, tarball: http://registry.npmjs.org/@nestjs/schematics/-/schematics-9.1.0.tgz} + peerDependencies: + typescript: '>=4.3.5' + dependencies: + '@angular-devkit/core': 15.2.4(chokidar@3.5.3) + '@angular-devkit/schematics': 15.2.4(chokidar@3.5.3) + jsonc-parser: 3.2.0 + pluralize: 8.0.0 + typescript: 4.9.5 + transitivePeerDependencies: + - chokidar + dev: true + + /@nestjs/serve-static@4.0.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(express@4.18.2): + resolution: {integrity: sha512-8cTrNV2ngdHIjiLNsXePnw0+KY1ThrZGz/WeyAG5gIvmZNDbnZBOrPoYlKL+MOzlXlQStxR5jKLYmn+nJeoncQ==} + peerDependencies: + '@fastify/static': ^6.5.0 + '@nestjs/common': ^9.0.0 || ^10.0.0 + '@nestjs/core': ^9.0.0 || ^10.0.0 + express: ^4.18.1 + fastify: ^4.7.0 + peerDependenciesMeta: + '@fastify/static': + optional: true + express: + optional: true + fastify: + optional: true + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + express: 4.18.2 + path-to-regexp: 0.2.5 + dev: false + + /@nestjs/swagger@6.3.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-Gnig189oa1tD+h0BYIfUwhp/wvvmTn6iO3csR2E4rQrDTgCxSxZDlNdfZo3AC+Rmf8u0KX4ZAX1RZN1qXTtC7A==, tarball: http://registry.npmjs.org/@nestjs/swagger/-/swagger-6.3.0.tgz} + peerDependencies: + '@fastify/static': ^6.0.0 + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + '@fastify/static': + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/mapped-types': 1.2.2(@nestjs/common@9.4.0)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13) + class-transformer: 0.5.1 + class-validator: 0.14.0 + js-yaml: 4.1.0 + lodash: 4.17.21 + path-to-regexp: 3.2.0 + reflect-metadata: 0.1.13 + swagger-ui-dist: 4.18.2 + dev: false + + /@nestjs/testing@9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(@nestjs/platform-express@9.4.0): + resolution: {integrity: sha512-xZWp363P4otcebg++gSjUcdCfTK0RorORzyFq3aLaSAQOlq8kxfFDRIKzEATR4aOUfqTMMsAA8lhnMJWf35N6A==, tarball: http://registry.npmjs.org/@nestjs/testing/-/testing-9.4.0.tgz} + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + '@nestjs/microservices': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/platform-express': 9.4.0(@nestjs/common@9.4.0)(@nestjs/core@9.4.0) + tslib: 2.5.0 + dev: true + + /@nestjs/typeorm@9.0.1(@nestjs/common@9.4.0)(@nestjs/core@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)(typeorm@0.3.15): + resolution: {integrity: sha512-A2BgLIPsMtmMI0bPKEf4bmzgFPsnvHqNBx3KkvaJ7hJrBQy0OqYOb+Rr06ifblKWDWS2tUPNrAFQbZjtk3PI+g==, tarball: http://registry.npmjs.org/@nestjs/typeorm/-/typeorm-9.0.1.tgz} + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + '@nestjs/core': ^8.0.0 || ^9.0.0 + reflect-metadata: ^0.1.13 + rxjs: ^7.2.0 + typeorm: ^0.3.0 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 9.4.0(@nestjs/common@9.4.0)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + typeorm: 0.3.15(ioredis@5.3.2)(mysql2@3.2.4)(redis@4.6.6)(ts-node@10.9.1) + uuid: 8.3.2 + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + /@npmcli/fs@3.1.0: + resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + semver: 7.5.4 + dev: true + + /@nuxtjs/opencollective@0.3.2: + resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==, tarball: http://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + consola: 2.15.3 + node-fetch: 2.6.9 + transitivePeerDependencies: + - encoding + + /@redis/bloom@1.2.0(@redis/client@1.5.7): + resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==, tarball: http://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.7 + dev: false + + /@redis/client@1.5.7: + resolution: {integrity: sha512-gaOBOuJPjK5fGtxSseaKgSvjiZXQCdLlGg9WYQst+/GRUjmXaiB5kVkeQMRtPc7Q2t93XZcJfBMSwzs/XS9UZw==, tarball: http://registry.npmjs.org/@redis/client/-/client-1.5.7.tgz} + engines: {node: '>=14'} + dependencies: + cluster-key-slot: 1.1.2 + generic-pool: 3.9.0 + yallist: 4.0.0 + dev: false + + /@redis/graph@1.1.0(@redis/client@1.5.7): + resolution: {integrity: sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==, tarball: http://registry.npmjs.org/@redis/graph/-/graph-1.1.0.tgz} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.7 + dev: false + + /@redis/json@1.0.4(@redis/client@1.5.7): + resolution: {integrity: sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==, tarball: http://registry.npmjs.org/@redis/json/-/json-1.0.4.tgz} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.7 + dev: false + + /@redis/search@1.1.2(@redis/client@1.5.7): + resolution: {integrity: sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA==, tarball: http://registry.npmjs.org/@redis/search/-/search-1.1.2.tgz} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.7 + dev: false + + /@redis/time-series@1.0.4(@redis/client@1.5.7): + resolution: {integrity: sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==, tarball: http://registry.npmjs.org/@redis/time-series/-/time-series-1.0.4.tgz} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.7 + dev: false + + /@rollup/plugin-replace@5.0.2(rollup@3.21.3): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==, tarball: http://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-5.0.2.tgz} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.21.3) + magic-string: 0.27.0 + rollup: 3.21.3 + dev: true + + /@rollup/pluginutils@5.0.2: + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.0.5(rollup@3.21.3): + resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.21.3 + dev: true + + /@selderee/plugin-htmlparser2@0.10.0: + resolution: {integrity: sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA==, tarball: http://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz} + dependencies: + domhandler: 5.0.3 + selderee: 0.10.0 + dev: false + + /@sinclair/typebox@0.25.24: + resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==, tarball: http://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz} + dev: true + + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + /@sinonjs/commons@2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==, tarball: http://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.0.2: + resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==, tarball: http://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz} + dependencies: + '@sinonjs/commons': 2.0.0 + dev: true + + /@sqltools/formatter@1.2.5: + resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==, tarball: http://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz} + dev: false + + /@szmarczak/http-timer@4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + + /@tokenizer/token@0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==, tarball: http://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz} + dev: false + + /@tootallnate/once@1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, tarball: http://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz} + engines: {node: '>= 6'} + dev: false + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@traptitech/markdown-it-katex@3.6.0: + resolution: {integrity: sha512-CnJzTWxsgLGXFdSrWRaGz7GZ1kUUi8g3E9HzJmeveX1YwVJavrKYqysktfHZQsujdnRqV5O7g8FPKEA/aeTkOQ==, tarball: http://registry.npmjs.org/@traptitech/markdown-it-katex/-/markdown-it-katex-3.6.0.tgz} + dependencies: + katex: 0.16.7 + dev: false + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, tarball: http://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz} + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, tarball: http://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz} + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, tarball: http://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz} + + /@tsconfig/node16@1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==, tarball: http://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz} + + /@types/babel__core@7.20.0: + resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==, tarball: http://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz} + dependencies: + '@babel/parser': 7.21.5 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + '@types/babel__generator': 7.6.4 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.18.5 + dev: true + + /@types/babel__generator@7.6.4: + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==, tarball: http://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + /@types/babel__template@7.4.1: + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==, tarball: http://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz} + dependencies: + '@babel/parser': 7.21.5 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + /@types/babel__traverse@7.18.5: + resolution: {integrity: sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==, tarball: http://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.5.tgz} + dependencies: + '@babel/types': 7.21.5 + dev: true + + /@types/body-parser@1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==, tarball: http://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz} + dependencies: + '@types/connect': 3.4.35 + '@types/node': 18.16.3 + dev: true + + /@types/cache-manager-redis-store@2.0.1: + resolution: {integrity: sha512-8QuccvcPieh1xM/5kReE76SfdcIdEB0ePc+54ah/NBuK2eG+6O50SX4WKoJX81UxGdW3sh/WlDaDNqjnqxWNsA==, tarball: http://registry.npmjs.org/@types/cache-manager-redis-store/-/cache-manager-redis-store-2.0.1.tgz} + dependencies: + '@types/cache-manager': 4.0.2 + '@types/redis': 2.8.32 + dev: false + + /@types/cache-manager@4.0.2: + resolution: {integrity: sha512-fT5FMdzsiSX0AbgnS5gDvHl2Nco0h5zYyjwDQy4yPC7Ww6DeGMVKPRqIZtg9HOXDV2kkc18SL1B0N8f0BecrCA==, tarball: http://registry.npmjs.org/@types/cache-manager/-/cache-manager-4.0.2.tgz} + dev: false + + /@types/cacheable-request@6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.4 + '@types/node': 18.16.3 + '@types/responselike': 1.0.0 + + /@types/connect@3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, tarball: http://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz} + dependencies: + '@types/node': 18.11.18 + dev: true + + /@types/cookiejar@2.1.2: + resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==, tarball: http://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.2.tgz} + dev: true + + /@types/crypto-js@4.1.1: + resolution: {integrity: sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==, tarball: http://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz} + dev: true + + /@types/d3-array@2.12.4: + resolution: {integrity: sha512-w8eN6MT6R4si/C7XCr/No07PoYp2KZmewfznKPvZLbB1yWMASCZyU6rd0zhtiuhJGaQeRiQj5ucKRvOjFsCOUw==, tarball: http://registry.npmjs.org/@types/d3-array/-/d3-array-2.12.4.tgz} + dev: false + + /@types/d3-axis@2.1.3: + resolution: {integrity: sha512-QjXjwZ0xzyrW2ndkmkb09ErgWDEYtbLBKGui73QLMFm3woqWpxptfD5Y7vqQdybMcu7WEbjZ5q+w2w5+uh2IjA==, tarball: http://registry.npmjs.org/@types/d3-axis/-/d3-axis-2.1.3.tgz} + dependencies: + '@types/d3-selection': 2.0.1 + dev: false + + /@types/d3-brush@2.1.2: + resolution: {integrity: sha512-DnZmjdK1ycX1CMiW9r5E3xSf1tL+bp3yob1ON8bf0xB0/odfmGXeYOTafU+2SmU1F0/dvcqaO4SMjw62onOu6A==, tarball: http://registry.npmjs.org/@types/d3-brush/-/d3-brush-2.1.2.tgz} + dependencies: + '@types/d3-selection': 2.0.1 + dev: false + + /@types/d3-chord@2.0.3: + resolution: {integrity: sha512-koIqSNQLPRQPXt7c55hgRF6Lr9Ps72r1+Biv55jdYR+SHJ463MsB2lp4ktzttFNmrQw/9yWthf/OmSUj5dNXKw==, tarball: http://registry.npmjs.org/@types/d3-chord/-/d3-chord-2.0.3.tgz} + dev: false + + /@types/d3-color@2.0.3: + resolution: {integrity: sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w==, tarball: http://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.3.tgz} + dev: false + + /@types/d3-contour@2.0.4: + resolution: {integrity: sha512-WMac1xV/mXAgkgr5dUvzsBV5OrgNZDBDpJk9s3v2SadTqGgDRirKABb2Ek2H1pFlYVH4Oly9XJGnuzxKDduqWA==, tarball: http://registry.npmjs.org/@types/d3-contour/-/d3-contour-2.0.4.tgz} + dependencies: + '@types/d3-array': 2.12.4 + '@types/geojson': 7946.0.10 + dev: false + + /@types/d3-delaunay@5.3.1: + resolution: {integrity: sha512-F6itHi2DxdatHil1rJ2yEFUNhejj8+0Acd55LZ6Ggwbdoks0+DxVY2cawNj16sjCBiWvubVlh6eBMVsYRNGLew==, tarball: http://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-5.3.1.tgz} + dev: false + + /@types/d3-dispatch@2.0.1: + resolution: {integrity: sha512-eT2K8uG3rXkmRiCpPn0rNrekuSLdBfV83vbTvfZliA5K7dbeaqWS/CBHtJ9SQoF8aDTsWSY4A0RU67U/HcKdJQ==, tarball: http://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-2.0.1.tgz} + dev: false + + /@types/d3-drag@2.0.2: + resolution: {integrity: sha512-m9USoFaTgVw2mmE7vLjWTApT9dMxMlql/dl3Gj503x+1a2n6K455iDWydqy2dfCpkUBCoF82yRGDgcSk9FUEyQ==, tarball: http://registry.npmjs.org/@types/d3-drag/-/d3-drag-2.0.2.tgz} + dependencies: + '@types/d3-selection': 2.0.1 + dev: false + + /@types/d3-dsv@2.0.3: + resolution: {integrity: sha512-15sp4Z+ZVWuZuV0QEDu4cu/0C5vlD+JYXaUMDs8JTWpTJjcrAtjyR1vVwEfbgmU5kLNOOMRTlDCYyWWFx7eh/w==, tarball: http://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-2.0.3.tgz} + dev: false + + /@types/d3-ease@2.0.2: + resolution: {integrity: sha512-29Y73Tg6o6aL+3/S/kEun84m5BO4bjRNau6pMWv9N9rZHcJv/O/07mW6EjqxrePZZS64fj0wiB5LMHr4Jzf3eQ==, tarball: http://registry.npmjs.org/@types/d3-ease/-/d3-ease-2.0.2.tgz} + dev: false + + /@types/d3-fetch@2.0.2: + resolution: {integrity: sha512-sllsCSWrNdSvzOJWN5RnxkmtvW9pCttONGajSxHX9FUQ9kOkGE391xlz6VDBdZxLnpwjp3I+mipbwsaCjq4m5A==, tarball: http://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-2.0.2.tgz} + dependencies: + '@types/d3-dsv': 2.0.3 + dev: false + + /@types/d3-force@2.1.4: + resolution: {integrity: sha512-1XVRc2QbeUSL1FRVE53Irdz7jY+drTwESHIMVirCwkAAMB/yVC8ezAfx/1Alq0t0uOnphoyhRle1ht5CuPgSJQ==, tarball: http://registry.npmjs.org/@types/d3-force/-/d3-force-2.1.4.tgz} + dev: false + + /@types/d3-format@2.0.2: + resolution: {integrity: sha512-OhQPuTeeMhD9A0Ksqo4q1S9Z1Q57O/t4tTPBxBQxRB4IERnxeoEYLPe72fA/GYpPSUrfKZVOgLHidkxwbzLdJA==, tarball: http://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.2.tgz} + dev: false + + /@types/d3-geo@2.0.4: + resolution: {integrity: sha512-kP0LcPVN6P/42hmFt0kZm93YTscfawZo6tioL9y0Ya2l5rxaGoYrIG4zee+yJoK9cLTOc8E8S5ExqTEYVwjIkw==, tarball: http://registry.npmjs.org/@types/d3-geo/-/d3-geo-2.0.4.tgz} + dependencies: + '@types/geojson': 7946.0.10 + dev: false + + /@types/d3-hierarchy@2.0.2: + resolution: {integrity: sha512-6PlBRwbjUPPt0ZFq/HTUyOAdOF3p73EUYots74lHMUyAVtdFSOS/hAeNXtEIM9i7qRDntuIblXxHGUMb9MuNRA==, tarball: http://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-2.0.2.tgz} + dev: false + + /@types/d3-interpolate@2.0.2: + resolution: {integrity: sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw==, tarball: http://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz} + dependencies: + '@types/d3-color': 2.0.3 + dev: false + + /@types/d3-path@2.0.2: + resolution: {integrity: sha512-3YHpvDw9LzONaJzejXLOwZ3LqwwkoXb9LI2YN7Hbd6pkGo5nIlJ09ul4bQhBN4hQZJKmUpX8HkVqbzgUKY48cg==, tarball: http://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.2.tgz} + dev: false + + /@types/d3-polygon@2.0.1: + resolution: {integrity: sha512-X3XTIwBxlzRIWe4yaD1KsmcfItjSPLTGL04QDyP08jyHDVsnz3+NZJMwtD4vCaTAVpGSjbqS+jrBo8cO2V/xMA==, tarball: http://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-2.0.1.tgz} + dev: false + + /@types/d3-quadtree@2.0.2: + resolution: {integrity: sha512-KgWL4jlz8QJJZX01E4HKXJ9FLU94RTuObsAYqsPp8YOAcYDmEgJIQJ+ojZcnKUAnrUb78ik8JBKWas5XZPqJnQ==, tarball: http://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-2.0.2.tgz} + dev: false + + /@types/d3-random@2.2.1: + resolution: {integrity: sha512-5vvxn6//poNeOxt1ZwC7QU//dG9QqABjy1T7fP/xmFHY95GnaOw3yABf29hiu5SR1Oo34XcpyHFbzod+vemQjA==, tarball: http://registry.npmjs.org/@types/d3-random/-/d3-random-2.2.1.tgz} + dev: false + + /@types/d3-scale-chromatic@2.0.1: + resolution: {integrity: sha512-3EuZlbPu+pvclZcb1DhlymTWT2W+lYsRKBjvkH2ojDbCWDYavifqu1vYX9WGzlPgCgcS4Alhk1+zapXbGEGylQ==, tarball: http://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.1.tgz} + dev: false + + /@types/d3-scale@3.3.2: + resolution: {integrity: sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==, tarball: http://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.2.tgz} + dependencies: + '@types/d3-time': 2.1.1 + dev: false + + /@types/d3-selection@2.0.1: + resolution: {integrity: sha512-3mhtPnGE+c71rl/T5HMy+ykg7migAZ4T6gzU0HxpgBFKcasBrSnwRbYV1/UZR6o5fkpySxhWxAhd7yhjj8jL7g==, tarball: http://registry.npmjs.org/@types/d3-selection/-/d3-selection-2.0.1.tgz} + dev: false + + /@types/d3-shape@2.1.3: + resolution: {integrity: sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==, tarball: http://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.3.tgz} + dependencies: + '@types/d3-path': 2.0.2 + dev: false + + /@types/d3-time-format@3.0.1: + resolution: {integrity: sha512-5GIimz5IqaRsdnxs4YlyTZPwAMfALu/wA4jqSiuqgdbCxUZ2WjrnwANqOtoBJQgeaUTdYNfALJO0Yb0YrDqduA==, tarball: http://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.1.tgz} + dev: false + + /@types/d3-time@2.1.1: + resolution: {integrity: sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==, tarball: http://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.1.tgz} + dev: false + + /@types/d3-timer@2.0.1: + resolution: {integrity: sha512-TF8aoF5cHcLO7W7403blM7L1T+6NF3XMyN3fxyUolq2uOcFeicG/khQg/dGxiCJWoAcmYulYN7LYSRKO54IXaA==, tarball: http://registry.npmjs.org/@types/d3-timer/-/d3-timer-2.0.1.tgz} + dev: false + + /@types/d3-transition@2.0.2: + resolution: {integrity: sha512-376TICEykdXOEA9uUIYpjshEkxfGwCPnkHUl8+6gphzKbf5NMnUhKT7wR59Yxrd9wtJ/rmE3SVLx6/8w4eY6Zg==, tarball: http://registry.npmjs.org/@types/d3-transition/-/d3-transition-2.0.2.tgz} + dependencies: + '@types/d3-selection': 2.0.1 + dev: false + + /@types/d3-zoom@2.0.4: + resolution: {integrity: sha512-2AiNBuLGScHDORzjsLnnZTlVR+wMVIHWasAGkM6UQI8wKRhpix5njRfO+yysx1FULgaNYV1cby3TttVRo/ZT9A==, tarball: http://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-2.0.4.tgz} + dependencies: + '@types/d3-interpolate': 2.0.2 + '@types/d3-selection': 2.0.1 + dev: false + + /@types/d3@6.7.5: + resolution: {integrity: sha512-TUZ6zuT/KIvbHSv81kwAiO5gG5aTuoiLGnWR/KxHJ15Idy/xmGUXaaF5zMG+UMIsndcGlSHTmrvwRgdvZlNKaA==, tarball: http://registry.npmjs.org/@types/d3/-/d3-6.7.5.tgz} + dependencies: + '@types/d3-array': 2.12.4 + '@types/d3-axis': 2.1.3 + '@types/d3-brush': 2.1.2 + '@types/d3-chord': 2.0.3 + '@types/d3-color': 2.0.3 + '@types/d3-contour': 2.0.4 + '@types/d3-delaunay': 5.3.1 + '@types/d3-dispatch': 2.0.1 + '@types/d3-drag': 2.0.2 + '@types/d3-dsv': 2.0.3 + '@types/d3-ease': 2.0.2 + '@types/d3-fetch': 2.0.2 + '@types/d3-force': 2.1.4 + '@types/d3-format': 2.0.2 + '@types/d3-geo': 2.0.4 + '@types/d3-hierarchy': 2.0.2 + '@types/d3-interpolate': 2.0.2 + '@types/d3-path': 2.0.2 + '@types/d3-polygon': 2.0.1 + '@types/d3-quadtree': 2.0.2 + '@types/d3-random': 2.2.1 + '@types/d3-scale': 3.3.2 + '@types/d3-scale-chromatic': 2.0.1 + '@types/d3-selection': 2.0.1 + '@types/d3-shape': 2.1.3 + '@types/d3-time': 2.1.1 + '@types/d3-time-format': 3.0.1 + '@types/d3-timer': 2.0.1 + '@types/d3-transition': 2.0.2 + '@types/d3-zoom': 2.0.4 + dev: false + + /@types/debug@4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==, tarball: http://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz} + dependencies: + '@types/ms': 0.7.31 + dev: true + + /@types/dom-to-image@2.6.4: + resolution: {integrity: sha512-UddUdGF1qulrSDulkz3K2Ypq527MR6ixlgAzqLbxSiQ0icx0XDlIV+h4+edmjq/1dqn0KgN0xGSe1kI9t+vGuw==, tarball: http://registry.npmjs.org/@types/dom-to-image/-/dom-to-image-2.6.4.tgz} + dev: false + + /@types/eslint-scope@3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==, tarball: http://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz} + dependencies: + '@types/eslint': 8.37.0 + '@types/estree': 1.0.1 + dev: true + + /@types/eslint@8.37.0: + resolution: {integrity: sha512-Piet7dG2JBuDIfohBngQ3rCt7MgO9xCO4xIMKxBThCq5PNRB91IjlJ10eJVwfoNtvTErmxLzwBZ7rHZtbOMmFQ==, tarball: http://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz} + dependencies: + '@types/estree': 1.0.1 + '@types/json-schema': 7.0.11 + dev: true + + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + + /@types/express-serve-static-core@4.17.34: + resolution: {integrity: sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==, tarball: http://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz} + dependencies: + '@types/node': 18.16.3 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + '@types/send': 0.17.1 + dev: true + + /@types/express@4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, tarball: http://registry.npmjs.org/@types/express/-/express-4.17.17.tgz} + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 4.17.34 + '@types/qs': 6.9.7 + '@types/serve-static': 1.15.1 + dev: true + + /@types/file-saver@2.0.5: + resolution: {integrity: sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==, tarball: http://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz} + dev: false + + /@types/fined@1.1.3: + resolution: {integrity: sha512-CWYnSRnun3CGbt6taXeVo2lCbuaj4mchVJ4UF/BdU5TSuIn3AmS13pGMwCsBUoehGbhZrBrpNJZSZI5EVilXww==} + dev: true + + /@types/fs-extra@9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/geojson@7946.0.10: + resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==, tarball: http://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz} + dev: false + + /@types/graceful-fs@4.1.6: + resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==, tarball: http://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/http-cache-semantics@4.0.1: + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} + + /@types/inquirer@8.2.6: + resolution: {integrity: sha512-3uT88kxg8lNzY8ay2ZjP44DKcRaTGztqeIvN2zHvhzIBH/uAPaL75aBtdNRKbA7xXoMbBt5kX0M00VKAnfOYlA==} + dependencies: + '@types/through': 0.0.30 + rxjs: 7.8.1 + dev: true + + /@types/ioredis@5.0.0: + resolution: {integrity: sha512-zJbJ3FVE17CNl5KXzdeSPtdltc4tMT3TzC6fxQS0sQngkbFZ6h+0uTafsRqu+eSLIugf6Yb0Ea0SUuRr42Nk9g==, tarball: http://registry.npmjs.org/@types/ioredis/-/ioredis-5.0.0.tgz} + deprecated: This is a stub types definition. ioredis provides its own type definitions, so you do not need this installed. + dependencies: + ioredis: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, tarball: http://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz} + dev: true + + /@types/istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==, tarball: http://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true + + /@types/istanbul-reports@3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==, tarball: http://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest@29.2.4: + resolution: {integrity: sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==, tarball: http://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz} + dependencies: + expect: 29.5.0 + pretty-format: 29.5.0 + dev: true + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, tarball: http://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz} + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, tarball: http://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz} + + /@types/jsonwebtoken@9.0.1: + resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==, tarball: http://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz} + dependencies: + '@types/node': 18.16.3 + dev: false + + /@types/katex@0.16.0: + resolution: {integrity: sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw==, tarball: http://registry.npmjs.org/@types/katex/-/katex-0.16.0.tgz} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 18.16.3 + + /@types/liftoff@4.0.0: + resolution: {integrity: sha512-Ny/PJkO6nxWAQnaet8q/oWz15lrfwvdvBpuY4treB0CSsBO1CG0fVuNLngR3m3bepQLd+E4c3Y3DlC2okpUvPw==} + dependencies: + '@types/fined': 1.1.3 + '@types/node': 18.16.3 + dev: true + + /@types/linkify-it@3.0.2: + resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==, tarball: http://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz} + + /@types/lodash-es@4.17.7: + resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==, tarball: http://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.7.tgz} + dependencies: + '@types/lodash': 4.14.194 + dev: false + + /@types/lodash@4.14.194: + resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==, tarball: http://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz} + dev: false + + /@types/markdown-it-link-attributes@3.0.1: + resolution: {integrity: sha512-K8RnNb1q8j7rDOJbMF7AnlhCC/45BjrQ8z3WZWOrvkBIl8u9RXvmBdG/hfpnmK1JhhEZcmFEKWt+ilW1Mly+2Q==, tarball: http://registry.npmjs.org/@types/markdown-it-link-attributes/-/markdown-it-link-attributes-3.0.1.tgz} + dependencies: + '@types/markdown-it': 12.2.3 + dev: true + + /@types/markdown-it@12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==, tarball: http://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz} + dependencies: + '@types/linkify-it': 3.0.2 + '@types/mdurl': 1.0.2 + + /@types/marked@4.3.0: + resolution: {integrity: sha512-zK4gSFMjgslsv5Lyvr3O1yCjgmnE4pr8jbG8qVn4QglMwtpvPCf4YT2Wma7Nk95OxUUJI8Z+kzdXohbM7mVpGw==} + dev: false + + /@types/mdast@3.0.11: + resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==, tarball: http://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz} + dependencies: + '@types/unist': 2.0.6 + + /@types/mdurl@1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==, tarball: http://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz} + + /@types/mime@1.3.2: + resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==, tarball: http://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz} + dev: true + + /@types/mime@3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==, tarball: http://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz} + dev: true + + /@types/minimatch@3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==, tarball: http://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz} + dev: false + + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==, tarball: http://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz} + dev: true + + /@types/mockjs@1.0.7: + resolution: {integrity: sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==} + dev: true + + /@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==, tarball: http://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz} + dev: true + + /@types/node@14.18.47: + resolution: {integrity: sha512-OuJi8bIng4wYHHA3YpKauL58dZrPxro3d0tabPHyiNF8rKfGKuVfr83oFlPLmKri1cX+Z3cJP39GXmnqkP11Gw==} + dev: false + + /@types/node@16.18.25: + resolution: {integrity: sha512-rUDO6s9Q/El1R1I21HG4qw/LstTHCPO/oQNAwI/4b2f9EWvMnqt4d3HJwPMawfZ3UvodB8516Yg+VAq54YM+eA==, tarball: http://registry.npmjs.org/@types/node/-/node-16.18.25.tgz} + dev: false + + /@types/node@16.9.1: + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==} + dev: false + + /@types/node@18.11.18: + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==, tarball: http://registry.npmjs.org/@types/node/-/node-18.11.18.tgz} + + /@types/node@18.16.3: + resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==, tarball: http://registry.npmjs.org/@types/node/-/node-18.16.3.tgz} + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + + /@types/nprogress@0.2.0: + resolution: {integrity: sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==} + dev: true + + /@types/parse-json@4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==, tarball: http://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz} + dev: true + + /@types/path-browserify@1.0.0: + resolution: {integrity: sha512-XMCcyhSvxcch8b7rZAtFAaierBYdeHXVvg2iYnxOV0MCQHmPuRRmGZPFDRzPayxcGiiSL1Te9UIO+f3cuj0tfw==} + dev: true + + /@types/plist@3.0.2: + resolution: {integrity: sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==} + requiresBuild: true + dependencies: + '@types/node': 18.16.3 + xmlbuilder: 11.0.1 + dev: true + optional: true + + /@types/prettier@2.7.2: + resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==, tarball: http://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz} + dev: true + + /@types/qs@6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==, tarball: http://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz} + dev: true + + /@types/range-parser@1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==, tarball: http://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz} + dev: true + + /@types/redis@2.8.32: + resolution: {integrity: sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==, tarball: http://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz} + dependencies: + '@types/node': 18.16.3 + dev: false + + /@types/responselike@1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 18.16.3 + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, tarball: http://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz} + + /@types/send@0.17.1: + resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==, tarball: http://registry.npmjs.org/@types/send/-/send-0.17.1.tgz} + dependencies: + '@types/mime': 1.3.2 + '@types/node': 18.11.18 + dev: true + + /@types/serve-static@1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==, tarball: http://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz} + dependencies: + '@types/mime': 3.0.1 + '@types/node': 18.16.3 + dev: true + + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==, tarball: http://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz} + dev: true + + /@types/superagent@4.1.17: + resolution: {integrity: sha512-FFK/rRjNy24U6J1BvQkaNWu2ohOIF/kxRQXRsbT141YQODcOcZjzlcc4DGdI2SkTa0rhmF+X14zu6ICjCGIg+w==, tarball: http://registry.npmjs.org/@types/superagent/-/superagent-4.1.17.tgz} + dependencies: + '@types/cookiejar': 2.1.2 + '@types/node': 18.16.3 + dev: true + + /@types/supertest@2.0.12: + resolution: {integrity: sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==, tarball: http://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz} + dependencies: + '@types/superagent': 4.1.17 + dev: true + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/through@0.0.30: + resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} + dependencies: + '@types/node': 18.16.3 + dev: true + + /@types/unist@2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==, tarball: http://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz} + + /@types/uuid@9.0.1: + resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==, tarball: http://registry.npmjs.org/@types/uuid/-/uuid-9.0.1.tgz} + dev: false + + /@types/validator@13.7.15: + resolution: {integrity: sha512-yeinDVQunb03AEP8luErFcyf/7Lf7AzKCD0NXfgVoGCCQDNpZET8Jgq74oBgqKld3hafLbfzt/3inUdQvaFeXQ==, tarball: http://registry.npmjs.org/@types/validator/-/validator-13.7.15.tgz} + + /@types/verror@1.10.6: + resolution: {integrity: sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==} + requiresBuild: true + dev: true + optional: true + + /@types/web-bluetooth@0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==, tarball: http://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz} + dev: false + + /@types/web-bluetooth@0.0.17: + resolution: {integrity: sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==} + + /@types/yargs-parser@21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, tarball: http://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz} + dev: true + + /@types/yargs@17.0.24: + resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==, tarball: http://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + + /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==, tarball: http://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.39.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==, tarball: http://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.5.1 + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.39.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + natural-compare-lite: 1.4.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/parser@5.59.2(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==, tarball: http://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.39.0 + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/parser@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==, tarball: http://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.39.0 + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/scope-manager@5.59.2: + resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==, tarball: http://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 + + /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==, tarball: http://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.59.2(typescript@4.9.5) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + debug: 4.3.4 + eslint: 8.39.0 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==, tarball: http://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + debug: 4.3.4 + eslint: 8.39.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/types@5.59.2: + resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==, tarball: http://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /@typescript-eslint/typescript-estree@5.59.2(typescript@4.9.5): + resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==, tarball: http://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.9.5) + typescript: registry.npmmirror.com/typescript@4.9.5 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): + resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==, tarball: http://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/visitor-keys': 5.59.2 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 + transitivePeerDependencies: + - supports-color + + /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==, tarball: http://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@4.9.5) + eslint: 8.39.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + + /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==, tarball: http://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.59.2 + '@typescript-eslint/types': 5.59.2 + '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) + eslint: 8.39.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + + /@typescript-eslint/visitor-keys@5.59.2: + resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==, tarball: http://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.2.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.59.2 + eslint-visitor-keys: 3.4.0 + + /@vavt/markdown-theme@3.0.0: + resolution: {integrity: sha512-Vp/q1woesYOodIyQFUIeDflwrnXdRtLljbQa5tm3IUI75RDNB3K1R9NU/aPUhafkITQvnwl7U2uOXnXd2JJRBA==} + dev: false + + /@vicons/ionicons5@0.12.0: + resolution: {integrity: sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==, tarball: http://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.12.0.tgz} + dev: false + + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.3)(vue@3.2.47): + resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.5) + '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.5) + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + vue: 3.2.47 + transitivePeerDependencies: + - supports-color + dev: true + + /@vitejs/plugin-vue@4.2.1(vite@4.3.3)(vue@3.2.47): + resolution: {integrity: sha512-ZTZjzo7bmxTRTkb8GSTwkPOYDIP7pwuyV+RV53c9PYUouwcbkIZIvWvNWlX2b1dYZqtOv7D6iUAnJLVNGcLrSw==, tarball: http://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.1.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + vue: 3.2.47 + dev: true + + /@volar/language-core@1.4.1: + resolution: {integrity: sha512-EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==, tarball: http://registry.npmjs.org/@volar/language-core/-/language-core-1.4.1.tgz} + dependencies: + '@volar/source-map': 1.4.1 + dev: true + + /@volar/source-map@1.4.1: + resolution: {integrity: sha512-bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==, tarball: http://registry.npmjs.org/@volar/source-map/-/source-map-1.4.1.tgz} + dependencies: + muggle-string: 0.2.2 + dev: true + + /@volar/typescript@1.4.1(typescript@4.9.5): + resolution: {integrity: sha512-phTy6p9yG6bgMIKQWEeDOi/aeT0njZsb1a/G1mrEuDsLmAn24Le4gDwSsGNhea6Uhu+3gdpUZn2PmZXa+WG2iQ==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-core': 1.4.1 + typescript: 4.9.5 + dev: true + + /@volar/typescript@1.4.1(typescript@5.0.4): + resolution: {integrity: sha512-phTy6p9yG6bgMIKQWEeDOi/aeT0njZsb1a/G1mrEuDsLmAn24Le4gDwSsGNhea6Uhu+3gdpUZn2PmZXa+WG2iQ==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-core': 1.4.1 + typescript: 5.0.4 + dev: true + + /@volar/vue-language-core@1.6.3: + resolution: {integrity: sha512-e9OTDCPa8Wuh0ORhD4z++qTIcrsrqcI9waspr93YcQCq6j+Q+JTFuy7HBSQgyezSAsP6x1WWokKVk4fWWDJQOw==, tarball: http://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.6.3.tgz} + dependencies: + '@volar/language-core': 1.4.1 + '@volar/source-map': 1.4.1 + '@vue/compiler-dom': 3.3.0-beta.3 + '@vue/compiler-sfc': 3.3.0-beta.3 + '@vue/reactivity': 3.3.0-beta.3 + '@vue/shared': 3.3.0-beta.3 + minimatch: 9.0.0 + muggle-string: 0.2.2 + vue-template-compiler: 2.7.14 + dev: true + + /@volar/vue-typescript@1.6.3(typescript@4.9.5): + resolution: {integrity: sha512-Dz29Qym33P1MSZDTZJ6PPLN1TLQfkX+g2pRnHqLCsFdSUu4yWYnElBURCn5WJkekxV/v+k2T43aur2RCSY3Ovg==, tarball: http://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.6.3.tgz} + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.4.1(typescript@4.9.5) + '@volar/vue-language-core': 1.6.3 + typescript: 4.9.5 + dev: true + + /@volar/vue-typescript@1.6.3(typescript@5.0.4): + resolution: {integrity: sha512-Dz29Qym33P1MSZDTZJ6PPLN1TLQfkX+g2pRnHqLCsFdSUu4yWYnElBURCn5WJkekxV/v+k2T43aur2RCSY3Ovg==, tarball: http://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.6.3.tgz} + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.4.1(typescript@5.0.4) + '@volar/vue-language-core': 1.6.3 + typescript: 5.0.4 + dev: true + + /@vue/babel-helper-vue-transform-on@1.0.2: + resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} + dev: true + + /@vue/babel-plugin-jsx@1.1.1(@babel/core@7.21.5): + resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} + dependencies: + '@babel/helper-module-imports': 7.21.4 + '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.5) + '@babel/template': 7.20.7 + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + '@vue/babel-helper-vue-transform-on': 1.0.2 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: true + + /@vue/compiler-core@3.2.47: + resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==, tarball: http://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz} + dependencies: + '@babel/parser': 7.23.3 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + + /@vue/compiler-core@3.3.0-beta.3: + resolution: {integrity: sha512-mv2rPo4JHou6ebm7+U/wO1HpA6W1zDfTqbt4fqjoXrMwU4DWNgRcLKTXG6G3cXV4mOe+2YgWspfxEzo7fPTMKg==, tarball: http://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.0-beta.3.tgz} + dependencies: + '@babel/parser': 7.23.3 + '@vue/shared': 3.3.0-beta.3 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.2.47: + resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==, tarball: http://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz} + dependencies: + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/compiler-dom@3.3.0-beta.3: + resolution: {integrity: sha512-e7VpjN9wYiuJdJos6Uoe501CzdMkfaEr/27Ks4Ss7Irtcj5YA/S1OROZ35Xl2Pc3ctx6beq5RpcOvnMqh0hcaA==, tarball: http://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.0-beta.3.tgz} + dependencies: + '@vue/compiler-core': 3.3.0-beta.3 + '@vue/shared': 3.3.0-beta.3 + dev: true + + /@vue/compiler-sfc@3.2.47: + resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==, tarball: http://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz} + dependencies: + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.2.47 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-ssr': 3.2.47 + '@vue/reactivity-transform': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.23 + source-map: registry.npmmirror.com/source-map@0.6.1 + + /@vue/compiler-sfc@3.3.0-beta.3: + resolution: {integrity: sha512-6shZNooetShjSMHJvgVoE0EM8pOMV5vnrzsHoCU06stzV+kqRJQpbN7xf2s9wK2fgHMIBSMINrM9AuZiQnNCJg==, tarball: http://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.0-beta.3.tgz} + dependencies: + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.3.0-beta.3 + '@vue/compiler-dom': 3.3.0-beta.3 + '@vue/compiler-ssr': 3.3.0-beta.3 + '@vue/reactivity-transform': 3.3.0-beta.3 + '@vue/shared': 3.3.0-beta.3 + estree-walker: 2.0.2 + magic-string: 0.30.5 + postcss: 8.4.23 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-ssr@3.2.47: + resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==, tarball: http://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/compiler-ssr@3.3.0-beta.3: + resolution: {integrity: sha512-egJ0lEVAod3Hpnw96cJ/0a9qv5f5h5/VCBpKYT8scqkzoMsikh8AJant2omokBCL/Ut5UAMLVQlA5b66+2Ys/g==, tarball: http://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.0-beta.3.tgz} + dependencies: + '@vue/compiler-dom': 3.3.0-beta.3 + '@vue/shared': 3.3.0-beta.3 + dev: true + + /@vue/devtools-api@6.5.0: + resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==, tarball: http://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz} + + /@vue/reactivity-transform@3.2.47: + resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==, tarball: http://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz} + dependencies: + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + + /@vue/reactivity-transform@3.3.0-beta.3: + resolution: {integrity: sha512-aM3TgBca9QMMu/9B9ASRVvckeZpAdJO9nmQh5UCznhoDYjVxQPS+sCQvH6TLOjPB1MDQMVQYg4ZiPqfVVo7NbA==, tarball: http://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.0-beta.3.tgz} + dependencies: + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.3.0-beta.3 + '@vue/shared': 3.3.0-beta.3 + estree-walker: 2.0.2 + magic-string: 0.30.5 + dev: true + + /@vue/reactivity@3.2.47: + resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==, tarball: http://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz} + dependencies: + '@vue/shared': 3.2.47 + + /@vue/reactivity@3.3.0-beta.3: + resolution: {integrity: sha512-9VjWfWgZJ18YXEkfnDfZr33RyLBa6zc0RARLkMqMApWvM26eusZAZ4hhyxlgODBU/mEFk4XOGIAtwwSQedA0MQ==, tarball: http://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.0-beta.3.tgz} + dependencies: + '@vue/shared': 3.3.0-beta.3 + dev: true + + /@vue/runtime-core@3.2.47: + resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==, tarball: http://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz} + dependencies: + '@vue/reactivity': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/runtime-dom@3.2.47: + resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==, tarball: http://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz} + dependencies: + '@vue/runtime-core': 3.2.47 + '@vue/shared': 3.2.47 + csstype: 2.6.21 + + /@vue/server-renderer@3.2.47(vue@3.2.47): + resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==, tarball: http://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz} + peerDependencies: + vue: 3.2.47 + dependencies: + '@vue/compiler-ssr': 3.2.47 + '@vue/shared': 3.2.47 + vue: 3.2.47 + + /@vue/shared@3.2.47: + resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==, tarball: http://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz} + + /@vue/shared@3.3.0-beta.3: + resolution: {integrity: sha512-st1SnB/Bkbb9TsieeI4TRX9TqHYIR5wvIma3ZtEben55EYSWa1q5u2BhTNgABSdH+rv3Xwfrvpwh5PmCw6Y53g==, tarball: http://registry.npmjs.org/@vue/shared/-/shared-3.3.0-beta.3.tgz} + dev: true + + /@vueuse/core@10.1.2(vue@3.2.47): + resolution: {integrity: sha512-roNn8WuerI56A5uiTyF/TEYX0Y+VKlhZAF94unUfdhbDUI+NfwQMn4FUnUscIRUhv3344qvAghopU4bzLPNFlA==} + dependencies: + '@types/web-bluetooth': 0.0.17 + '@vueuse/metadata': 10.1.2 + '@vueuse/shared': 10.1.2(vue@3.2.47) + vue-demi: 0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/core@10.2.0(vue@3.2.47): + resolution: {integrity: sha512-aHBnoCteIS3hFu7ZZkVB93SanVDY6t4TIb7XDLxJT/HQdAZz+2RdIEJ8rj5LUoEJr7Damb5+sJmtpCwGez5ozQ==} + dependencies: + '@types/web-bluetooth': 0.0.17 + '@vueuse/metadata': 10.2.0 + '@vueuse/shared': 10.2.0(vue@3.2.47) + vue-demi: 0.14.5(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/core@9.13.0(vue@3.2.47): + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==, tarball: http://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.2.47) + vue-demi: 0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/electron@10.2.1(electron@25.3.1)(vue@3.2.47): + resolution: {integrity: sha512-/0zQvIDDyCmIs8M9ZWcCm/ROk1sH0qC/LCL5Wh+rjO3YDkYf9EokFrUpj25XXS32ax0xWiR8o791HSqAmCTqQA==} + peerDependencies: + electron: '>=9.0.0' + dependencies: + '@vueuse/shared': 10.2.1(vue@3.2.47) + electron: 25.3.1 + vue-demi: 0.14.5(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/integrations@10.1.2(axios@1.4.0)(nprogress@0.2.0)(vue@3.2.47): + resolution: {integrity: sha512-wUpG3Wv6LiWerOwCzOAM0iGhNQ4vfFUTkhj/xQy7TLXduh2M3D8N08aS0KqlxsejY6R8NLxydDIM+68QfHZZ8Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.1.2(vue@3.2.47) + '@vueuse/shared': 10.1.2(vue@3.2.47) + axios: 1.4.0 + nprogress: 0.2.0 + vue-demi: 0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/integrations@10.2.0(axios@1.4.0)(qrcode@1.5.3)(vue@3.2.47): + resolution: {integrity: sha512-e+MIRMi2Zo8DZKXszut8iVoZGlf07XXoaDt27W0DRJVYPdods50MV8Bnla5Tnuil0gHY/W5mMcqiQre9Xb246Q==} + peerDependencies: + async-validator: '*' + axios: '*' + change-case: '*' + drauu: '*' + focus-trap: '*' + fuse.js: '*' + idb-keyval: '*' + jwt-decode: '*' + nprogress: '*' + qrcode: '*' + sortablejs: '*' + universal-cookie: '*' + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + dependencies: + '@vueuse/core': 10.2.0(vue@3.2.47) + '@vueuse/shared': 10.2.0(vue@3.2.47) + axios: 1.4.0 + qrcode: 1.5.3 + vue-demi: 0.14.5(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/metadata@10.1.2: + resolution: {integrity: sha512-3mc5BqN9aU2SqBeBuWE7ne4OtXHoHKggNgxZR2K+zIW4YLsy6xoZ4/9vErQs6tvoKDX6QAqm3lvsrv0mczAwIQ==} + + /@vueuse/metadata@10.2.0: + resolution: {integrity: sha512-IR7Mkq6QSgZ38q/2ZzOt+Zz1OpcEsnwE64WBumDQ+RGKrosFCtUA2zgRrOqDEzPBXrVB+4HhFkwDjQMu0fDBKw==} + dev: false + + /@vueuse/metadata@9.13.0: + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==, tarball: http://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz} + dev: false + + /@vueuse/motion@2.0.0(rollup@2.79.1)(vue@3.2.47): + resolution: {integrity: sha512-V3TAlbt1OPmb9DZFoFCz9WC3Oue54t9VHlavSWm+VU1JNimYcd+pc6aGR/hgaHUAU9tOPRHoDTleSrv2zrdIsw==} + peerDependencies: + vue: '>=3.0.0' + dependencies: + '@vueuse/core': 10.2.0(vue@3.2.47) + '@vueuse/shared': 10.2.1(vue@3.2.47) + csstype: 3.1.2 + framesync: 6.1.2 + popmotion: 11.0.5 + style-value-types: 5.1.2 + vue: 3.2.47 + optionalDependencies: + '@nuxt/kit': registry.npmmirror.com/@nuxt/kit@3.10.0(rollup@2.79.1) + transitivePeerDependencies: + - '@vue/composition-api' + - rollup + - supports-color + dev: false + + /@vueuse/shared@10.1.2(vue@3.2.47): + resolution: {integrity: sha512-1uoUTPBlgyscK9v6ScGeVYDDzlPSFXBlxuK7SfrDGyUTBiznb3mNceqhwvZHjtDRELZEN79V5uWPTF1VDV8svA==} + dependencies: + vue-demi: 0.14.0(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + /@vueuse/shared@10.2.0(vue@3.2.47): + resolution: {integrity: sha512-dIeA8+g9Av3H5iF4NXR/sft4V6vys76CpZ6hxwj8eMXybXk2WRl3scSsOVi+kQ9SX38COR7AH7WwY83UcuxbSg==} + dependencies: + vue-demi: 0.14.5(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/shared@10.2.1(vue@3.2.47): + resolution: {integrity: sha512-QWHq2bSuGptkcxx4f4M/fBYC3Y8d3M2UYyLsyzoPgEoVzJURQ0oJeWXu79OiLlBb8gTKkqe4mO85T/sf39mmiw==} + dependencies: + vue-demi: 0.14.5(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/shared@9.13.0(vue@3.2.47): + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==, tarball: http://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz} + dependencies: + vue-demi: 0.14.5(vue@3.2.47) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@webassemblyjs/ast@1.11.5: + resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==, tarball: http://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.5.tgz} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + dev: true + + /@webassemblyjs/floating-point-hex-parser@1.11.5: + resolution: {integrity: sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==, tarball: http://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.5.tgz} + dev: true + + /@webassemblyjs/helper-api-error@1.11.5: + resolution: {integrity: sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==, tarball: http://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.5.tgz} + dev: true + + /@webassemblyjs/helper-buffer@1.11.5: + resolution: {integrity: sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==, tarball: http://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.5.tgz} + dev: true + + /@webassemblyjs/helper-numbers@1.11.5: + resolution: {integrity: sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==, tarball: http://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.5.tgz} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.5 + '@webassemblyjs/helper-api-error': 1.11.5 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode@1.11.5: + resolution: {integrity: sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==, tarball: http://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.5.tgz} + dev: true + + /@webassemblyjs/helper-wasm-section@1.11.5: + resolution: {integrity: sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==, tarball: http://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.5.tgz} + dependencies: + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-buffer': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/wasm-gen': 1.11.5 + dev: true + + /@webassemblyjs/ieee754@1.11.5: + resolution: {integrity: sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==, tarball: http://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.5.tgz} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128@1.11.5: + resolution: {integrity: sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==, tarball: http://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.5.tgz} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8@1.11.5: + resolution: {integrity: sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==, tarball: http://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.5.tgz} + dev: true + + /@webassemblyjs/wasm-edit@1.11.5: + resolution: {integrity: sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==, tarball: http://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.5.tgz} + dependencies: + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-buffer': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/helper-wasm-section': 1.11.5 + '@webassemblyjs/wasm-gen': 1.11.5 + '@webassemblyjs/wasm-opt': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 + '@webassemblyjs/wast-printer': 1.11.5 + dev: true + + /@webassemblyjs/wasm-gen@1.11.5: + resolution: {integrity: sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==, tarball: http://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.5.tgz} + dependencies: + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/ieee754': 1.11.5 + '@webassemblyjs/leb128': 1.11.5 + '@webassemblyjs/utf8': 1.11.5 + dev: true + + /@webassemblyjs/wasm-opt@1.11.5: + resolution: {integrity: sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==, tarball: http://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.5.tgz} + dependencies: + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-buffer': 1.11.5 + '@webassemblyjs/wasm-gen': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 + dev: true + + /@webassemblyjs/wasm-parser@1.11.5: + resolution: {integrity: sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==, tarball: http://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.5.tgz} + dependencies: + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-api-error': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/ieee754': 1.11.5 + '@webassemblyjs/leb128': 1.11.5 + '@webassemblyjs/utf8': 1.11.5 + dev: true + + /@webassemblyjs/wast-printer@1.11.5: + resolution: {integrity: sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==, tarball: http://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.5.tgz} + dependencies: + '@webassemblyjs/ast': 1.11.5 + '@xtuc/long': 4.2.2 + dev: true + + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dev: true + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, tarball: http://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + dev: true + + /@xtuc/long@4.2.2: + resolution: {integrity: sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=, tarball: http://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz} + dev: true + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, tarball: http://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, tarball: http://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz} + + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, tarball: http://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: false + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, tarball: http://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + /acorn-import-assertions@1.8.0(acorn@8.8.2): + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==, tarball: http://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.8.2 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, tarball: http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, tarball: http://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz} + engines: {node: '>=0.4.0'} + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + + /add@2.0.6: + resolution: {integrity: sha512-j5QzrmsokwWWp6kUcJQySpbG+xfOBqqKnup3OIk1pz+kB/80SLorZ9V8zHFLO92Lcd+hbvq8bT+zOGoPkmBV0Q==} + dev: false + + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==, tarball: http://registry.npmjs.org/address/-/address-1.2.2.tgz} + engines: {node: '>= 10.0.0'} + dev: false + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /agentkeepalive@3.5.2: + resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==, tarball: http://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz} + engines: {node: '>= 4.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: false + + /agentkeepalive@4.3.0: + resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} + engines: {node: '>= 8.0.0'} + dependencies: + debug: 4.3.4 + depd: 2.0.0 + humanize-ms: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, tarball: http://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv-formats@1.6.1(ajv@7.2.4): + resolution: {integrity: sha512-4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==, tarball: http://registry.npmjs.org/ajv-formats/-/ajv-formats-1.6.1.tgz} + peerDependencies: + ajv: ^7.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 7.2.4 + dev: false + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, tarball: http://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + dev: true + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, tarball: http://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, tarball: http://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@7.2.4: + resolution: {integrity: sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==, tarball: http://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, tarball: http://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ali-oss@6.17.1: + resolution: {integrity: sha512-v2oT3UhSJTH/LrsscVvi7iEGrnundydNaFzpYAKatqOl4JNcBV4UiwtlJU+ZHLys040JH2k+CutznA0GoE+P2w==, tarball: http://registry.npmjs.org/ali-oss/-/ali-oss-6.17.1.tgz} + engines: {node: '>=8'} + dependencies: + address: 1.2.2 + agentkeepalive: 3.5.2 + bowser: 1.9.4 + copy-to: 2.0.1 + dateformat: 2.2.0 + debug: 2.6.9 + destroy: 1.2.0 + end-or-error: 1.0.1 + get-ready: 1.0.0 + humanize-ms: 1.2.1 + is-type-of: 1.4.0 + js-base64: 2.6.4 + jstoxml: 2.2.9 + merge-descriptors: 1.0.1 + mime: 2.6.0 + mz-modules: 2.1.0 + platform: 1.3.6 + pump: 3.0.0 + sdk-base: 2.0.1 + stream-http: 2.8.2 + stream-wormhole: 1.1.0 + urllib: 2.40.0 + utility: 1.18.0 + xml2js: 0.4.23 + transitivePeerDependencies: + - supports-color + dev: false + + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, tarball: http://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz} + engines: {node: '>=6'} + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, tarball: http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: http://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, tarball: http://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, tarball: http://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: http://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, tarball: http://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, tarball: http://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz} + engines: {node: '>=12'} + dev: true + + /any-base@1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==, tarball: http://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz} + dev: false + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, tarball: http://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz} + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /app-builder-bin@4.0.0: + resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + dev: true + + /app-builder-lib@24.4.0: + resolution: {integrity: sha512-EcdqtWvg1LAApKCfyRBukcVkmsa94s2e1VKHjZLpvA9/D14QEt8rHhffYeaA+cH/pVeoNVn2ob735KnfJKEEow==} + engines: {node: '>=14.0.0'} + dependencies: + 7zip-bin: 5.1.1 + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 1.2.4 + '@electron/osx-sign': 1.0.4 + '@electron/rebuild': 3.2.13 + '@electron/universal': 1.3.4 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 24.4.0 + builder-util-runtime: 9.2.1 + chromium-pickle-js: 0.2.0 + debug: 4.3.4 + ejs: 3.1.9 + electron-publish: 24.4.0 + form-data: 4.0.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + minimatch: 5.1.6 + read-config-file: 6.3.2 + sanitize-filename: 1.6.3 + semver: 7.5.4 + tar: 6.2.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /app-root-path@3.1.0: + resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==, tarball: http://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz} + engines: {node: '>= 6.0.0'} + dev: false + + /append-field@1.0.0: + resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==, tarball: http://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz} + + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true + + /archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==, tarball: http://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz} + engines: {node: '>= 6'} + dependencies: + glob: 7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + dev: false + + /archiver@5.3.1: + resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==, tarball: http://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + async: 3.2.4 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.0 + dev: false + + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, tarball: http://registry.npmjs.org/arg/-/arg-4.1.3.tgz} + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, tarball: http://registry.npmjs.org/arg/-/arg-5.0.2.tgz} + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, tarball: http://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz} + dependencies: + sprintf-js: 1.0.3 + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: http://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz} + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, tarball: http://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + + /array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==, tarball: http://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz} + engines: {node: '>=8'} + dev: false + + /array-each@1.0.1: + resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} + engines: {node: '>=0.10.0'} + dev: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, tarball: http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz} + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, tarball: http://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz} + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==, tarball: http://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.0 + is-string: 1.0.7 + + /array-slice@1.1.0: + resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} + engines: {node: '>=0.10.0'} + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, tarball: http://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz} + engines: {node: '>=8'} + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==, tarball: http://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==, tarball: http://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, tarball: http://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==, tarball: http://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz} + engines: {node: '>=8'} + dev: false + + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, tarball: http://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz} + dependencies: + safer-buffer: 2.1.2 + + /assert-never@1.2.1: + resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==, tarball: http://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz} + requiresBuild: true + dev: false + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, tarball: http://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz} + engines: {node: '>=0.8'} + + /assert@2.0.0: + resolution: {integrity: sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==, tarball: http://registry.npmjs.org/assert/-/assert-2.0.0.tgz} + dependencies: + es6-object-assign: 1.1.0 + is-nan: 1.3.2 + object-is: 1.1.5 + util: 0.12.5 + dev: false + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, tarball: http://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz} + engines: {node: '>=4'} + dependencies: + tslib: 2.5.0 + dev: false + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, tarball: http://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, tarball: http://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz} + dev: false + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: true + + /async@3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, tarball: http://registry.npmjs.org/async/-/async-3.2.4.tgz} + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, tarball: http://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz} + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /atomically@1.7.0: + resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==, tarball: http://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz} + engines: {node: '>=10.12.0'} + dev: false + + /autolinker@3.16.2: + resolution: {integrity: sha512-JiYl7j2Z19F9NdTmirENSUUIIL/9MytEWtmzhfmsKPCp9E+G35Y0UNCMoM9tFigxT59qSc8Ml2dlZXOCVTYwuA==, tarball: http://registry.npmjs.org/autolinker/-/autolinker-3.16.2.tgz} + dependencies: + tslib: 2.5.0 + dev: false + + /autoprefixer@10.4.14(postcss@8.4.23): + resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==, tarball: http://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.5 + caniuse-lite: 1.0.30001482 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.23 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, tarball: http://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + engines: {node: '>= 0.4'} + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, tarball: http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz} + + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==, tarball: http://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz} + + /axios@0.21.1: + resolution: {integrity: sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==, tarball: http://registry.npmjs.org/axios/-/axios-0.21.1.tgz} + dependencies: + follow-redirects: 1.15.2 + transitivePeerDependencies: + - debug + dev: false + + /axios@1.4.0: + resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==, tarball: http://registry.npmjs.org/axios/-/axios-1.4.0.tgz} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + /babel-jest@29.5.0(@babel/core@7.21.5): + resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==, tarball: http://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.21.5 + '@jest/transform': 29.5.0 + '@types/babel__core': 7.20.0 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.5.0(@babel/core@7.21.5) + chalk: 4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + slash: registry.npmmirror.com/slash@3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, tarball: http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.21.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@29.5.0: + resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==, tarball: http://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + '@types/babel__core': 7.20.0 + '@types/babel__traverse': 7.18.5 + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.21.5): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, tarball: http://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.5) + dev: true + + /babel-preset-jest@29.5.0(@babel/core@7.21.5): + resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==, tarball: http://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.5 + babel-plugin-jest-hoist: 29.5.0 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.5) + dev: true + + /babel-walk@3.0.0-canary-5: + resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==, tarball: http://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + '@babel/types': 7.21.5 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: http://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz} + + /balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} + dev: true + + /base64-arraybuffer@1.0.2: + resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==, tarball: http://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz} + engines: {node: '>= 0.6.0'} + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, tarball: http://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz} + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.0 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, tarball: http://registry.npmjs.org/batch/-/batch-0.6.1.tgz} + dev: false + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, tarball: http://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz} + dependencies: + tweetnacl: 0.14.5 + + /bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==, tarball: http://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz} + dev: false + + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==, tarball: http://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz} + engines: {node: '>=0.6'} + dev: false + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /bignumber.js@9.1.1: + resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} + dev: false + + /bin-pack@1.0.2: + resolution: {integrity: sha512-aOk0SxEon5LF9cMxQFViSKb4qccG6rs7XKyMXIb1J8f8LA2acTIWnHdT0IOTe4gYBbqgjdbuTZ5f+UP+vlh4Mw==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + /binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==, tarball: http://registry.npmjs.org/binary/-/binary-0.3.0.tgz} + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + dev: false + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, tarball: http://registry.npmjs.org/bl/-/bl-4.1.0.tgz} + dependencies: + buffer: 5.7.1 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.2 + + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + dependencies: + buffer: 6.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + dependencies: + bluebird: 3.7.2 + dev: true + + /bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==, tarball: http://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz} + dev: false + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, tarball: http://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz} + dev: true + + /bmp-js@0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==, tarball: http://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz} + dev: false + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==, tarball: http://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==, tarball: http://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, tarball: http://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz} + + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + requiresBuild: true + optional: true + + /bowser@1.9.4: + resolution: {integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==, tarball: http://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: http://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: http://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz} + dependencies: + balanced-match: 1.0.2 + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, tarball: http://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001482 + electron-to-chromium: 1.4.379 + node-releases: 2.0.10 + update-browserslist-db: 1.0.11(browserslist@4.21.5) + dev: true + + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==, tarball: http://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, tarball: http://registry.npmjs.org/bser/-/bser-2.1.1.tgz} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, tarball: http://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz} + + /buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, tarball: http://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz} + dev: false + + /buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==, tarball: http://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz} + engines: {node: '>=0.4.0'} + dev: false + + /buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: http://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz} + + /buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==, tarball: http://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz} + engines: {node: '>=0.10'} + dev: false + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, tarball: http://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, tarball: http://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + /buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==, tarball: http://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz} + engines: {node: '>=0.2.0'} + dev: false + + /builder-util-runtime@9.2.1: + resolution: {integrity: sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==} + engines: {node: '>=12.0.0'} + dependencies: + debug: 4.3.4 + sax: 1.2.4 + transitivePeerDependencies: + - supports-color + dev: true + + /builder-util@24.4.0: + resolution: {integrity: sha512-tONb/GIK1MKa1BcOPHE1naId3o5nj6gdka5kP7yUJh2DOfF+jMq3laiu+UOZH6A7ZtkMtnGNMYFKFTIv408n/A==} + dependencies: + 7zip-bin: 5.1.1 + '@types/debug': 4.1.7 + app-builder-bin: 4.0.0 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.1 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + fs-extra: 10.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, tarball: http://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz} + engines: {node: '>=6'} + + /builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, tarball: http://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} + dev: false + + /builtins@5.0.1: + resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==, tarball: http://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz} + dependencies: + semver: 7.5.4 + + /bull@4.10.4: + resolution: {integrity: sha512-o9m/7HjS/Or3vqRd59evBlWCXd9Lp+ALppKseoSKHaykK46SmRjAilX98PgmOz1yeVaurt8D5UtvEt4bUjM3eA==, tarball: http://registry.npmjs.org/bull/-/bull-4.10.4.tgz} + engines: {node: '>=12'} + dependencies: + cron-parser: 4.8.1 + debuglog: 1.0.1 + get-port: 5.1.1 + ioredis: 5.3.2 + lodash: 4.17.21 + msgpackr: 1.9.2 + semver: 7.5.0 + uuid: 8.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + /bumpp@9.1.0: + resolution: {integrity: sha512-m3+YD8uoa0VttG+RV4oKr3lK60gkUn1yPDaBTFwT7xrdJUsy7Jm0VYgx457HI3VPAOX8szLmy1x2y1QcvB+M8Q==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + c12: 1.4.1 + cac: 6.7.14 + fast-glob: 3.2.12 + prompts: 2.4.2 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, tarball: http://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, tarball: http://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz} + engines: {node: '>= 0.8'} + dev: false + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, tarball: http://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz} + engines: {node: '>= 0.8'} + + /c12@1.4.1: + resolution: {integrity: sha512-0x7pWfLZpZsgtyotXtuepJc0rZYE0Aw8PwNAXs0jSG9zq6Sl5xmbWnFqfmRY01ieZLHNbvneSFm9/x88CvzAuw==} + dependencies: + chokidar: 3.5.3 + defu: 6.1.2 + dotenv: 16.0.3 + giget: 1.1.2 + jiti: 1.18.2 + mlly: 1.2.0 + ohash: 1.1.2 + pathe: 1.1.0 + perfect-debounce: 0.1.3 + pkg-types: 1.0.2 + rc9: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, tarball: http://registry.npmjs.org/cac/-/cac-6.7.14.tgz} + engines: {node: '>=8'} + dev: true + + /cacache@17.1.3: + resolution: {integrity: sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + '@npmcli/fs': 3.1.0 + fs-minipass: 3.0.2 + glob: 10.3.3 + lru-cache: 7.18.3 + minipass: 5.0.0 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.4 + tar: 6.2.0 + unique-filename: 3.0.0 + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.0 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /cache-manager-redis-store@3.0.1: + resolution: {integrity: sha512-o560kw+dFqusC9lQJhcm6L2F2fMKobJ5af+FoR2PdnMVdpQ3f3Bz6qzvObTGyvoazQJxjQNWgMQeChP4vRTuXQ==, tarball: http://registry.npmjs.org/cache-manager-redis-store/-/cache-manager-redis-store-3.0.1.tgz} + engines: {node: '>= 16.18.0'} + dependencies: + redis: 4.6.6 + dev: false + + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: registry.npmmirror.com/keyv@4.5.2 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, tarball: http://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz} + engines: {node: '>=6'} + + /camel-case@3.0.0: + resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==, tarball: http://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz} + dependencies: + no-case: 2.3.2 + upper-case: 1.1.3 + dev: false + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.5.0 + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, tarball: http://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz} + engines: {node: '>= 6'} + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, tarball: http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: registry.npmmirror.com/quick-lru@4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, tarball: http://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz} + engines: {node: '>=6'} + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, tarball: http://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz} + engines: {node: '>=10'} + dev: true + + /caniuse-lite@1.0.30001482: + resolution: {integrity: sha512-F1ZInsg53cegyjroxLNW9DmrEQ1SuGRTO1QlpA0o2/6OpQ0gFeDRoq1yFmnr8Sakn9qwwt9DmbxHB6w167OSuQ==, tarball: http://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz} + dev: true + + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + upper-case-first: 2.0.2 + dev: true + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, tarball: http://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz} + + /chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==, tarball: http://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz} + dependencies: + traverse: 0.3.9 + dev: false + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, tarball: http://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: http://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chalk@5.2.0: + resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==, tarball: http://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /chance@1.1.9: + resolution: {integrity: sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==, tarball: http://registry.npmjs.org/chance/-/chance-1.1.9.tgz} + dev: false + + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.5.0 + dev: true + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, tarball: http://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz} + engines: {node: '>=10'} + + /character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, tarball: http://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} + + /character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==, tarball: http://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz} + + /character-parser@2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==, tarball: http://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz} + requiresBuild: true + dependencies: + is-regex: 1.1.4 + dev: false + + /character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==, tarball: http://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz} + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, tarball: http://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz} + dev: true + + /charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==, tarball: http://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz} + dev: false + + /cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, tarball: http://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz} + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + dev: false + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==, tarball: http://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: false + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, tarball: http://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} + engines: {node: '>=6.0'} + dev: true + + /chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + dev: true + + /ci-info@3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, tarball: http://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz} + engines: {node: '>=8'} + + /cjs-module-lexer@1.2.2: + resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==, tarball: http://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz} + dev: true + + /class-transformer@0.5.1: + resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==, tarball: http://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz} + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /class-validator@0.14.0: + resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==, tarball: http://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz} + dependencies: + '@types/validator': 13.7.15 + libphonenumber-js: 1.10.28 + validator: 13.9.0 + + /clean-css@4.2.4: + resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==, tarball: http://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz} + engines: {node: '>= 4.0'} + dependencies: + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==, tarball: http://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, tarball: http://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, tarball: http://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==, tarball: http://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + dev: false + + /cli-spinners@2.8.0: + resolution: {integrity: sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==, tarball: http://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz} + engines: {node: '>=6'} + dev: true + + /cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==, tarball: http://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz} + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': registry.npmmirror.com/@colors/colors@1.5.0 + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, tarball: http://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, tarball: http://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, tarball: http://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz} + engines: {node: '>= 10'} + dev: true + + /clientjs@0.2.1: + resolution: {integrity: sha512-HN7yzgq8xMDjkNpSnpH3foMxaX5q9CUMcLAIsNwNnbJnuEhR8CDRxm22mEo+uQdiOUkCl5ZjdoN9lGBbL4jutQ==} + requiresBuild: true + dependencies: + globalthis: 1.0.3 + inherits: 2.0.4 + murmurhash-js: 1.0.0 + ua-parser-js: 0.7.35 + dev: false + + /clipboard@2.0.11: + resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==, tarball: http://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz} + dependencies: + good-listener: 1.2.2 + select: 1.1.2 + tiny-emitter: 2.1.0 + dev: false + + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==, tarball: http://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: false + + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, tarball: http://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: false + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, tarball: http://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + + /clone-stats@0.0.1: + resolution: {integrity: sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==} + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, tarball: http://registry.npmjs.org/clone/-/clone-1.0.4.tgz} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==, tarball: http://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz} + engines: {node: '>=0.10.0'} + dev: false + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, tarball: http://registry.npmjs.org/co/-/co-4.6.0.tgz} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /codemirror@6.0.1(@lezer/common@1.2.1): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} + dependencies: + '@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.1)(@lezer/common@1.2.1) + '@codemirror/commands': 6.2.3 + '@codemirror/language': 6.6.0 + '@codemirror/lint': 6.2.1 + '@codemirror/search': 6.4.0 + '@codemirror/state': 6.2.0 + '@codemirror/view': 6.10.1 + transitivePeerDependencies: + - '@lezer/common' + dev: false + + /collect-v8-coverage@1.0.1: + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==, tarball: http://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz} + dev: true + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, tarball: http://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: http://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, tarball: http://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: true + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, tarball: http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@10.0.0: + resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==, tarball: http://registry.npmjs.org/commander/-/commander-10.0.0.tgz} + engines: {node: '>=14'} + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==, tarball: http://registry.npmjs.org/commander/-/commander-10.0.1.tgz} + engines: {node: '>=14'} + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, tarball: http://registry.npmjs.org/commander/-/commander-2.20.3.tgz} + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, tarball: http://registry.npmjs.org/commander/-/commander-4.1.1.tgz} + engines: {node: '>= 6'} + + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + dev: false + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, tarball: http://registry.npmjs.org/commander/-/commander-8.3.0.tgz} + engines: {node: '>= 12'} + dev: false + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, tarball: http://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + dev: true + + /component-emitter@1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, tarball: http://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz} + + /compress-commons@4.1.1: + resolution: {integrity: sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==, tarball: http://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz} + engines: {node: '>= 10'} + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.2 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + dev: false + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, tarball: http://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, tarball: http://registry.npmjs.org/compression/-/compression-1.7.4.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz} + + /concat-stream@1.5.2: + resolution: {integrity: sha512-H6xsIBfQ94aESBG8jGHXQ7i5AEpy5ZeVaLDOisDICiTCKpqEfr34/KmTrspKQNoLKNu9gTkovlpQcUi630AKiQ==} + engines: {'0': node >= 0.8} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 2.0.6 + typedarray: 0.0.7 + dev: true + + /concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, tarball: http://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + + /conf@9.0.2: + resolution: {integrity: sha512-rLSiilO85qHgaTBIIHQpsv8z+NnVfZq3cKuYNCXN1AOqPzced0GWZEe/A517VldRLyQYXUMyV+vszavE2jSAqw==, tarball: http://registry.npmjs.org/conf/-/conf-9.0.2.tgz} + engines: {node: '>=10'} + dependencies: + ajv: 7.2.4 + ajv-formats: 1.6.1(ajv@7.2.4) + atomically: 1.7.0 + debounce-fn: 4.0.0 + dot-prop: 6.0.1 + env-paths: 2.2.1 + json-schema-typed: 7.0.3 + make-dir: 3.1.0 + onetime: 5.1.2 + pkg-up: 3.1.0 + semver: 7.5.0 + dev: false + + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, tarball: http://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: false + + /config-file-ts@0.2.4: + resolution: {integrity: sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ==} + dependencies: + glob: 7.2.3 + typescript: 4.9.5 + dev: true + + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, tarball: http://registry.npmjs.org/consola/-/consola-2.15.3.tgz} + + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + requiresBuild: true + dev: false + optional: true + + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + upper-case: 2.0.2 + dev: true + + /constantinople@4.0.1: + resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==, tarball: http://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz} + requiresBuild: true + dependencies: + '@babel/parser': 7.21.5 + '@babel/types': 7.21.5 + dev: false + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, tarball: http://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, tarball: http://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz} + engines: {node: '>= 0.6'} + + /contentstream@1.0.0: + resolution: {integrity: sha512-jqWbfFZFG9tZbdej7+TzXI4kanABh3BLtTWY6NxqTK5zo6iTIeo5aq4iRVfYsLQ0y8ccQqmJR/J4NeMmEdnR2w==} + engines: {node: '>= 0.8.0'} + dependencies: + readable-stream: 1.0.34 + dev: true + + /conventional-changelog-angular@5.0.13: + resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==, tarball: http://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + q: 1.5.1 + dev: true + + /conventional-changelog-conventionalcommits@5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==, tarball: http://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz} + engines: {node: '>=10'} + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + dev: true + + /conventional-commits-parser@3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==, tarball: http://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, tarball: http://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz} + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, tarball: http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz} + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, tarball: http://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz} + engines: {node: '>= 0.6'} + + /cookiejar@2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==, tarball: http://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz} + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, tarball: http://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /copy-text-to-clipboard@3.1.0: + resolution: {integrity: sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==} + engines: {node: '>=12'} + dev: false + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /copy-to@2.0.1: + resolution: {integrity: sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==, tarball: http://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz} + dev: false + + /core-js@3.30.1: + resolution: {integrity: sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ==} + requiresBuild: true + dev: false + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, tarball: http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz} + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz} + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, tarball: http://registry.npmjs.org/cors/-/cors-2.8.5.tgz} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + /corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /cos-nodejs-sdk-v5@2.12.0: + resolution: {integrity: sha512-1EIBYN7MGRqsw23RxgwpzNgYk1Nt6wq5DxYUWzi1QWpY6/2rj6taS2EjpuxA0HTcnb4xsL+SXadYJnAjOo3VhA==, tarball: http://registry.npmjs.org/cos-nodejs-sdk-v5/-/cos-nodejs-sdk-v5-2.12.0.tgz} + engines: {node: '>= 6'} + dependencies: + conf: 9.0.2 + fast-xml-parser: 4.2.2 + mime-types: 2.1.35 + request: 2.88.2 + dev: false + + /cosmiconfig-typescript-loader@4.3.0(@types/node@18.16.3)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@4.9.5): + resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==, tarball: http://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=3' + dependencies: + '@types/node': 18.16.3 + cosmiconfig: 8.1.3 + ts-node: 10.9.1(@types/node@18.16.3)(typescript@4.9.5) + typescript: 4.9.5 + dev: true + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, tarball: http://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /cosmiconfig@8.1.3: + resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==, tarball: http://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz} + engines: {node: '>=14'} + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + dev: true + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, tarball: http://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz} + engines: {node: '>=0.8'} + hasBin: true + dev: false + + /crc32-stream@4.0.2: + resolution: {integrity: sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==, tarball: http://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz} + engines: {node: '>= 10'} + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + dev: false + + /crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + requiresBuild: true + dependencies: + buffer: 5.7.1 + dev: true + optional: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, tarball: http://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz} + + /crelt@1.0.5: + resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} + dev: false + + /cron-parser@4.8.1: + resolution: {integrity: sha512-jbokKWGcyU4gl6jAfX97E1gDpY12DJ1cLJZmoDzaAln/shZ+S3KBFBuA2Q6WeUN4gJf/8klnV1EfvhA2lK5IRQ==, tarball: http://registry.npmjs.org/cron-parser/-/cron-parser-4.8.1.tgz} + engines: {node: '>=12.0.0'} + dependencies: + luxon: 3.3.0 + dev: false + + /cron@2.3.0: + resolution: {integrity: sha512-ZN5HP8zDY41sJolMsbc+GksRATcbvkPKF5wR/qc8FrV4NBVi9ORQa1HmYa5GydaysUB80X9XpRlRkooa5uEtTA==, tarball: http://registry.npmjs.org/cron/-/cron-2.3.0.tgz} + dependencies: + luxon: 3.3.0 + dev: false + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==, tarball: http://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, tarball: http://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==, tarball: http://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz} + dev: false + + /crypto-js@4.1.1: + resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==, tarball: http://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz} + dev: true + + /css-functions-list@3.1.0: + resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} + engines: {node: '>=12.22'} + dev: true + + /css-line-break@2.1.0: + resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==, tarball: http://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz} + dependencies: + utrie: 1.0.2 + dev: false + + /css-render@0.15.12: + resolution: {integrity: sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw==, tarball: http://registry.npmjs.org/css-render/-/css-render-0.15.12.tgz} + dependencies: + '@emotion/hash': 0.8.0 + csstype: registry.npmmirror.com/csstype@3.0.11 + dev: false + + /css-rules@1.1.0: + resolution: {integrity: sha512-7L6krLIRwAEVCaVKyCEL6PQjQXUmf8DM9bWYKutlZd0DqOe0SiKIGQOkFb59AjDBb+3If7SDp3X8UlzDAgYSow==, tarball: http://registry.npmjs.org/css-rules/-/css-rules-1.1.0.tgz} + dependencies: + cssom: 0.5.0 + dev: false + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: http://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: http://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz} + engines: {node: '>= 6'} + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, tarball: http://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz} + engines: {node: '>=4'} + hasBin: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==, tarball: http://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz} + dev: false + + /csstype@2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + + /cwise-compiler@1.1.3: + resolution: {integrity: sha512-WXlK/m+Di8DMMcCjcWr4i+XzcQra9eCdXIJrgh4TUgh0pIS/yJduLxS9JgefsHJ/YVLdgPtXm9r62W92MvanEQ==} + dependencies: + uniq: 1.0.1 + dev: true + + /d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==, tarball: http://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz} + dependencies: + internmap: 1.0.1 + dev: false + + /d3-axis@2.1.0: + resolution: {integrity: sha512-z/G2TQMyuf0X3qP+Mh+2PimoJD41VOCjViJzT0BHeL/+JQAofkiWZbWxlwFGb1N8EN+Cl/CW+MUKbVzr1689Cw==, tarball: http://registry.npmjs.org/d3-axis/-/d3-axis-2.1.0.tgz} + dev: false + + /d3-brush@2.1.0: + resolution: {integrity: sha512-cHLLAFatBATyIKqZOkk/mDHUbzne2B3ZwxkzMHvFTCZCmLaXDpZRihQSn8UNXTkGD/3lb/W2sQz0etAftmHMJQ==, tarball: http://registry.npmjs.org/d3-brush/-/d3-brush-2.1.0.tgz} + dependencies: + d3-dispatch: 2.0.0 + d3-drag: 2.0.0 + d3-interpolate: 2.0.1 + d3-selection: 2.0.0 + d3-transition: 2.0.0(d3-selection@2.0.0) + dev: false + + /d3-chord@2.0.0: + resolution: {integrity: sha512-D5PZb7EDsRNdGU4SsjQyKhja8Zgu+SHZfUSO5Ls8Wsn+jsAKUUGkcshLxMg9HDFxG3KqavGWaWkJ8EpU8ojuig==, tarball: http://registry.npmjs.org/d3-chord/-/d3-chord-2.0.0.tgz} + dependencies: + d3-path: 2.0.0 + dev: false + + /d3-color@2.0.0: + resolution: {integrity: sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==, tarball: http://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz} + dev: false + + /d3-contour@2.0.0: + resolution: {integrity: sha512-9unAtvIaNk06UwqBmvsdHX7CZ+NPDZnn8TtNH1myW93pWJkhsV25JcgnYAu0Ck5Veb1DHiCv++Ic5uvJ+h50JA==, tarball: http://registry.npmjs.org/d3-contour/-/d3-contour-2.0.0.tgz} + dependencies: + d3-array: 2.12.1 + dev: false + + /d3-delaunay@5.3.0: + resolution: {integrity: sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==, tarball: http://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz} + dependencies: + delaunator: 4.0.1 + dev: false + + /d3-dispatch@2.0.0: + resolution: {integrity: sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==, tarball: http://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz} + dev: false + + /d3-drag@2.0.0: + resolution: {integrity: sha512-g9y9WbMnF5uqB9qKqwIIa/921RYWzlUDv9Jl1/yONQwxbOfszAWTCm8u7HOTgJgRDXiRZN56cHT9pd24dmXs8w==, tarball: http://registry.npmjs.org/d3-drag/-/d3-drag-2.0.0.tgz} + dependencies: + d3-dispatch: 2.0.0 + d3-selection: 2.0.0 + dev: false + + /d3-dsv@2.0.0: + resolution: {integrity: sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==, tarball: http://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz} + hasBin: true + dependencies: + commander: 2.20.3 + iconv-lite: 0.4.24 + rw: 1.3.3 + dev: false + + /d3-ease@2.0.0: + resolution: {integrity: sha512-68/n9JWarxXkOWMshcT5IcjbB+agblQUaIsbnXmrzejn2O82n3p2A9R2zEB9HIEFWKFwPAEDDN8gR0VdSAyyAQ==, tarball: http://registry.npmjs.org/d3-ease/-/d3-ease-2.0.0.tgz} + dev: false + + /d3-fetch@2.0.0: + resolution: {integrity: sha512-TkYv/hjXgCryBeNKiclrwqZH7Nb+GaOwo3Neg24ZVWA3MKB+Rd+BY84Nh6tmNEMcjUik1CSUWjXYndmeO6F7sw==, tarball: http://registry.npmjs.org/d3-fetch/-/d3-fetch-2.0.0.tgz} + dependencies: + d3-dsv: 2.0.0 + dev: false + + /d3-flextree@2.1.2: + resolution: {integrity: sha512-gJiHrx5uTTHq44bjyIb3xpbmmdZcWLYPKeO9EPVOq8EylMFOiH2+9sWqKAiQ4DcFuOZTAxPOQyv0Rnmji/g15A==, tarball: http://registry.npmjs.org/d3-flextree/-/d3-flextree-2.1.2.tgz} + dependencies: + d3-hierarchy: 1.1.9 + dev: false + + /d3-force@2.1.1: + resolution: {integrity: sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==, tarball: http://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz} + dependencies: + d3-dispatch: 2.0.0 + d3-quadtree: 2.0.0 + d3-timer: 2.0.0 + dev: false + + /d3-format@2.0.0: + resolution: {integrity: sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==, tarball: http://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz} + dev: false + + /d3-geo@2.0.2: + resolution: {integrity: sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==, tarball: http://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz} + dependencies: + d3-array: 2.12.1 + dev: false + + /d3-hierarchy@1.1.9: + resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==, tarball: http://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz} + dev: false + + /d3-hierarchy@2.0.0: + resolution: {integrity: sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==, tarball: http://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz} + dev: false + + /d3-interpolate@2.0.1: + resolution: {integrity: sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==, tarball: http://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz} + dependencies: + d3-color: 2.0.0 + dev: false + + /d3-path@2.0.0: + resolution: {integrity: sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==, tarball: http://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz} + dev: false + + /d3-polygon@2.0.0: + resolution: {integrity: sha512-MsexrCK38cTGermELs0cO1d79DcTsQRN7IWMJKczD/2kBjzNXxLUWP33qRF6VDpiLV/4EI4r6Gs0DAWQkE8pSQ==, tarball: http://registry.npmjs.org/d3-polygon/-/d3-polygon-2.0.0.tgz} + dev: false + + /d3-quadtree@2.0.0: + resolution: {integrity: sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==, tarball: http://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz} + dev: false + + /d3-random@2.2.2: + resolution: {integrity: sha512-0D9P8TRj6qDAtHhRQn6EfdOtHMfsUWanl3yb/84C4DqpZ+VsgfI5iTVRNRbELCfNvRfpMr8OrqqUTQ6ANGCijw==, tarball: http://registry.npmjs.org/d3-random/-/d3-random-2.2.2.tgz} + dev: false + + /d3-scale-chromatic@2.0.0: + resolution: {integrity: sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA==, tarball: http://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz} + dependencies: + d3-color: 2.0.0 + d3-interpolate: 2.0.1 + dev: false + + /d3-scale@3.3.0: + resolution: {integrity: sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==, tarball: http://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz} + dependencies: + d3-array: 2.12.1 + d3-format: 2.0.0 + d3-interpolate: 2.0.1 + d3-time: 2.1.1 + d3-time-format: 3.0.0 + dev: false + + /d3-selection@2.0.0: + resolution: {integrity: sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==, tarball: http://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz} + dev: false + + /d3-shape@2.1.0: + resolution: {integrity: sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==, tarball: http://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz} + dependencies: + d3-path: 2.0.0 + dev: false + + /d3-time-format@3.0.0: + resolution: {integrity: sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==, tarball: http://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz} + dependencies: + d3-time: 2.1.1 + dev: false + + /d3-time@2.1.1: + resolution: {integrity: sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==, tarball: http://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz} + dependencies: + d3-array: 2.12.1 + dev: false + + /d3-timer@2.0.0: + resolution: {integrity: sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==, tarball: http://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz} + dev: false + + /d3-transition@2.0.0(d3-selection@2.0.0): + resolution: {integrity: sha512-42ltAGgJesfQE3u9LuuBHNbGrI/AJjNL2OAUdclE70UE6Vy239GCBEYD38uBPoLeNsOhFStGpPI0BAOV+HMxog==, tarball: http://registry.npmjs.org/d3-transition/-/d3-transition-2.0.0.tgz} + peerDependencies: + d3-selection: '2' + dependencies: + d3-color: 2.0.0 + d3-dispatch: 2.0.0 + d3-ease: 2.0.0 + d3-interpolate: 2.0.1 + d3-selection: 2.0.0 + d3-timer: 2.0.0 + dev: false + + /d3-zoom@2.0.0: + resolution: {integrity: sha512-fFg7aoaEm9/jf+qfstak0IYpnesZLiMX6GZvXtUSdv8RH2o4E2qeelgdU09eKS6wGuiGMfcnMI0nTIqWzRHGpw==, tarball: http://registry.npmjs.org/d3-zoom/-/d3-zoom-2.0.0.tgz} + dependencies: + d3-dispatch: 2.0.0 + d3-drag: 2.0.0 + d3-interpolate: 2.0.1 + d3-selection: 2.0.0 + d3-transition: 2.0.0(d3-selection@2.0.0) + dev: false + + /d3@6.7.0: + resolution: {integrity: sha512-hNHRhe+yCDLUG6Q2LwvR/WdNFPOJQ5VWqsJcwIYVeI401+d2/rrCjxSXkiAdIlpx7/73eApFB4Olsmh3YN7a6g==, tarball: http://registry.npmjs.org/d3/-/d3-6.7.0.tgz} + dependencies: + d3-array: 2.12.1 + d3-axis: 2.1.0 + d3-brush: 2.1.0 + d3-chord: 2.0.0 + d3-color: 2.0.0 + d3-contour: 2.0.0 + d3-delaunay: 5.3.0 + d3-dispatch: 2.0.0 + d3-drag: 2.0.0 + d3-dsv: 2.0.0 + d3-ease: 2.0.0 + d3-fetch: 2.0.0 + d3-force: 2.1.1 + d3-format: 2.0.0 + d3-geo: 2.0.2 + d3-hierarchy: 2.0.0 + d3-interpolate: 2.0.1 + d3-path: 2.0.0 + d3-polygon: 2.0.0 + d3-quadtree: 2.0.0 + d3-random: 2.2.2 + d3-scale: 3.3.0 + d3-scale-chromatic: 2.0.0 + d3-selection: 2.0.0 + d3-shape: 2.1.0 + d3-time: 2.1.1 + d3-time-format: 3.0.0 + d3-timer: 2.0.0 + d3-transition: 2.0.0(d3-selection@2.0.0) + d3-zoom: 2.0.0 + dev: false + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==, tarball: http://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, tarball: http://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + + /data-uri-to-buffer@0.0.3: + resolution: {integrity: sha512-Cp+jOa8QJef5nXS5hU7M1DWzXPEIoVR3kbV0dQuVGwROZg8bGf1DcCnkmajBTnvghTtSNMUdRrPjgaT6ZQucbw==} + dev: true + + /data-uri-to-buffer@3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==, tarball: http://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz} + engines: {node: '>= 6'} + dev: false + + /data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==, tarball: http://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz} + engines: {node: '>= 12'} + dev: false + + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.21.5 + dev: false + + /dateformat@2.2.0: + resolution: {integrity: sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==, tarball: http://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz} + dev: false + + /dayjs@1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==, tarball: http://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz} + dev: false + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==, tarball: http://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz} + dev: true + + /debounce-fn@4.0.0: + resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==, tarball: http://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + mimic-fn: 3.1.0 + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, tarball: http://registry.npmjs.org/debug/-/debug-2.6.9.tgz} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /debuglog@1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==, tarball: http://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz} + dev: false + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, tarball: http://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, tarball: http://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz} + engines: {node: '>=0.10.0'} + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, tarball: http://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz} + dev: true + + /deep-equal@2.2.1: + resolution: {integrity: sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.0 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.9 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: http://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, tarball: http://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz} + engines: {node: '>=0.10.0'} + + /default-user-agent@1.0.0: + resolution: {integrity: sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==, tarball: http://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz} + engines: {node: '>= 0.10.0'} + dependencies: + os-name: 1.0.3 + dev: false + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, tarball: http://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz} + dependencies: + clone: 1.0.4 + dev: true + + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, tarball: http://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.6 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.2 + isobject: 3.0.1 + dev: true + + /defu@6.1.2: + resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} + dev: true + + /degenerator@3.0.4: + resolution: {integrity: sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==, tarball: http://registry.npmjs.org/degenerator/-/degenerator-3.0.4.tgz} + engines: {node: '>= 6'} + dependencies: + ast-types: 0.13.4 + escodegen: 1.14.3 + esprima: 4.0.1 + vm2: 3.9.17 + dev: false + + /del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /delaunator@4.0.1: + resolution: {integrity: sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==, tarball: http://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz} + dev: false + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, tarball: http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz} + engines: {node: '>=0.4.0'} + + /delegate@3.2.0: + resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==, tarball: http://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz} + dev: false + + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true + + /denque@1.5.1: + resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==, tarball: http://registry.npmjs.org/denque/-/denque-1.5.1.tgz} + engines: {node: '>=0.10'} + dev: false + + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==, tarball: http://registry.npmjs.org/denque/-/denque-2.1.0.tgz} + engines: {node: '>=0.10'} + dev: false + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, tarball: http://registry.npmjs.org/depd/-/depd-2.0.0.tgz} + engines: {node: '>= 0.8'} + + /destr@1.2.2: + resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} + dev: true + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, tarball: http://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + dev: true + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, tarball: http://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz} + engines: {node: '>=8'} + dev: true + + /detect-node@2.0.4: + resolution: {integrity: sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==, tarball: http://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz} + dev: false + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, tarball: http://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz} + + /dezalgo@1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, tarball: http://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz} + + /diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==, tarball: http://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, tarball: http://registry.npmjs.org/diff/-/diff-4.0.2.tgz} + engines: {node: '>=0.3.1'} + + /digest-header@1.1.0: + resolution: {integrity: sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==, tarball: http://registry.npmjs.org/digest-header/-/digest-header-1.1.0.tgz} + engines: {node: '>= 8.0.0'} + dev: false + + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==, tarball: http://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz} + dev: false + + /dir-compare@3.3.0: + resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + dependencies: + buffer-equal: 1.0.1 + minimatch: 3.1.2 + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, tarball: http://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz} + + /dmg-builder@24.4.0: + resolution: {integrity: sha512-p5z9Cx539GSBYb+b09Z+hMhuBTh/BrI71VRg4rgF6f2xtIRK/YlTGVS/O08k5OojoyhZcpS7JXxDVSmQoWgiiQ==} + dependencies: + app-builder-lib: 24.4.0 + builder-util: 24.4.0 + builder-util-runtime: 9.2.1 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: registry.npmmirror.com/dmg-license@1.0.11 + transitivePeerDependencies: + - supports-color + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, tarball: http://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, tarball: http://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /doctypes@1.1.0: + resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==, tarball: http://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz} + requiresBuild: true + dev: false + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, tarball: http://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: http://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + /dom-to-image@2.6.0: + resolution: {integrity: sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA==, tarball: http://registry.npmjs.org/dom-to-image/-/dom-to-image-2.6.0.tgz} + dev: false + + /dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==, tarball: http://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz} + dev: false + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: http://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz} + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@3.3.0: + resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==, tarball: http://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: false + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, tarball: http://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: http://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, tarball: http://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, tarball: http://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==, tarball: http://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz} + engines: {node: '>=10'} + dependencies: + is-obj: 2.0.0 + dev: false + + /dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dev: true + + /dotenv@10.0.0: + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==, tarball: http://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz} + engines: {node: '>=10'} + dev: false + + /dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==, tarball: http://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz} + engines: {node: '>=12'} + + /dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + dev: true + + /duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==, tarball: http://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz} + dependencies: + readable-stream: 2.3.8 + dev: false + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, tarball: http://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz} + dev: true + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, tarball: http://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + /ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, tarball: http://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz} + dependencies: + safe-buffer: 5.2.1 + dev: false + + /echarts@5.4.2: + resolution: {integrity: sha512-2W3vw3oI2tWJdyAz+b8DuWS0nfXtSDqlDmqgin/lfzbkB01cuMEN66KWBlmur3YMp5nEDEEt5s23pllnAzB4EA==} + dependencies: + tslib: 2.3.0 + zrender: 5.4.3 + dev: false + + /editorconfig@0.15.3: + resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==, tarball: http://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz} + hasBin: true + dependencies: + commander: 2.20.3 + lru-cache: 4.1.5 + semver: 5.7.1 + sigmund: 1.0.1 + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, tarball: http://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz} + + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dependencies: + jake: 10.8.5 + dev: true + + /electron-builder@24.4.0: + resolution: {integrity: sha512-D5INxodxaUIJgEX6p/fqBd8wQNS8XRAToNIJ9SQC+taNS5D73ZsjLuXiRraFGCB0cVk9KeKhEkdEOH5AaVya4g==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + app-builder-lib: 24.4.0 + builder-util: 24.4.0 + builder-util-runtime: 9.2.1 + chalk: 4.1.2 + dmg-builder: 24.4.0 + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + read-config-file: 6.3.2 + simple-update-notifier: 1.1.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /electron-publish@24.4.0: + resolution: {integrity: sha512-U3mnVSxIfNrLW7ZnwiedFhcLf6ExPFXgAsx89WpfQFsV4gFAt/LG+H74p0m9NSvsLXiZuF82yXoxi7Ou8GHq4Q==} + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 24.4.0 + builder-util-runtime: 9.2.1 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: registry.npmmirror.com/mime@2.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /electron-to-chromium@1.4.379: + resolution: {integrity: sha512-eRMq6Cf4PhjB14R9U6QcXM/VRQ54Gc3OL9LKnFugUIh2AXm3KJlOizlSfVIgjH76bII4zHGK4t0PVTE5qq8dZg==, tarball: http://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.379.tgz} + dev: true + + /electron@25.3.1: + resolution: {integrity: sha512-t0QXXqgf0/P0OJ9LU3qpcBMK+wL0FRwTQfooBaaG08v5hywPzc1yplfb3l4tS1xC0Ttw8IBaKLBeEoRgxBRHjg==} + engines: {node: '>= 12.20.55'} + hasBin: true + requiresBuild: true + dependencies: + '@electron/get': 2.0.2 + '@types/node': 18.16.3 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + + /element-plus@2.3.4(vue@3.2.47): + resolution: {integrity: sha512-SQr0J9z7N4z48WYk/l9NE2tizl8Q7j2OhqlpTc42k4pGncry3+rVX6dsmcsglFynn6vt3NzYxWJqmLFyDKQq+g==} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@ctrl/tinycolor': 3.6.0 + '@element-plus/icons-vue': 2.1.0(vue@3.2.47) + '@floating-ui/dom': 1.2.7 + '@popperjs/core': registry.npmmirror.com/@sxzz/popperjs-es@2.11.7 + '@types/lodash': 4.14.194 + '@types/lodash-es': 4.17.7 + '@vueuse/core': 9.13.0(vue@3.2.47) + async-validator: 4.2.5 + dayjs: 1.11.7 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.2.47 + transitivePeerDependencies: + - '@vue/composition-api' + dev: false + + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, tarball: http://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz} + engines: {node: '>=12'} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: http://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz} + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, tarball: http://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==, tarball: http://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz} + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, tarball: http://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz} + engines: {node: '>= 0.8'} + + /encoding-japanese@2.0.0: + resolution: {integrity: sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==, tarball: http://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.0.0.tgz} + engines: {node: '>=8.10.0'} + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, tarball: http://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz} + dependencies: + once: 1.4.0 + + /end-or-error@1.0.1: + resolution: {integrity: sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==, tarball: http://registry.npmjs.org/end-or-error/-/end-or-error-1.0.1.tgz} + engines: {node: '>= 0.11.14'} + dev: false + + /enhanced-resolve@5.13.0: + resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==, tarball: http://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, tarball: http://registry.npmjs.org/entities/-/entities-2.2.0.tgz} + + /entities@3.0.1: + resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==, tarball: http://registry.npmjs.org/entities/-/entities-3.0.1.tgz} + engines: {node: '>=0.12'} + dev: false + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, tarball: http://registry.npmjs.org/entities/-/entities-4.5.0.tgz} + engines: {node: '>=0.12'} + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, tarball: http://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz} + engines: {node: '>=6'} + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, tarball: http://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz} + dependencies: + is-arrayish: 0.2.1 + + /eruda@3.0.0: + resolution: {integrity: sha512-6L8A8aBHOQv0rqeBlNdJEl/hl6OAdLVRtJlVmBIlIJ6Fe1a92HFXO58jHLC0vFyuKV0deTjYjRaWwLo9lJ9K9A==} + dev: false + + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==, tarball: http://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-module-lexer@1.2.1: + resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==, tarball: http://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz} + dev: true + + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, tarball: http://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==, tarball: http://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz} + dependencies: + has: 1.0.3 + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, tarball: http://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + /es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + requiresBuild: true + optional: true + + /es6-object-assign@1.1.0: + resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==, tarball: http://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz} + dev: false + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 + dev: true + + /esbuild@0.17.18: + resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==, tarball: http://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.18 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.18 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.18 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.18 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.18 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.18 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.18 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.18 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.18 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.18 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.18 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.18 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.18 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.18 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.18 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.18 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.18 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.18 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.18 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.18 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.18 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.18 + dev: true + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-goat@3.0.0: + resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==, tarball: http://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz} + engines: {node: '>=10'} + dev: false + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, tarball: http://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz} + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, tarball: http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + engines: {node: '>=10'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: true + + /escodegen@1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==, tarball: http://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + /eslint-config-prettier@8.8.0(eslint@8.39.0): + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==, tarball: http://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.39.0 + + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==, tarball: http://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz} + dependencies: + debug: 3.2.7 + is-core-module: 2.12.0 + resolve: 1.22.2 + transitivePeerDependencies: + - supports-color + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, tarball: http://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + debug: 3.2.7 + eslint: 8.39.0 + eslint-import-resolver-node: 0.3.7 + transitivePeerDependencies: + - supports-color + + /eslint-plugin-antfu@0.35.3(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-90Xct24s2n3aQhuuFFcPLhF5E6lU5s225B0VXupSjvDTuF+CmSQQLQG6KcqcdpA8O6dMbeXB9zy3SJ4aO7lndw==, tarball: http://registry.npmjs.org/eslint-plugin-antfu/-/eslint-plugin-antfu-0.35.3.tgz} + dependencies: + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + + /eslint-plugin-antfu@0.38.5(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-uBLSmOMhMLuioEm92Y7k4igNXBXcCrskzQYZKhzjoj+2GBo/hanKjCIHf2oDmydnCx6KCFARnQ+mnNanM0/qig==} + dependencies: + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + transitivePeerDependencies: + - eslint + - supports-color + - typescript + dev: true + + /eslint-plugin-es@4.1.0(eslint@8.39.0): + resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==, tarball: http://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.39.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.39.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==, tarball: http://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.39.0 + ignore: 5.2.4 + + /eslint-plugin-html@7.1.0: + resolution: {integrity: sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==, tarball: http://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz} + dependencies: + htmlparser2: 8.0.2 + + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==, tarball: http://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + array.prototype.flatmap: 1.3.1 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.39.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0) + has: 1.0.3 + is-core-module: 2.12.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.2 + semver: 6.3.0 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@4.9.5): + resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==, tarball: http://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@4.9.5) + eslint: 8.39.0 + transitivePeerDependencies: + - supports-color + - typescript + + /eslint-plugin-jest@27.2.1(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==, tarball: http://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsonc@2.7.0(eslint@8.39.0): + resolution: {integrity: sha512-DZgC71h/hZ9t5k/OGAKOMdJCleg2neZLL7No+YYi2ZMroCN4X5huZdrLf1USbrc6UTHwYujd1EDwXHg1qJ6CYw==, tarball: http://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.7.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + eslint: 8.39.0 + jsonc-eslint-parser: 2.2.0 + natural-compare: 1.4.0 + + /eslint-plugin-markdown@3.0.0(eslint@8.39.0): + resolution: {integrity: sha512-hRs5RUJGbeHDLfS7ELanT0e29Ocyssf/7kBM+p7KluY5AwngGkDf8Oyu4658/NZSGTTq05FZeWbkxXtbVyHPwg==, tarball: http://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.39.0 + mdast-util-from-markdown: 0.8.5 + transitivePeerDependencies: + - supports-color + + /eslint-plugin-n@15.7.0(eslint@8.39.0): + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==, tarball: http://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz} + engines: {node: '>=12.22.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + builtins: 5.0.1 + eslint: 8.39.0 + eslint-plugin-es: 4.1.0(eslint@8.39.0) + eslint-utils: 3.0.0(eslint@8.39.0) + ignore: 5.2.4 + is-core-module: 2.12.0 + minimatch: 3.1.2 + resolve: 1.22.2 + semver: 7.5.0 + + /eslint-plugin-no-only-tests@3.1.0: + resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==, tarball: http://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz} + engines: {node: '>=5.0.0'} + + /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.39.0)(prettier@2.8.8): + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==, tarball: http://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.39.0 + eslint-config-prettier: 8.8.0(eslint@8.39.0) + prettier: 2.8.8 + prettier-linter-helpers: 1.0.0 + + /eslint-plugin-promise@6.1.1(eslint@8.39.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==, tarball: http://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.39.0 + + /eslint-plugin-unicorn@45.0.2(eslint@8.39.0): + resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==, tarball: http://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.28.0' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + ci-info: 3.8.0 + clean-regexp: 1.0.0 + eslint: 8.39.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.9.1 + safe-regex: 2.1.1 + semver: 7.5.0 + strip-indent: 3.0.0 + + /eslint-plugin-unicorn@46.0.0(eslint@8.39.0): + resolution: {integrity: sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA==} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.28.0' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + ci-info: 3.8.0 + clean-regexp: 1.0.0 + eslint: 8.39.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.9.1 + safe-regex: 2.1.1 + semver: 7.5.0 + strip-indent: 3.0.0 + dev: true + + /eslint-plugin-unused-imports@2.0.0(@typescript-eslint/eslint-plugin@5.59.2)(eslint@8.39.0): + resolution: {integrity: sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==, tarball: http://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + eslint-rule-composer: 0.3.0 + + /eslint-plugin-vue@9.11.0(eslint@8.39.0): + resolution: {integrity: sha512-bBCJAZnkBV7ATH4Z1E7CvN3nmtS4H7QUU3UBxPdo8WohRU+yHjnQRALpTbxMVcz0e4Mx3IyxIdP5HYODMxK9cQ==, tarball: http://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.11.0.tgz} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + eslint: 8.39.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.0.12 + semver: 7.5.0 + vue-eslint-parser: 9.1.1(eslint@8.39.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + /eslint-plugin-yml@1.5.0(eslint@8.39.0): + resolution: {integrity: sha512-iygN054g+ZrnYmtOXMnT+sx9iDNXt89/m0+506cQHeG0+5jJN8hY5iOPQLd3yfd50AfK/mSasajBWruf1SoHpQ==, tarball: http://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.5.0.tgz} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.39.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.2.0 + transitivePeerDependencies: + - supports-color + + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==, tarball: http://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz} + engines: {node: '>=4.0.0'} + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, tarball: http://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, tarball: http://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: false + + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==, tarball: http://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==, tarball: http://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + + /eslint-utils@3.0.0(eslint@8.39.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, tarball: http://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.39.0 + eslint-visitor-keys: 2.1.0 + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==, tarball: http://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz} + engines: {node: '>=4'} + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, tarball: http://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} + engines: {node: '>=10'} + + /eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==, tarball: http://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /eslint-visitor-keys@3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==, tarball: http://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.39.0: + resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==, tarball: http://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@eslint-community/regexpp': 4.5.1 + '@eslint/eslintrc': 2.0.2 + '@eslint/js': 8.39.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.20.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.4 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + /esno@0.16.3: + resolution: {integrity: sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==} + hasBin: true + dependencies: + tsx: 3.12.7 + dev: true + + /espree@9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==, tarball: http://registry.npmjs.org/espree/-/espree-9.5.1.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.0 + + /esprima-extract-comments@1.1.0: + resolution: {integrity: sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw==} + engines: {node: '>=4'} + dependencies: + esprima: 4.0.1 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, tarball: http://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz} + engines: {node: '>=4'} + hasBin: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, tarball: http://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: http://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, tarball: http://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz} + engines: {node: '>=4.0'} + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: http://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz} + engines: {node: '>=4.0'} + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + requiresBuild: true + dependencies: + '@types/estree': 1.0.1 + dev: false + optional: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: http://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, tarball: http://registry.npmjs.org/etag/-/etag-1.8.1.tgz} + engines: {node: '>= 0.6'} + + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, tarball: http://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz} + engines: {node: '>=6'} + dev: false + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, tarball: http://registry.npmjs.org/events/-/events-3.3.0.tgz} + engines: {node: '>=0.8.x'} + dev: true + + /eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + dev: false + + /evtd@0.2.4: + resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==, tarball: http://registry.npmjs.org/evtd/-/evtd-0.2.4.tgz} + dev: false + + /exceljs@4.3.0: + resolution: {integrity: sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==, tarball: http://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz} + engines: {node: '>=8.3.0'} + dependencies: + archiver: 5.3.1 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + fast-csv: 4.3.6 + jszip: 3.10.1 + readable-stream: 3.6.2 + saxes: 5.0.1 + tmp: 0.2.1 + unzipper: 0.10.14 + uuid: 8.3.2 + dev: false + + /execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, tarball: http://registry.npmjs.org/execa/-/execa-4.1.0.tgz} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, tarball: http://registry.npmjs.org/execa/-/execa-5.1.1.tgz} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.1.1: + resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==, tarball: http://registry.npmjs.org/execa/-/execa-7.1.1.tgz} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /exif-parser@0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==, tarball: http://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz} + dev: false + + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, tarball: http://registry.npmjs.org/exit/-/exit-0.1.2.tgz} + engines: {node: '>= 0.8.0'} + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /expect@29.5.0: + resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==, tarball: http://registry.npmjs.org/expect/-/expect-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.5.0 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.5.0 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + dev: true + + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + dev: true + + /express-xml-bodyparser@0.3.0: + resolution: {integrity: sha512-biHFKaZsPZQaf6H+xB8f8aawqe4c671JIF2RN8f3k9iOtPe8TVBb4H8tQkURFWFpGic53TCD5+uno9u52hdYoA==, tarball: http://registry.npmjs.org/express-xml-bodyparser/-/express-xml-bodyparser-0.3.0.tgz} + engines: {node: '>=0.10'} + dependencies: + xml2js: 0.4.23 + dev: false + + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==, tarball: http://registry.npmjs.org/express/-/express-4.18.2.tgz} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: registry.nlark.com/setprototypeof@1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, tarball: http://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, tarball: http://registry.npmjs.org/extend/-/extend-3.0.2.tgz} + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, tarball: http://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extract-comments@1.1.0: + resolution: {integrity: sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q==} + engines: {node: '>=6'} + dependencies: + esprima-extract-comments: 1.1.0 + parse-code-context: 1.0.0 + dev: true + + /extract-css@3.0.1: + resolution: {integrity: sha512-mLNcMxYX7JVPcGUw7pgjczasLnvimYGlXFWuSx2YQ421sZDlBq4Dh0UzsSeXutf80Z0P2BtV5ZZt0FbaWTOxsQ==, tarball: http://registry.npmjs.org/extract-css/-/extract-css-3.0.1.tgz} + dependencies: + batch: 0.6.1 + href-content: 2.0.2 + list-stylesheets: 2.0.1 + style-data: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': registry.npmmirror.com/@types/yauzl@2.10.3 + transitivePeerDependencies: + - supports-color + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, tarball: http://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz} + engines: {'0': node >=0.6.0} + + /fast-csv@4.3.6: + resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==, tarball: http://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz} + engines: {node: '>=10.0.0'} + dependencies: + '@fast-csv/format': 4.3.5 + '@fast-csv/parse': 4.3.6 + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + + /fast-diff@1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==, tarball: http://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz} + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, tarball: http://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: http://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, tarball: http://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + + /fast-safe-stringify@2.0.7: + resolution: {integrity: sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==} + dev: false + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, tarball: http://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz} + + /fast-xml-parser@4.2.2: + resolution: {integrity: sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==, tarball: http://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, tarball: http://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz} + dependencies: + bser: 2.1.1 + dev: true + + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + + /fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==, tarball: http://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: false + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, tarball: http://registry.npmjs.org/figures/-/figures-3.2.0.tgz} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, tarball: http://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + + /file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==, tarball: http://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz} + dev: false + + /file-type@16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==, tarball: http://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz} + engines: {node: '>=10'} + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 6.3.0 + token-types: 4.2.1 + dev: false + + /file-uri-to-path@2.0.0: + resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==, tarball: http://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz} + engines: {node: '>= 6'} + dev: false + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, tarball: http://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, tarball: http://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, tarball: http://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /findup-sync@5.0.0: + resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} + engines: {node: '>= 10.13.0'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /fined@2.0.0: + resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} + engines: {node: '>= 10.13.0'} + dependencies: + expand-tilde: 2.0.2 + is-plain-object: 5.0.0 + object.defaults: 1.1.0 + object.pick: 1.3.0 + parse-filepath: 1.0.2 + dev: true + + /first-chunk-stream@1.0.0: + resolution: {integrity: sha512-ArRi5axuv66gEsyl3UuK80CzW7t56hem73YGNYxNWTGNKFJUadSb9Gu9SHijYEUi8ulQMf1bJomYNwSCPHhtTQ==} + engines: {node: '>=0.10.0'} + dev: true + + /flagged-respawn@2.0.0: + resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} + engines: {node: '>= 10.13.0'} + dev: true + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, tarball: http://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + + /flat-util@1.1.9: + resolution: {integrity: sha512-BOTMw/6rbbxVjv5JQvwgGMc2/6wWGd2VeyTvnzvvE49VRjS0tTxLbry/QVP1yPw8SaAOBYsnixmzruXoqjdUHA==, tarball: http://registry.npmjs.org/flat-util/-/flat-util-1.1.9.tgz} + dev: false + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, tarball: http://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz} + + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, tarball: http://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, tarball: http://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz} + dependencies: + is-callable: 1.2.7 + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /for-own@1.0.0: + resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /foreachasync@3.0.0: + resolution: {integrity: sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==, tarball: http://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz} + dev: false + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.0.1 + dev: true + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, tarball: http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz} + + /fork-ts-checker-webpack-plugin@8.0.0(typescript@4.9.5)(webpack@5.80.0): + resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==, tarball: http://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz} + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0' + webpack: ^5.11.0 + dependencies: + '@babel/code-frame': 7.21.4 + chalk: 4.1.2 + chokidar: 3.5.3 + cosmiconfig: 7.1.0 + deepmerge: 4.3.1 + fs-extra: 10.1.0 + memfs: 3.5.1 + minimatch: 3.1.2 + node-abort-controller: 3.1.1 + schema-utils: 3.1.2 + semver: 7.5.0 + tapable: 2.2.1 + typescript: 4.9.5 + webpack: 5.80.0 + dev: true + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, tarball: http://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, tarball: http://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, tarball: http://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: false + + /formidable@2.1.2: + resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==, tarball: http://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz} + dependencies: + dezalgo: 1.0.4 + hexoid: 1.0.0 + once: 1.4.0 + qs: 6.11.1 + + /formstream@1.2.0: + resolution: {integrity: sha512-ef4F+FQLnQLly1/AZ5OGNgGzzlOmp+T7+L/TaXASJ1GrETrpZb78/Mz7z+1Ra5FX3nLZE0WIOInGOoa81LxWew==, tarball: http://registry.npmjs.org/formstream/-/formstream-1.2.0.tgz} + dependencies: + destroy: 1.2.0 + mime: registry.npmmirror.com/mime@2.6.0 + pause-stream: 0.0.11 + dev: false + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, tarball: http://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz} + engines: {node: '>= 0.6'} + + /fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==, tarball: http://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz} + dev: true + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /framesync@6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + dependencies: + tslib: 2.4.0 + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, tarball: http://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz} + engines: {node: '>= 0.6'} + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, tarball: http://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz} + dev: false + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, tarball: http://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, tarball: http://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs-minipass@3.0.2: + resolution: {integrity: sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 5.0.0 + dev: true + + /fs-monkey@1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==, tarball: http://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: http://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz} + + /fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==, tarball: http://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz} + engines: {node: '>=0.6'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + inherits: registry.npmmirror.com/inherits@2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + dev: false + + /ftp@0.3.10: + resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==, tarball: http://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz} + engines: {node: '>=0.8.0'} + dependencies: + readable-stream: 1.1.14 + xregexp: 2.0.0 + dev: false + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, tarball: http://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + functions-have-names: 1.2.3 + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, tarball: http://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz} + + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + + /gaze@1.1.3: + resolution: {integrity: sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==} + engines: {node: '>= 4.0.0'} + dependencies: + globule: 1.3.4 + dev: true + + /generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==, tarball: http://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz} + dependencies: + is-property: 1.0.2 + dev: false + + /generic-pool@3.9.0: + resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==, tarball: http://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz} + engines: {node: '>= 4'} + dev: false + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, tarball: http://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, tarball: http://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz} + engines: {node: '>=8.0.0'} + dev: true + + /get-pixels@3.3.3: + resolution: {integrity: sha512-5kyGBn90i9tSMUVHTqkgCHsoWoR+/lGbl4yC83Gefyr0HLIhgSWEx/2F/3YgsZ7UpYNuM6pDhDK7zebrUJ5nXg==} + dependencies: + data-uri-to-buffer: 0.0.3 + jpeg-js: 0.4.4 + mime-types: 2.1.35 + ndarray: 1.0.19 + ndarray-pack: 1.2.1 + node-bitmap: 0.0.1 + omggif: 1.0.10 + parse-data-uri: 0.2.0 + pngjs: 3.4.0 + request: 2.88.2 + through: 2.3.8 + dev: true + + /get-port@5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==, tarball: http://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz} + engines: {node: '>=8'} + dev: false + + /get-ready@1.0.0: + resolution: {integrity: sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==, tarball: http://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz} + dev: false + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, tarball: http://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, tarball: http://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, tarball: http://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + + /get-tsconfig@4.5.0: + resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} + dev: true + + /get-uri@3.0.2: + resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==, tarball: http://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + data-uri-to-buffer: 3.0.1 + debug: 4.3.4 + file-uri-to-path: 2.0.0 + fs-extra: 8.1.0 + ftp: 0.3.10 + transitivePeerDependencies: + - supports-color + dev: false + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, tarball: http://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz} + dependencies: + assert-plus: 1.0.0 + + /gif-encoder@0.4.3: + resolution: {integrity: sha512-HMfSa+EIng62NbDhM63QGYoc49/m8DcZ9hhBtw+CXX9mKboSpeFVxjZ2WEWaMFZ14MUjfACK7jsrxrJffIVrCg==} + engines: {node: '>= 0.8.0'} + dependencies: + readable-stream: 1.1.14 + dev: true + + /gifwrap@0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==, tarball: http://registry.npmjs.org/gifwrap/-/gifwrap-0.9.4.tgz} + dependencies: + image-q: 4.0.0 + omggif: 1.0.10 + dev: false + + /giget@1.1.2: + resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} + hasBin: true + dependencies: + colorette: 2.0.20 + defu: 6.1.2 + https-proxy-agent: 5.0.1 + mri: 1.2.0 + node-fetch-native: 1.1.0 + pathe: 1.1.0 + tar: 6.1.13 + transitivePeerDependencies: + - supports-color + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==, tarball: http://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, tarball: http://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, tarball: http://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + dev: true + + /glob@10.3.3: + resolution: {integrity: sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.2.1 + minimatch: 9.0.3 + minipass: 5.0.0 + path-scurry: 1.10.1 + dev: true + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, tarball: http://registry.npmjs.org/glob/-/glob-7.1.6.tgz} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: http://registry.npmjs.org/glob/-/glob-7.2.3.tgz} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /glob@8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==, tarball: http://registry.npmjs.org/glob/-/glob-8.0.3.tgz} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: false + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, tarball: http://registry.npmjs.org/glob/-/glob-8.1.0.tgz} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: false + + /glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==, tarball: http://registry.npmjs.org/glob/-/glob-9.3.5.tgz} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.7.0 + dev: true + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, tarball: http://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + dev: true + + /global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==, tarball: http://registry.npmjs.org/global/-/global-4.4.0.tgz} + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: false + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, tarball: http://registry.npmjs.org/globals/-/globals-13.20.0.tgz} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, tarball: http://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + + /globby@13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + dev: true + + /globule@1.3.4: + resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} + engines: {node: '>= 0.10'} + dependencies: + glob: 7.1.7 + lodash: 4.17.21 + minimatch: 3.0.8 + dev: true + + /good-listener@1.2.2: + resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==, tarball: http://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz} + dependencies: + delegate: 3.2.0 + dev: false + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, tarball: http://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz} + dependencies: + get-intrinsic: 1.2.0 + + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, tarball: http://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz} + + /guid-typescript@1.0.9: + resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==, tarball: http://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz} + dev: false + + /handlebars-layouts@3.1.4: + resolution: {integrity: sha512-2llBmvnj8ueOfxNHdRzJOcgalzZjYVd9+WAl93kPYmlX4WGx7FTHTzNxhK+i9YKY2OSjzfehgpLiIwP/OJr6tw==} + engines: {node: '>= 0.10'} + dev: true + + /handlebars@4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + requiresBuild: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: registry.npmmirror.com/uglify-js@3.17.4 + dev: false + + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, tarball: http://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz} + engines: {node: '>=4'} + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, tarball: http://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, tarball: http://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, tarball: http://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz} + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, tarball: http://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: http://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, tarball: http://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz} + dependencies: + get-intrinsic: 1.2.0 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, tarball: http://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz} + engines: {node: '>= 0.4'} + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, tarball: http://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + + /hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + requiresBuild: true + dev: false + optional: true + + /hbs@4.2.0: + resolution: {integrity: sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==, tarball: http://registry.npmjs.org/hbs/-/hbs-4.2.0.tgz} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + handlebars: 4.7.7 + walk: 2.3.15 + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: http://registry.npmjs.org/he/-/he-1.2.0.tgz} + hasBin: true + + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + dependencies: + capital-case: 1.0.4 + tslib: 2.5.0 + dev: true + + /hexoid@1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==} + engines: {node: '>=8'} + + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + dev: false + + /highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, tarball: http://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz} + dev: false + + /highlight.js@11.8.0: + resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==, tarball: http://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz} + engines: {node: '>=12.0.0'} + dev: false + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, tarball: http://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz} + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, tarball: http://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hotkeys-js@3.10.2: + resolution: {integrity: sha512-Z6vLmJTYzkbZZXlBkhrYB962Q/rZGc/WHQiyEGu9ZZVF7bAeFDjjDa31grWREuw9Ygb4zmlov2bTkPYqj0aFnQ==} + dev: false + + /href-content@2.0.2: + resolution: {integrity: sha512-f/e40VYI+KciPGfFzfdw1wu8dptpUA9rYQJNbpYVRI217lyuo7nBNO7BjYfTiQMhU/AthfvPDMvj46uAgzUccQ==, tarball: http://registry.npmjs.org/href-content/-/href-content-2.0.2.tgz} + dependencies: + remote-content: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, tarball: http://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz} + dev: true + + /html-minifier@4.0.0: + resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==, tarball: http://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz} + engines: {node: '>=6'} + hasBin: true + dependencies: + camel-case: 3.0.0 + clean-css: 4.2.4 + commander: 2.20.3 + he: 1.2.0 + param-case: 2.1.1 + relateurl: 0.2.7 + uglify-js: registry.npmmirror.com/uglify-js@3.17.4 + dev: false + + /html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + dev: true + + /html-to-image@1.11.11: + resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==, tarball: http://registry.npmjs.org/html-to-image/-/html-to-image-1.11.11.tgz} + dev: false + + /html-to-text@9.0.4: + resolution: {integrity: sha512-ckrQ5N2yZS7qSgKxUbqrBZ02NxD5cSy7KuYjCNIf+HWbdzY3fbjYjQsoRIl6TiaZ4+XWOi0ggFP8/pmgCK/o+A==, tarball: http://registry.npmjs.org/html-to-text/-/html-to-text-9.0.4.tgz} + engines: {node: '>=14'} + dependencies: + '@selderee/plugin-htmlparser2': 0.10.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.10.0 + dev: false + + /html2canvas@1.4.1: + resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==, tarball: http://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz} + engines: {node: '>=8.0.0'} + dependencies: + css-line-break: 2.1.0 + text-segmentation: 1.0.3 + dev: false + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.2 + dev: true + + /htmlparser2@5.0.1: + resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==, tarball: http://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 3.3.0 + domutils: 2.8.0 + entities: 2.2.0 + dev: false + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, tarball: http://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, tarball: http://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: registry.nlark.com/setprototypeof@1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + /http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, tarball: http://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.2 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1 + mime: 1.6.0 + minimist: 1.2.8 + opener: 1.5.2 + portfinder: 1.0.32 + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + dev: true + + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, tarball: http://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.17.0 + + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: registry.npmmirror.com/quick-lru@5.1.1 + resolve-alpn: 1.2.1 + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /httpx@2.2.7: + resolution: {integrity: sha512-Wjh2JOAah0pdczfqL8NC5378G7jMt0Zcpn8U+yyxAiejjlagzSTQgJHuVvka2VNPQlKfoGehYRc79WKq9E4gDw==} + dependencies: + '@types/node': 14.18.47 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + /human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, tarball: http://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz} + engines: {node: '>=8.12.0'} + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, tarball: http://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, tarball: http://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz} + engines: {node: '>=14.18.0'} + dev: true + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, tarball: http://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz} + dependencies: + ms: 2.1.3 + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, tarball: http://registry.npmjs.org/husky/-/husky-8.0.3.tgz} + engines: {node: '>=14'} + hasBin: true + dev: true + + /iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + requiresBuild: true + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + dev: true + optional: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, tarball: http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, tarball: http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, tarball: http://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz} + + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + + /image-q@4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==, tarball: http://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz} + dependencies: + '@types/node': 16.9.1 + dev: false + + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==, tarball: http://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz} + dev: false + + /immutable@4.3.0: + resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: http://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + dev: true + + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==, tarball: http://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, tarball: http://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, tarball: http://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz} + engines: {node: '>=8'} + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: http://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: http://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, tarball: http://registry.npmjs.org/ini/-/ini-1.3.8.tgz} + + /inline-css@4.0.1: + resolution: {integrity: sha512-gzumhrp0waBLF5TtwQcm5bviA9ZNURXeNOs2xVSTsX60FWPFlrPJol4HI8yrozZ6V5udWKUT3LS2tMUDMMdi1Q==, tarball: http://registry.npmjs.org/inline-css/-/inline-css-4.0.1.tgz} + engines: {node: '>=8'} + dependencies: + cheerio: 1.0.0-rc.12 + css-rules: 1.1.0 + extract-css: 3.0.1 + flat-util: 1.1.9 + pick-util: 1.1.5 + slick: 1.12.2 + specificity: 0.4.1 + transitivePeerDependencies: + - supports-color + dev: false + + /inquirer@8.2.4: + resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==, tarball: http://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==, tarball: http://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, tarball: http://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + + /internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==, tarball: http://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz} + dev: false + + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, tarball: http://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz} + engines: {node: '>= 0.10'} + dev: true + + /interpret@2.2.0: + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} + dev: true + + /inversify@6.0.1: + resolution: {integrity: sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==, tarball: http://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz} + dev: false + + /ioredis@4.28.5: + resolution: {integrity: sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==, tarball: http://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz} + engines: {node: '>=6'} + dependencies: + cluster-key-slot: 1.1.2 + debug: 4.3.4 + denque: 1.5.1 + lodash.defaults: 4.2.0 + lodash.flatten: 4.4.0 + lodash.isarguments: 3.1.0 + p-map: 2.1.0 + redis-commands: 1.7.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /ioredis@5.3.2: + resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==, tarball: http://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz} + engines: {node: '>=12.22.0'} + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.4 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /iota-array@1.0.0: + resolution: {integrity: sha512-pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==} + dev: true + + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==, tarball: http://registry.npmjs.org/ip/-/ip-1.1.8.tgz} + dev: false + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==, tarball: http://registry.npmjs.org/ip/-/ip-2.0.0.tgz} + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, tarball: http://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz} + engines: {node: '>= 0.10'} + + /is-absolute@1.0.0: + resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} + engines: {node: '>=0.10.0'} + dependencies: + is-relative: 1.0.0 + is-windows: 1.0.2 + dev: true + + /is-accessor-descriptor@0.1.6: + resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-accessor-descriptor@1.0.0: + resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, tarball: http://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz} + + /is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==, tarball: http://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz} + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, tarball: http://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, tarball: http://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, tarball: http://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz} + dependencies: + has-bigints: 1.0.2 + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, tarball: http://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, tarball: http://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz} + + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==, tarball: http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, tarball: http://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz} + engines: {node: '>= 0.4'} + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.8.0 + dev: true + + /is-class-hotfix@0.0.6: + resolution: {integrity: sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==, tarball: http://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz} + dev: false + + /is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==, tarball: http://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz} + dependencies: + has: 1.0.3 + + /is-data-descriptor@0.1.4: + resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-data-descriptor@1.0.0: + resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, tarball: http://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, tarball: http://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz} + + /is-descriptor@0.1.6: + resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 0.1.6 + is-data-descriptor: 0.1.4 + kind-of: 5.1.0 + dev: true + + /is-descriptor@1.0.2: + resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} + engines: {node: '>=0.10.0'} + dependencies: + is-accessor-descriptor: 1.0.0 + is-data-descriptor: 1.0.0 + kind-of: 6.0.3 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, tarball: http://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz} + engines: {node: '>=8'} + hasBin: true + dev: false + + /is-expression@4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==, tarball: http://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz} + requiresBuild: true + dependencies: + acorn: registry.npmmirror.com/acorn@7.4.1 + object-assign: 4.1.1 + dev: false + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, tarball: http://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz} + engines: {node: '>=0.10.0'} + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: http://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + engines: {node: '>=8'} + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, tarball: http://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==, tarball: http://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz} + dev: false + + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, tarball: http://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz} + engines: {node: '>=6'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, tarball: http://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, tarball: http://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, tarball: http://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + dev: true + + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==, tarball: http://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, tarball: http://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + engines: {node: '>= 0.4'} + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, tarball: http://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, tarball: http://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz} + engines: {node: '>=8'} + + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, tarball: http://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz} + engines: {node: '>=8'} + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, tarball: http://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, tarball: http://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz} + requiresBuild: true + dev: false + + /is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==, tarball: http://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, tarball: http://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + + /is-relative@1.0.0: + resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} + engines: {node: '>=0.10.0'} + dependencies: + is-unc-path: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, tarball: http://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + dependencies: + call-bind: 1.0.2 + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, tarball: http://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, tarball: http://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, tarball: http://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, tarball: http://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + + /is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==, tarball: http://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + text-extensions: 1.9.0 + dev: true + + /is-type-of@1.4.0: + resolution: {integrity: sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==, tarball: http://registry.npmjs.org/is-type-of/-/is-type-of-1.4.0.tgz} + dependencies: + core-util-is: 1.0.3 + is-class-hotfix: 0.0.6 + isstream: 0.1.2 + dev: false + + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==, tarball: http://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, tarball: http://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz} + + /is-unc-path@1.0.0: + resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} + engines: {node: '>=0.10.0'} + dependencies: + unc-path-regex: 0.1.2 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, tarball: http://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} + engines: {node: '>=10'} + dev: true + + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + dev: true + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, tarball: http://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz} + dependencies: + call-bind: 1.0.2 + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, tarball: http://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, tarball: http://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: false + + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, tarball: http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz} + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, tarball: http://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz} + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==, tarball: http://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz} + engines: {node: '>= 8.0.0'} + dev: true + + /isbinaryfile@5.0.0: + resolution: {integrity: sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==} + engines: {node: '>= 14.0.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: http://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz} + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /isomorphic-fetch@3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==, tarball: http://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz} + dependencies: + node-fetch: 2.6.9 + whatwg-fetch: 3.6.2 + transitivePeerDependencies: + - encoding + dev: false + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, tarball: http://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz} + + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==, tarball: http://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, tarball: http://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.21.5 + '@babel/parser': 7.21.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==, tarball: http://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: registry.npmmirror.com/make-dir@3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, tarball: http://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: registry.npmmirror.com/source-map@0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==, tarball: http://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /iterare@1.2.1: + resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==, tarball: http://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz} + engines: {node: '>=6'} + + /jackspeak@2.2.1: + resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': registry.npmmirror.com/@pkgjs/parseargs@0.11.0 + dev: true + + /jake@10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + + /javascript-obfuscator@4.0.2: + resolution: {integrity: sha512-MRBQREvjEwqEGdwNGG7yp0te5uZBFzrPZdxEs4rDYkPpHhhOQu+E0IhSXP7bO9dIUWXZU0Kkdohsuws525aVGQ==, tarball: http://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.0.2.tgz} + engines: {node: ^12.22.0 || ^14.0.0 || ^16.0.0 || ^17.0.0 || >=18.0.0} + hasBin: true + requiresBuild: true + dependencies: + '@javascript-obfuscator/escodegen': 2.3.0 + '@javascript-obfuscator/estraverse': 5.4.0 + acorn: 8.8.2 + assert: 2.0.0 + chalk: 4.1.2 + chance: 1.1.9 + class-validator: 0.14.0 + commander: 10.0.0 + eslint-scope: 7.1.1 + eslint-visitor-keys: 3.3.0 + fast-deep-equal: 3.1.3 + inversify: 6.0.1 + js-string-escape: 1.0.1 + md5: 2.3.0 + mkdirp: 2.1.3 + multimatch: 5.0.0 + opencollective-postinstall: 2.0.3 + process: 0.11.10 + reflect-metadata: 0.1.13 + source-map-support: 0.5.21 + string-template: 1.0.0 + stringz: 2.1.0 + tslib: 2.5.0 + dev: false + + /jest-changed-files@29.5.0: + resolution: {integrity: sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==, tarball: http://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + p-limit: 3.1.0 + dev: true + + /jest-circus@29.5.0: + resolution: {integrity: sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==, tarball: http://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.5.0 + '@jest/expect': 29.5.0 + '@jest/test-result': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + is-generator-fn: 2.1.0 + jest-each: 29.5.0 + jest-matcher-utils: 29.5.0 + jest-message-util: 29.5.0 + jest-runtime: 29.5.0 + jest-snapshot: 29.5.0 + jest-util: 29.5.0 + p-limit: 3.1.0 + pretty-format: 29.5.0 + pure-rand: 6.0.2 + slash: registry.npmmirror.com/slash@3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-cli@29.5.0(@types/node@18.11.18)(ts-node@10.9.1): + resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==, tarball: http://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.5.0(ts-node@10.9.1) + '@jest/test-result': 29.5.0 + '@jest/types': 29.5.0 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.1.0 + jest-config: 29.5.0(@types/node@18.11.18)(ts-node@10.9.1) + jest-util: 29.5.0 + jest-validate: 29.5.0 + prompts: 2.4.2 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + /jest-config@29.5.0(@types/node@18.11.18)(ts-node@10.9.1): + resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==, tarball: http://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.21.5 + '@jest/test-sequencer': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.11.18 + babel-jest: 29.5.0(@babel/core@7.21.5) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-circus: 29.5.0 + jest-environment-node: 29.5.0 + jest-get-type: 29.4.3 + jest-regex-util: 29.4.3 + jest-resolve: 29.5.0 + jest-runner: 29.5.0 + jest-util: 29.5.0 + jest-validate: 29.5.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.5.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1(@types/node@18.11.18)(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + dev: true + + /jest-config@29.5.0(@types/node@18.16.3)(ts-node@10.9.1): + resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==, tarball: http://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.21.5 + '@jest/test-sequencer': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + babel-jest: 29.5.0(@babel/core@7.21.5) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-circus: 29.5.0 + jest-environment-node: 29.5.0 + jest-get-type: 29.4.3 + jest-regex-util: 29.4.3 + jest-resolve: 29.5.0 + jest-runner: 29.5.0 + jest-util: 29.5.0 + jest-validate: 29.5.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.5.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.1(@types/node@18.11.18)(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + dev: true + + /jest-diff@29.5.0: + resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==, tarball: http://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.4.3 + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-docblock@29.4.3: + resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==, tarball: http://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@29.5.0: + resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==, tarball: http://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + chalk: 4.1.2 + jest-get-type: 29.4.3 + jest-util: 29.5.0 + pretty-format: 29.5.0 + dev: true + + /jest-environment-node@29.5.0: + resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==, tarball: http://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.5.0 + '@jest/fake-timers': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + jest-mock: 29.5.0 + jest-util: 29.5.0 + dev: true + + /jest-get-type@29.4.3: + resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==, tarball: http://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.5.0: + resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==, tarball: http://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/graceful-fs': 4.1.6 + '@types/node': 18.11.18 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-regex-util: 29.4.3 + jest-util: 29.5.0 + jest-worker: 29.5.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /jest-leak-detector@29.5.0: + resolution: {integrity: sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==, tarball: http://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-matcher-utils@29.5.0: + resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==, tarball: http://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.5.0 + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-message-util@29.5.0: + resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==, tarball: http://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.21.4 + '@jest/types': 29.5.0 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + micromatch: 4.0.5 + pretty-format: 29.5.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@29.5.0: + resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==, tarball: http://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + jest-util: 29.5.0 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@29.5.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, tarball: http://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.5.0 + dev: true + + /jest-regex-util@29.4.3: + resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==, tarball: http://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-resolve-dependencies@29.5.0: + resolution: {integrity: sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==, tarball: http://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.4.3 + jest-snapshot: 29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.5.0: + resolution: {integrity: sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==, tarball: http://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-haste-map: 29.5.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.5.0) + jest-util: 29.5.0 + jest-validate: 29.5.0 + resolve: 1.22.2 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.5.0: + resolution: {integrity: sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==, tarball: http://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.5.0 + '@jest/environment': 29.5.0 + '@jest/test-result': 29.5.0 + '@jest/transform': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.11.18 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-docblock: 29.4.3 + jest-environment-node: 29.5.0 + jest-haste-map: 29.5.0 + jest-leak-detector: 29.5.0 + jest-message-util: 29.5.0 + jest-resolve: 29.5.0 + jest-runtime: 29.5.0 + jest-util: 29.5.0 + jest-watcher: 29.5.0 + jest-worker: 29.5.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.5.0: + resolution: {integrity: sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==, tarball: http://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.5.0 + '@jest/fake-timers': 29.5.0 + '@jest/globals': 29.5.0 + '@jest/source-map': 29.4.3 + '@jest/test-result': 29.5.0 + '@jest/transform': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.11.18 + chalk: 4.1.2 + cjs-module-lexer: 1.2.2 + collect-v8-coverage: 1.0.1 + glob: 7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-haste-map: 29.5.0 + jest-message-util: 29.5.0 + jest-mock: 29.5.0 + jest-regex-util: 29.4.3 + jest-resolve: 29.5.0 + jest-snapshot: 29.5.0 + jest-util: 29.5.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.5.0: + resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==, tarball: http://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.21.5 + '@babel/generator': 7.21.5 + '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.21.5) + '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.21.5) + '@babel/traverse': 7.21.5 + '@babel/types': 7.21.5 + '@jest/expect-utils': 29.5.0 + '@jest/transform': 29.5.0 + '@jest/types': 29.5.0 + '@types/babel__traverse': 7.18.5 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.5) + chalk: 4.1.2 + expect: 29.5.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-diff: 29.5.0 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.5.0 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + natural-compare: 1.4.0 + pretty-format: 29.5.0 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@29.5.0: + resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==, tarball: http://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/node': 18.16.3 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.5.0: + resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==, tarball: http://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.4.3 + leven: 3.1.0 + pretty-format: 29.5.0 + dev: true + + /jest-watcher@29.5.0: + resolution: {integrity: sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==, tarball: http://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.11.18 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.5.0 + string-length: 4.0.2 + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, tarball: http://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 18.16.3 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest-worker@29.5.0: + resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==, tarball: http://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 18.16.3 + jest-util: 29.5.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@29.3.1(@types/node@18.11.18)(ts-node@10.9.1): + resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==, tarball: http://registry.npmjs.org/jest/-/jest-29.3.1.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.5.0(ts-node@10.9.1) + '@jest/types': 29.5.0 + import-local: 3.1.0 + jest-cli: 29.5.0(@types/node@18.11.18)(ts-node@10.9.1) + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + /jimp@0.22.7: + resolution: {integrity: sha512-TJCTJ4ZcFUw6W8XZnR6ajdEu8vSyPi3AuoChs+zLHalXnhAPZgwkzwcXnxey4LNjh1p9dfIUkg8YSQ+q8pBW0A==, tarball: http://registry.npmjs.org/jimp/-/jimp-0.22.7.tgz} + dependencies: + '@jimp/custom': 0.22.7 + '@jimp/plugins': 0.22.7(@jimp/custom@0.22.7) + '@jimp/types': 0.22.7(@jimp/custom@0.22.7) + regenerator-runtime: 0.13.11 + transitivePeerDependencies: + - encoding + dev: false + + /jiti@1.18.2: + resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==, tarball: http://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz} + hasBin: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==, tarball: http://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz} + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==, tarball: http://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz} + + /js-beautify@1.14.7: + resolution: {integrity: sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==, tarball: http://registry.npmjs.org/js-beautify/-/js-beautify-1.14.7.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + config-chain: 1.1.13 + editorconfig: 0.15.3 + glob: 8.1.0 + nopt: 6.0.0 + dev: false + + /js-sdsl@4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==, tarball: http://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz} + + /js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==, tarball: http://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz} + engines: {node: '>= 0.8'} + dev: false + + /js-stringify@1.0.2: + resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==, tarball: http://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz} + requiresBuild: true + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-tokens@8.0.1: + resolution: {integrity: sha512-3AGrZT6tuMm1ZWWn9mLXh7XMfi2YtiLNPALCVxBCiUVq0LD1OQMxV/AdS/s7rLJU5o9i/jBZw/N4vXXL5dm29A==} + dev: true + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, tarball: http://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: http://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, tarball: http://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz} + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, tarball: http://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz} + engines: {node: '>=6'} + hasBin: true + + /json-bigint@1.0.0: + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + dependencies: + bignumber.js: 9.1.1 + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: http://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz} + dev: false + + /json-content-demux@0.1.4: + resolution: {integrity: sha512-3GqPH2O0+8qBMTa1YTuL+7L24YJYNDjdXfa798y9S6GetScZAY2iAOGCdFkEPZJZdafPKv8ZUnp18VCCPTs0Nw==} + engines: {node: '>= 0.6.0'} + dev: true + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, tarball: http://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, tarball: http://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: http://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + /json-schema-typed@7.0.3: + resolution: {integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==, tarball: http://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz} + dev: false + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, tarball: http://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, tarball: http://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz} + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonc-eslint-parser@2.2.0: + resolution: {integrity: sha512-x5QjzBOORd+T2EjErIxJnkOEbLVEdD1ILEeBbIJt8Eq/zUn7P7M8qdnWiNVBK5f8oxnJpc6SBHOeeIEl/swPjg==, tarball: http://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.2.0.tgz} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.2 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + semver: 7.5.0 + + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, tarball: http://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, tarball: http://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz} + engines: {'0': node >= 0.2.0} + dev: true + + /jsonwebtoken@9.0.0: + resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==, tarball: http://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash: 4.17.21 + ms: 2.1.3 + semver: 7.5.0 + dev: false + + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, tarball: http://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + /jstoxml@2.2.9: + resolution: {integrity: sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==, tarball: http://registry.npmjs.org/jstoxml/-/jstoxml-2.2.9.tgz} + dev: false + + /jstransformer@1.0.0: + resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==, tarball: http://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz} + requiresBuild: true + dependencies: + is-promise: 2.2.2 + promise: 7.3.1 + dev: false + + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==, tarball: http://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + dev: false + + /juice@9.0.0: + resolution: {integrity: sha512-s/IwgQ4caZq3bSnQZlKfdGUqJWy9WzTzB12WSPko9G8uK74H8BJEQvX7GLmFAQ6SLFgAppqC/TUYepKZZaV+JA==, tarball: http://registry.npmjs.org/juice/-/juice-9.0.0.tgz} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + cheerio: 1.0.0-rc.12 + commander: 6.2.1 + mensch: 0.3.4 + slick: 1.12.2 + web-resource-inliner: 6.0.1 + transitivePeerDependencies: + - encoding + dev: false + + /jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, tarball: http://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, tarball: http://registry.npmjs.org/jws/-/jws-3.2.2.tgz} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: false + + /katex@0.16.7: + resolution: {integrity: sha512-Xk9C6oGKRwJTfqfIbtr0Kes9OSv6IFsuhFGc7tW4urlpMJtuh+7YhzU6YEG9n8gmWKcMAFzkp7nr+r69kV0zrA==, tarball: http://registry.npmjs.org/katex/-/katex-0.16.7.tgz} + hasBin: true + dependencies: + commander: 8.3.0 + dev: false + + /keyv@4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==, tarball: http://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz} + dependencies: + json-buffer: 3.0.1 + dev: false + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, tarball: http://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /kitx@1.3.0: + resolution: {integrity: sha512-fhBqFlXd0GkKTB+8ayLfpzPUw+LHxZlPAukPNBD1Om7JMeInT+/PxCAf1yLagvD+VKoyWhXtJR68xQkX/a0wOQ==} + dev: false + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, tarball: http://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz} + engines: {node: '>=6'} + dev: true + + /knitwork@1.0.0: + resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==} + requiresBuild: true + dev: false + optional: true + + /known-css-properties@0.27.0: + resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==} + dev: true + + /ko-sleep@1.1.4: + resolution: {integrity: sha512-s05WGpvvzyTuRlRE8fM7ru2Z3O+InbJuBcckTWKg2W+2c1k6SnFa3IfiSSt0/peFrlYAXgNoxuJWWVNmWh+K/A==, tarball: http://registry.npmjs.org/ko-sleep/-/ko-sleep-1.1.4.tgz} + dependencies: + ms: 2.1.3 + dev: false + + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + + /layout@2.2.0: + resolution: {integrity: sha512-+kdgg25XW11BA4cl9vF+SH01HaBipld2Nf/PlU2kSYncAbdUbDoahzrlh6yhR93N/wR2TGgcFoxebzR1LKmZUg==} + engines: {node: '>= 0.8.0'} + dependencies: + bin-pack: 1.0.2 + dev: true + + /lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + dev: true + + /lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, tarball: http://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz} + engines: {node: '>= 0.6.3'} + dependencies: + readable-stream: 2.3.8 + dev: false + + /leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, tarball: http://registry.npmjs.org/leac/-/leac-0.6.0.tgz} + dev: false + + /less@4.1.3: + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==, tarball: http://registry.npmjs.org/less/-/less-4.1.3.tgz} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.5.0 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.3.1 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, tarball: http://registry.npmjs.org/levn/-/levn-0.3.0.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, tarball: http://registry.npmjs.org/levn/-/levn-0.4.1.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /libbase64@1.2.1: + resolution: {integrity: sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==, tarball: http://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz} + dev: false + + /libmime@5.2.0: + resolution: {integrity: sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw==, tarball: http://registry.npmjs.org/libmime/-/libmime-5.2.0.tgz} + dependencies: + encoding-japanese: 2.0.0 + iconv-lite: 0.6.3 + libbase64: 1.2.1 + libqp: 2.0.1 + dev: false + + /libmime@5.2.1: + resolution: {integrity: sha512-A0z9O4+5q+ZTj7QwNe/Juy1KARNb4WaviO4mYeFC4b8dBT2EEqK2pkM+GC8MVnkOjqhl5nYQxRgnPYRRTNmuSQ==, tarball: http://registry.npmjs.org/libmime/-/libmime-5.2.1.tgz} + dependencies: + encoding-japanese: 2.0.0 + iconv-lite: 0.6.3 + libbase64: 1.2.1 + libqp: 2.0.1 + dev: false + + /libphonenumber-js@1.10.28: + resolution: {integrity: sha512-1eAgjLrZA0+2Wgw4hs+4Q/kEBycxQo8ZLYnmOvZ3AlM8ImAVAJgDPlZtISLEzD1vunc2q8s2Pn7XwB7I8U3Kzw==, tarball: http://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.28.tgz} + + /libqp@2.0.1: + resolution: {integrity: sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==, tarball: http://registry.npmjs.org/libqp/-/libqp-2.0.1.tgz} + dev: false + + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==, tarball: http://registry.npmjs.org/lie/-/lie-3.3.0.tgz} + dependencies: + immediate: 3.0.6 + dev: false + + /liftoff@4.0.0: + resolution: {integrity: sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==} + engines: {node: '>=10.13.0'} + dependencies: + extend: 3.0.2 + findup-sync: 5.0.0 + fined: 2.0.0 + flagged-respawn: 2.0.0 + is-plain-object: 5.0.0 + object.map: 1.0.1 + rechoir: 0.8.0 + resolve: 1.22.2 + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, tarball: http://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz} + engines: {node: '>=10'} + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: http://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + + /linkify-it@4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==, tarball: http://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz} + dependencies: + uc.micro: 1.0.6 + dev: false + + /lint-staged@13.2.2: + resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==, tarball: http://registry.npmjs.org/lint-staged/-/lint-staged-13.2.2.tgz} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + chalk: 5.2.0 + cli-truncate: 3.1.0 + commander: 10.0.1 + debug: 4.3.4 + execa: 7.1.1 + lilconfig: 2.1.0 + listr2: 5.0.8 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.12.3 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.2.2 + transitivePeerDependencies: + - enquirer + - supports-color + dev: true + + /list-stylesheets@2.0.1: + resolution: {integrity: sha512-UUEFowqvgRKT1+OJ59Ga5gTfVOP3hkbFo7DwNIZcMuXzJRWndYMHyDYbuqKe6lrw8KCY7c/GN5mEoLx0c54HAw==, tarball: http://registry.npmjs.org/list-stylesheets/-/list-stylesheets-2.0.1.tgz} + dependencies: + cheerio: 1.0.0-rc.12 + pick-util: 1.1.5 + dev: false + + /listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==, tarball: http://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz} + dev: false + + /listr2@5.0.8: + resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==, tarball: http://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz} + engines: {node: ^14.13.1 || >=16.0.0} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /load-bmfont@1.4.1: + resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==, tarball: http://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz} + dependencies: + buffer-equal: 0.0.1 + mime: registry.npmmirror.com/mime@1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.4 + phin: 2.9.3 + xhr: 2.6.0 + xtend: 4.0.2 + dev: false + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==, tarball: http://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz} + engines: {node: '>=4'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, tarball: http://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz} + engines: {node: '>=6.11.5'} + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, tarball: http://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz} + engines: {node: '>=14'} + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, tarball: http://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, tarball: http://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz} + dev: false + + /lodash-unified@1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21): + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + dependencies: + '@types/lodash-es': 4.17.7 + lodash: 4.17.21 + lodash-es: 4.17.21 + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, tarball: http://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} + dev: true + + /lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, tarball: http://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz} + dev: false + + /lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==, tarball: http://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz} + dev: false + + /lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==, tarball: http://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz} + dev: false + + /lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==, tarball: http://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz} + dev: false + + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, tarball: http://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz} + + /lodash.groupby@4.6.0: + resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==, tarball: http://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz} + dev: false + + /lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==, tarball: http://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz} + dev: false + + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, tarball: http://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, tarball: http://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz} + dev: false + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==, tarball: http://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz} + + /lodash.isnil@4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==, tarball: http://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz} + dev: false + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, tarball: http://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz} + + /lodash.isundefined@3.0.1: + resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==, tarball: http://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz} + dev: false + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, tarball: http://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz} + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, tarball: http://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, tarball: http://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz} + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, tarball: http://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz} + dev: true + + /lodash.set@4.3.2: + resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==, tarball: http://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz} + dev: false + + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, tarball: http://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, tarball: http://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true + + /lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==, tarball: http://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz} + dev: false + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, tarball: http://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz} + + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, tarball: http://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: http://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz} + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, tarball: http://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} + dependencies: + chalk: 5.2.0 + is-unicode-supported: 1.3.0 + dev: true + + /log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==, tarball: http://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, tarball: http://registry.npmjs.org/long/-/long-5.2.3.tgz} + dev: false + + /lower-case@1.1.4: + resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==, tarball: http://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz} + dev: false + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.5.0 + dev: true + + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: false + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + /lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==, tarball: http://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz} + engines: {node: '>=16.14'} + dev: false + + /lru-cache@9.1.1: + resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} + engines: {node: 14 || >=16.14} + dev: true + + /luxon@3.3.0: + resolution: {integrity: sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==, tarball: http://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz} + engines: {node: '>=12'} + dev: false + + /macos-release@2.5.1: + resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==, tarball: http://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz} + engines: {node: '>=6'} + dev: true + + /magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + + /magic-string@0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.29.0: + resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==, tarball: http://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /magic-string@0.30.0: + resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /mailparser@3.6.4: + resolution: {integrity: sha512-4bDgbLdlcBKX8jtVskfn/G93nZo3lf7pyuLbAQ031SHQLihEqxtRwHrb9SXMTqiTkEGlOdpDrZE5uH18O+2A+A==, tarball: http://registry.npmjs.org/mailparser/-/mailparser-3.6.4.tgz} + dependencies: + encoding-japanese: 2.0.0 + he: 1.2.0 + html-to-text: 9.0.4 + iconv-lite: 0.6.3 + libmime: 5.2.1 + linkify-it: 4.0.1 + mailsplit: 5.4.0 + nodemailer: 6.9.1 + tlds: 1.236.0 + dev: false + + /mailsplit@5.4.0: + resolution: {integrity: sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==, tarball: http://registry.npmjs.org/mailsplit/-/mailsplit-5.4.0.tgz} + dependencies: + libbase64: 1.2.1 + libmime: 5.2.0 + libqp: 2.0.1 + dev: false + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, tarball: http://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: false + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, tarball: http://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz} + + /make-fetch-happen@11.1.1: + resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + agentkeepalive: 4.3.0 + cacache: 17.1.3 + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 5.0.0 + minipass-fetch: 3.0.3 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 10.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /make-iterator@1.0.1: + resolution: {integrity: sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 6.0.3 + dev: true + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, tarball: http://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz} + dependencies: + tmpl: 1.0.5 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, tarball: http://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, tarball: http://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /markdown-it-codetabs@1.2.0: + resolution: {integrity: sha512-kF0ec56hKmBZ4xMSFm1pIOuRT37iInD8uvTq+uaWpVKnja6mAg6gkGMLaeLeBiRx4fAMJmrWy417WPf8GgNWxg==} + dev: false + + /markdown-it-image-figures@2.1.1(markdown-it@13.0.1): + resolution: {integrity: sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==} + engines: {node: '>=12.0.0'} + peerDependencies: + markdown-it: '*' + dependencies: + markdown-it: 13.0.1 + dev: false + + /markdown-it-link-attributes@4.0.1: + resolution: {integrity: sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ==, tarball: http://registry.npmjs.org/markdown-it-link-attributes/-/markdown-it-link-attributes-4.0.1.tgz} + dev: true + + /markdown-it-task-lists@2.1.1: + resolution: {integrity: sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==} + dev: false + + /markdown-it@13.0.1: + resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==, tarball: http://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz} + hasBin: true + dependencies: + argparse: 2.0.1 + entities: 3.0.1 + linkify-it: 4.0.1 + mdurl: 1.0.1 + uc.micro: 1.0.6 + dev: false + + /marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==, tarball: http://registry.npmjs.org/marked/-/marked-4.3.0.tgz} + engines: {node: '>= 12'} + hasBin: true + dev: false + + /markmap-common@0.14.2: + resolution: {integrity: sha512-uGk++7mh237YneJRn9BH/KMbc1ImvMSlvOHOXqK9TyFP+NqQ0+ZYYKYXdTRyozzcMMtz0U0fb00k3Z7FNkAu1g==, tarball: http://registry.npmjs.org/markmap-common/-/markmap-common-0.14.2.tgz} + dependencies: + '@babel/runtime': 7.21.5 + dev: false + + /markmap-lib@0.14.4(markmap-common@0.14.2): + resolution: {integrity: sha512-tyXhpER0XdQe/sxWOjMVshbPcfrcNnV5MzdjxVGUUovep1jxFuuBWS5Cp7z41pzUpW1+56Mxb7Vgp4Psme3sSw==, tarball: http://registry.npmjs.org/markmap-lib/-/markmap-lib-0.14.4.tgz} + engines: {node: '>=10'} + peerDependencies: + markmap-common: '*' + dependencies: + '@babel/runtime': 7.21.5 + js-yaml: 4.1.0 + katex: 0.16.7 + markmap-common: 0.14.2 + prismjs: 1.29.0 + remarkable: 2.0.1 + remarkable-katex: 1.2.1 + dev: false + + /markmap-view@0.14.4(markmap-common@0.14.2): + resolution: {integrity: sha512-SHG5FmqIjGiWjAn4FJ7FgzbPN9c0XPYEFu/RV7c3ZyWuKNL1YZRbwROjkElN5UXaMDhjlieoxnWJIDKp3vPRAA==, tarball: http://registry.npmjs.org/markmap-view/-/markmap-view-0.14.4.tgz} + engines: {node: '>=10'} + peerDependencies: + markmap-common: '*' + dependencies: + '@babel/runtime': 7.21.5 + '@types/d3': 6.7.5 + d3: 6.7.0 + d3-flextree: 2.1.2 + markmap-common: 0.14.2 + dev: false + + /matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + escape-string-regexp: 4.0.0 + optional: true + + /mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + dev: true + + /md-editor-v3@3.0.0(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1)(vue@3.2.47): + resolution: {integrity: sha512-/O3XIWnof3cneqvZwTmTW00KjHFuBImY13ou3cShbBZBesXVswbUGs1NOMq0bSfbJJOHDp2G636d3GnwqRl30w==} + peerDependencies: + vue: ^3.2.47 + dependencies: + '@codemirror/lang-markdown': 6.1.1 + '@codemirror/language-data': 6.3.1(@codemirror/state@6.4.0)(@codemirror/view@6.23.1)(@lezer/common@1.2.1) + '@types/markdown-it': 12.2.3 + '@vavt/markdown-theme': 3.0.0 + codemirror: 6.0.1(@lezer/common@1.2.1) + copy-to-clipboard: 3.3.3 + lru-cache: 8.0.5 + markdown-it: 13.0.1 + markdown-it-codetabs: 1.2.0 + markdown-it-image-figures: 2.1.1(markdown-it@13.0.1) + markdown-it-task-lists: 2.1.1 + medium-zoom: 1.0.8 + vue: 3.2.47 + transitivePeerDependencies: + - '@codemirror/state' + - '@codemirror/view' + - '@lezer/common' + dev: false + + /md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==, tarball: http://registry.npmjs.org/md5/-/md5-2.3.0.tgz} + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + dev: false + + /mdast-util-from-markdown@0.8.5: + resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==, tarball: http://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz} + dependencies: + '@types/mdast': 3.0.11 + mdast-util-to-string: 2.0.0 + micromark: 2.11.4 + parse-entities: 2.0.0 + unist-util-stringify-position: 2.0.3 + transitivePeerDependencies: + - supports-color + + /mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==, tarball: http://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz} + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==, tarball: http://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz} + dev: false + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, tarball: http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz} + engines: {node: '>= 0.6'} + + /mediaquery-text@1.2.0: + resolution: {integrity: sha512-cJyRqgYQi+hsYhRkyd5le0s4LsEPvOB7r+6X3jdEELNqVlM9mRIgyUPg9BzF+PuTqQH1ZekgIjYVOeWSXWq35Q==, tarball: http://registry.npmjs.org/mediaquery-text/-/mediaquery-text-1.2.0.tgz} + dependencies: + cssom: 0.5.0 + dev: false + + /medium-zoom@1.0.8: + resolution: {integrity: sha512-CjFVuFq/IfrdqesAXfg+hzlDKu6A2n80ZIq0Kl9kWjoHh9j1N9Uvk5X0/MmN0hOfm5F9YBswlClhcwnmtwz7gA==} + dev: false + + /memfs@3.5.1: + resolution: {integrity: sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==, tarball: http://registry.npmjs.org/memfs/-/memfs-3.5.1.tgz} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: true + + /memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + dev: false + + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==, tarball: http://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz} + engines: {node: '>= 0.10.0'} + dev: true + + /mensch@0.3.4: + resolution: {integrity: sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==, tarball: http://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz} + dev: false + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==, tarball: http://registry.npmjs.org/meow/-/meow-8.1.2.tgz} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: registry.npmmirror.com/read-pkg-up@7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, tarball: http://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz} + + /merge-options@1.0.1: + resolution: {integrity: sha1-KmSyRFe+zU5NxggoMkfpTOWJqjI=, tarball: http://registry.npm.taobao.org/merge-options/download/merge-options-1.0.1.tgz} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: http://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, tarball: http://registry.npmjs.org/methods/-/methods-1.1.2.tgz} + engines: {node: '>= 0.6'} + + /micromark@2.11.4: + resolution: {integrity: sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==, tarball: http://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz} + dependencies: + debug: 4.3.4 + parse-entities: 2.0.0 + transitivePeerDependencies: + - supports-color + + /micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: http://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: http://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, tarball: http://registry.npmjs.org/mime/-/mime-2.6.0.tgz} + engines: {node: '>=4.0.0'} + hasBin: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + dev: false + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + /min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, tarball: http://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz} + dependencies: + dom-walk: 0.1.2 + dev: false + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, tarball: http://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz} + engines: {node: '>=4'} + + /minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: http://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, tarball: http://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==, tarball: http://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==, tarball: http://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha1-wGVXE8U6ii69d/+iR9NCxA8BBhk=, tarball: http://registry.npm.taobao.org/minimist-options/download/minimist-options-4.1.0.tgz} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: http://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} + + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-fetch@3.0.3: + resolution: {integrity: sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 5.0.0 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: registry.npmmirror.com/encoding@0.1.13 + dev: true + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + dependencies: + minipass: registry.npmmirror.com/minipass@3.3.6 + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mitt@3.0.0: + resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==} + dev: false + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mjml-accordion@4.14.1: + resolution: {integrity: sha512-dpNXyjnhYwhM75JSjD4wFUa9JgHm86M2pa0CoTzdv1zOQz67ilc4BoK5mc2S0gOjJpjBShM5eOJuCyVIuAPC6w==, tarball: http://registry.npmjs.org/mjml-accordion/-/mjml-accordion-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-body@4.14.1: + resolution: {integrity: sha512-YpXcK3o2o1U+fhI8f60xahrhXuHmav6BZez9vIN3ZEJOxPFSr+qgr1cT2iyFz50L5+ZsLIVj2ZY+ALQjdsg8ig==, tarball: http://registry.npmjs.org/mjml-body/-/mjml-body-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-button@4.14.1: + resolution: {integrity: sha512-V1Tl1vQ3lXYvvqHJHvGcc8URr7V1l/ZOsv7iLV4QRrh7kjKBXaRS7uUJtz6/PzEbNsGQCiNtXrODqcijLWlgaw==, tarball: http://registry.npmjs.org/mjml-button/-/mjml-button-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-carousel@4.14.1: + resolution: {integrity: sha512-Ku3MUWPk/TwHxVgKEUtzspy/ePaWtN/3z6/qvNik0KIn0ZUIZ4zvR2JtaVL5nd30LHSmUaNj30XMPkCjYiKkFA==, tarball: http://registry.npmjs.org/mjml-carousel/-/mjml-carousel-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-cli@4.14.1: + resolution: {integrity: sha512-Gy6MnSygFXs0U1qOXTHqBg2vZX2VL/fAacgQzD4MHq4OuybWaTNSzXRwxBXYCxT3IJB874n2Q0Mxp+Xka+tnZg==, tarball: http://registry.npmjs.org/mjml-cli/-/mjml-cli-4.14.1.tgz} + hasBin: true + dependencies: + '@babel/runtime': 7.21.5 + chokidar: 3.5.3 + glob: 7.2.3 + html-minifier: 4.0.0 + js-beautify: 1.14.7 + lodash: 4.17.21 + mjml-core: 4.14.1 + mjml-migrate: 4.14.1 + mjml-parser-xml: 4.14.1 + mjml-validator: 4.13.0 + yargs: 16.2.0 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-column@4.14.1: + resolution: {integrity: sha512-iixVCIX1YJtpQuwG2WbDr7FqofQrlTtGQ4+YAZXGiLThs0En3xNIJFQX9xJ8sgLEGGltyooHiNICBRlzSp9fDg==, tarball: http://registry.npmjs.org/mjml-column/-/mjml-column-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-core@4.14.1: + resolution: {integrity: sha512-di88rSfX+8r4r+cEqlQCO7CRM4mYZrfe2wSCu2je38i+ujjkLpF72cgLnjBlSG5aOUCZgYvlsZ85stqIz9LQfA==, tarball: http://registry.npmjs.org/mjml-core/-/mjml-core-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + cheerio: 1.0.0-rc.12 + detect-node: 2.1.0 + html-minifier: 4.0.0 + js-beautify: 1.14.7 + juice: 9.0.0 + lodash: 4.17.21 + mjml-migrate: 4.14.1 + mjml-parser-xml: 4.14.1 + mjml-validator: 4.13.0 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-divider@4.14.1: + resolution: {integrity: sha512-agqWY0aW2xaMiUOhYKDvcAAfOLalpbbtjKZAl1vWmNkURaoK4L7MgDilKHSJDFUlHGm2ZOArTrq8i6K0iyThBQ==, tarball: http://registry.npmjs.org/mjml-divider/-/mjml-divider-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-group@4.14.1: + resolution: {integrity: sha512-dJt5batgEJ7wxlxzqOfHOI94ABX+8DZBvAlHuddYO4CsLFHYv6XRIArLAMMnAKU76r6p3X8JxYeOjKZXdv49kg==, tarball: http://registry.npmjs.org/mjml-group/-/mjml-group-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-attributes@4.14.1: + resolution: {integrity: sha512-XdUNOp2csK28kBDSistInOyzWNwmu5HDNr4y1Z7vSQ1PfkmiuS6jWG7jHUjdoMhs27e6Leuyyc6a8gWSpqSWrg==, tarball: http://registry.npmjs.org/mjml-head-attributes/-/mjml-head-attributes-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-breakpoint@4.14.1: + resolution: {integrity: sha512-Qw9l/W/I5Z9p7I4ShgnEpAL9if4472ejcznbBnp+4Gq+sZoPa7iYoEPsa9UCGutlaCh3N3tIi2qKhl9qD8DFxA==, tarball: http://registry.npmjs.org/mjml-head-breakpoint/-/mjml-head-breakpoint-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-font@4.14.1: + resolution: {integrity: sha512-oBYm1gaOdEMjE5BoZouRRD4lCNZ1jcpz92NR/F7xDyMaKCGN6T/+r4S5dq1gOLm9zWqClRHaECdFJNEmrDpZqA==, tarball: http://registry.npmjs.org/mjml-head-font/-/mjml-head-font-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-html-attributes@4.14.1: + resolution: {integrity: sha512-vlJsJc1Sm4Ml2XvLmp01zsdmWmzm6+jNCO7X3eYi9ngEh8LjMCLIQOncnOgjqm9uGpQu2EgUhwvYFZP2luJOVg==, tarball: http://registry.npmjs.org/mjml-head-html-attributes/-/mjml-head-html-attributes-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-preview@4.14.1: + resolution: {integrity: sha512-89gQtt3fhl2dkYpHLF5HDQXz/RLpzecU6wmAIT7Dz6etjLGE1dgq2Ay6Bu/OeHjDcT1gbM131zvBwuXw8OydNw==, tarball: http://registry.npmjs.org/mjml-head-preview/-/mjml-head-preview-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-style@4.14.1: + resolution: {integrity: sha512-XryOuf32EDuUCBT2k99C1+H87IOM919oY6IqxKFJCDkmsbywKIum7ibhweJdcxiYGONKTC6xjuibGD3fQTTYNQ==, tarball: http://registry.npmjs.org/mjml-head-style/-/mjml-head-style-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head-title@4.14.1: + resolution: {integrity: sha512-aIfpmlQdf1eJZSSrFodmlC4g5GudBti2eMyG42M7/3NeLM6anEWoe+UkF/6OG4Zy0tCQ40BDJ5iBZlMsjQICzw==, tarball: http://registry.npmjs.org/mjml-head-title/-/mjml-head-title-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-head@4.14.1: + resolution: {integrity: sha512-KoCbtSeTAhx05Ugn9TB2UYt5sQinSCb7RGRer5iPQ3CrXj8hT5B5Svn6qvf/GACPkWl4auExHQh+XgLB+r3OEA==, tarball: http://registry.npmjs.org/mjml-head/-/mjml-head-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-hero@4.14.1: + resolution: {integrity: sha512-TQJ3yfjrKYGkdEWjHLHhL99u/meKFYgnfJvlo9xeBvRjSM696jIjdqaPHaunfw4CP6d2OpCIMuacgOsvqQMWOA==, tarball: http://registry.npmjs.org/mjml-hero/-/mjml-hero-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-image@4.14.1: + resolution: {integrity: sha512-jfKLPHXuFq83okwlNM1Um/AEWeVDgs2JXIOsWp2TtvXosnRvGGMzA5stKLYdy1x6UfKF4c1ovpMS162aYGp+xQ==, tarball: http://registry.npmjs.org/mjml-image/-/mjml-image-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-migrate@4.14.1: + resolution: {integrity: sha512-d+9HKQOhZi3ZFAaFSDdjzJX9eDQGjMf3BArLWNm2okC4ZgfJSpOc77kgCyFV8ugvwc8fFegPnSV60Jl4xtvK2A==, tarball: http://registry.npmjs.org/mjml-migrate/-/mjml-migrate-4.14.1.tgz} + hasBin: true + dependencies: + '@babel/runtime': 7.21.5 + js-beautify: 1.14.7 + lodash: 4.17.21 + mjml-core: 4.14.1 + mjml-parser-xml: 4.14.1 + yargs: 16.2.0 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-navbar@4.14.1: + resolution: {integrity: sha512-rNy1Kw8CR3WQ+M55PFBAUDz2VEOjz+sk06OFnsnmNjoMVCjo1EV7OFLDAkmxAwqkC8h4zQWEOFY0MBqqoAg7+A==, tarball: http://registry.npmjs.org/mjml-navbar/-/mjml-navbar-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-parser-xml@4.14.1: + resolution: {integrity: sha512-9WQVeukbXfq9DUcZ8wOsHC6BTdhaVwTAJDYMIQglXLwKwN7I4pTCguDDHy5d0kbbzK5OCVxCdZe+bfVI6XANOQ==, tarball: http://registry.npmjs.org/mjml-parser-xml/-/mjml-parser-xml-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + detect-node: 2.0.4 + htmlparser2: 8.0.2 + lodash: 4.17.21 + dev: false + + /mjml-preset-core@4.14.1: + resolution: {integrity: sha512-uUCqK9Z9d39rwB/+JDV2KWSZGB46W7rPQpc9Xnw1DRP7wD7qAfJwK6AZFCwfTgWdSxw0PwquVNcrUS9yBa9uhw==, tarball: http://registry.npmjs.org/mjml-preset-core/-/mjml-preset-core-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + mjml-accordion: 4.14.1 + mjml-body: 4.14.1 + mjml-button: 4.14.1 + mjml-carousel: 4.14.1 + mjml-column: 4.14.1 + mjml-divider: 4.14.1 + mjml-group: 4.14.1 + mjml-head: 4.14.1 + mjml-head-attributes: 4.14.1 + mjml-head-breakpoint: 4.14.1 + mjml-head-font: 4.14.1 + mjml-head-html-attributes: 4.14.1 + mjml-head-preview: 4.14.1 + mjml-head-style: 4.14.1 + mjml-head-title: 4.14.1 + mjml-hero: 4.14.1 + mjml-image: 4.14.1 + mjml-navbar: 4.14.1 + mjml-raw: 4.14.1 + mjml-section: 4.14.1 + mjml-social: 4.14.1 + mjml-spacer: 4.14.1 + mjml-table: 4.14.1 + mjml-text: 4.14.1 + mjml-wrapper: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-raw@4.14.1: + resolution: {integrity: sha512-9+4wzoXnCtfV6QPmjfJkZ50hxFB4Z8QZnl2Ac0D1Cn3dUF46UkmO5NLMu7UDIlm5DdFyycZrMOwvZS4wv9ksPw==, tarball: http://registry.npmjs.org/mjml-raw/-/mjml-raw-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-section@4.14.1: + resolution: {integrity: sha512-Ik5pTUhpT3DOfB3hEmAWp8rZ0ilWtIivnL8XdUJRfgYE9D+MCRn+reIO+DAoJHxiQoI6gyeKkIP4B9OrQ7cHQw==, tarball: http://registry.npmjs.org/mjml-section/-/mjml-section-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-social@4.14.1: + resolution: {integrity: sha512-G44aOZXgZHukirjkeQWTTV36UywtE2YvSwWGNfo/8d+k5JdJJhCIrlwaahyKEAyH63G1B0Zt8b2lEWx0jigYUw==, tarball: http://registry.npmjs.org/mjml-social/-/mjml-social-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-spacer@4.14.1: + resolution: {integrity: sha512-5SfQCXTd3JBgRH1pUy6NVZ0lXBiRqFJPVHBdtC3OFvUS3q1w16eaAXlIUWMKTfy8CKhQrCiE6m65kc662ZpYxA==, tarball: http://registry.npmjs.org/mjml-spacer/-/mjml-spacer-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-table@4.14.1: + resolution: {integrity: sha512-aVBdX3WpyKVGh/PZNn2KgRem+PQhWlvnD00DKxDejRBsBSKYSwZ0t3EfFvZOoJ9DzfHsN0dHuwd6Z18Ps44NFQ==, tarball: http://registry.npmjs.org/mjml-table/-/mjml-table-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-text@4.14.1: + resolution: {integrity: sha512-yZuvf5z6qUxEo5CqOhCUltJlR6oySKVcQNHwoV5sneMaKdmBiaU4VDnlYFera9gMD9o3KBHIX6kUg7EHnCwBRQ==, tarball: http://registry.npmjs.org/mjml-text/-/mjml-text-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml-validator@4.13.0: + resolution: {integrity: sha512-uURYfyQYtHJ6Qz/1A7/+E9ezfcoISoLZhYK3olsxKRViwaA2Mm8gy/J3yggZXnsUXWUns7Qymycm5LglLEIiQg==, tarball: http://registry.npmjs.org/mjml-validator/-/mjml-validator-4.13.0.tgz} + dependencies: + '@babel/runtime': 7.21.5 + dev: false + + /mjml-wrapper@4.14.1: + resolution: {integrity: sha512-aA5Xlq6d0hZ5LY+RvSaBqmVcLkvPvdhyAv3vQf3G41Gfhel4oIPmkLnVpHselWhV14A0KwIOIAKVxHtSAxyOTQ==, tarball: http://registry.npmjs.org/mjml-wrapper/-/mjml-wrapper-4.14.1.tgz} + dependencies: + '@babel/runtime': 7.21.5 + lodash: 4.17.21 + mjml-core: 4.14.1 + mjml-section: 4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + /mjml@4.14.1: + resolution: {integrity: sha512-f/wnWWIVbeb/ge3ff7c/KYYizI13QbGIp03odwwkCThsJsacw4gpZZAU7V4gXY3HxSXP2/q3jxOfaHVbkfNpOQ==, tarball: http://registry.npmjs.org/mjml/-/mjml-4.14.1.tgz} + hasBin: true + dependencies: + '@babel/runtime': 7.21.5 + mjml-cli: 4.14.1 + mjml-core: 4.14.1 + mjml-migrate: 4.14.1 + mjml-preset-core: 4.14.1 + mjml-validator: 4.13.0 + transitivePeerDependencies: + - encoding + dev: false + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, tarball: http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz} + hasBin: true + dependencies: + minimist: 1.2.8 + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mkdirp@2.1.3: + resolution: {integrity: sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==, tarball: http://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz} + engines: {node: '>=10'} + hasBin: true + dev: false + + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==, tarball: http://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz} + engines: {node: '>=10'} + hasBin: true + dev: false + + /mlly@1.2.0: + resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} + dependencies: + acorn: 8.8.2 + pathe: 1.1.0 + pkg-types: 1.0.2 + ufo: 1.1.1 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 10.0.1 + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, tarball: http://registry.npmjs.org/ms/-/ms-2.0.0.tgz} + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + /msgpackr@1.9.2: + resolution: {integrity: sha512-xtDgI3Xv0AAiZWLRGDchyzBwU6aq0rwJ+W+5Y4CZhEWtkl/hJtFFLc+3JtGTw7nz1yquxs7nL8q/yA2aqpflIQ==, tarball: http://registry.npmjs.org/msgpackr/-/msgpackr-1.9.2.tgz} + optionalDependencies: + msgpackr-extract: registry.npmmirror.com/msgpackr-extract@3.0.2 + dev: false + + /muggle-string@0.2.2: + resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==, tarball: http://registry.npmjs.org/muggle-string/-/muggle-string-0.2.2.tgz} + dev: true + + /multer@1.4.4-lts.1: + resolution: {integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==, tarball: http://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz} + engines: {node: '>= 6.0.0'} + dependencies: + append-field: 1.0.0 + busboy: 1.6.0 + concat-stream: 1.6.2 + mkdirp: 0.5.6 + object-assign: 4.1.1 + type-is: 1.6.18 + xtend: 4.0.2 + + /multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==, tarball: http://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz} + engines: {node: '>=10'} + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + dev: false + + /murmurhash-js@1.0.0: + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} + dev: false + + /mutation-observer@1.0.3: + resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==} + dev: false + + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, tarball: http://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz} + dev: true + + /mysql2@3.2.4: + resolution: {integrity: sha512-VRjBMAB/WXd35cytsbKPy5eQMdHTQu661CcFAK+pcScVCfGpzQQR9EOM9H4z9tvEW0maVOjTAX0dqXneLX4kaQ==, tarball: http://registry.npmjs.org/mysql2/-/mysql2-3.2.4.tgz} + engines: {node: '>= 8.0'} + dependencies: + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.6.3 + long: 5.2.3 + lru-cache: 8.0.5 + named-placeholders: 1.1.3 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + dev: false + + /mz-modules@2.1.0: + resolution: {integrity: sha512-sjk8lcRW3vrVYnZ+W+67L/2rL+jbO5K/N6PFGIcLWTiYytNr22Ah9FDXFs+AQntTM1boZcoHi5qS+CV1seuPog==, tarball: http://registry.npmjs.org/mz-modules/-/mz-modules-2.1.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + glob: 7.2.3 + ko-sleep: 1.1.4 + mkdirp: 0.5.6 + pump: 3.0.0 + rimraf: 2.7.1 + dev: false + + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, tarball: http://registry.npmjs.org/mz/-/mz-2.7.0.tgz} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + /named-placeholders@1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==, tarball: http://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz} + engines: {node: '>=12.0.0'} + dependencies: + lru-cache: 7.18.3 + dev: false + + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==, tarball: http://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, tarball: http://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: http://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz} + + /ndarray-ops@1.2.2: + resolution: {integrity: sha512-BppWAFRjMYF7N/r6Ie51q6D4fs0iiGmeXIACKY66fLpnwIui3Wc3CXiD/30mgLbDjPpSLrsqcp3Z62+IcHZsDw==} + dependencies: + cwise-compiler: 1.1.3 + dev: true + + /ndarray-pack@1.2.1: + resolution: {integrity: sha512-51cECUJMT0rUZNQa09EoKsnFeDL4x2dHRT0VR5U2H5ZgEcm95ZDWcMA5JShroXjHOejmAD/fg8+H+OvUnVXz2g==} + dependencies: + cwise-compiler: 1.1.3 + ndarray: 1.0.19 + dev: true + + /ndarray@1.0.19: + resolution: {integrity: sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==} + dependencies: + iota-array: 1.0.0 + is-buffer: 1.1.6 + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, tarball: http://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz} + engines: {node: '>= 0.6'} + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, tarball: http://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz} + + /nestjs-config@1.4.10(@nestjs/common@9.4.0): + resolution: {integrity: sha512-el7iGCOsIVN5htafFVJMt8PNZ/We3cwg9iBuAkwW0aXW9ysKfAScgeeC60zljpQ16eBY6ODlB1w173Gdy8kzgA==, tarball: http://registry.npmjs.org/nestjs-config/-/nestjs-config-1.4.10.tgz} + peerDependencies: + '@nestjs/common': ^5.1.0 || ^6.0.3 || ^7.0.1 || ^8.0.0 + dependencies: + '@nestjs/common': 9.4.0(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@types/node': 16.18.25 + dotenv: 10.0.0 + glob: 7.2.3 + lodash.get: 4.4.2 + lodash.set: 4.3.2 + reflect-metadata: 0.1.13 + rxjs: 6.6.7 + dev: false + + /nestjs-rate-limiter@3.1.0: + resolution: {integrity: sha512-Qwr6daFvNppy038rs0iCQzX/uC3/czCC/2jATcETLIvyFmcBgySOMg7HGEquPKUZDX9lbc06Tn9L6U3QZS13HQ==, tarball: http://registry.npmjs.org/nestjs-rate-limiter/-/nestjs-rate-limiter-3.1.0.tgz} + dependencies: + rate-limiter-flexible: 2.1.10 + dev: false + + /nestjs-redis@1.3.3(@nestjs/platform-express@9.4.0)(class-transformer@0.5.1)(class-validator@0.14.0): + resolution: {integrity: sha512-YLvWtVKP38Uica7pL8T955jPi0MFmJ4+Wj3R/IHbLpsdCJkdA9wtfO9NoUpiZpM1aO1dEGcOBoStvgb0Uy7MGA==, tarball: http://registry.npmjs.org/nestjs-redis/-/nestjs-redis-1.3.3.tgz} + dependencies: + '@nestjs/common': 7.6.18(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@6.6.7) + '@nestjs/core': 7.6.18(@nestjs/common@7.6.18)(@nestjs/platform-express@9.4.0)(reflect-metadata@0.1.13)(rxjs@6.6.7) + '@types/ioredis': 5.0.0 + '@types/uuid': 9.0.1 + ioredis: 4.28.5 + reflect-metadata: 0.1.13 + rxjs: 6.6.7 + uuid: 8.3.2 + transitivePeerDependencies: + - '@nestjs/microservices' + - '@nestjs/platform-express' + - '@nestjs/websockets' + - cache-manager + - class-transformer + - class-validator + - debug + - encoding + - supports-color + dev: false + + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, tarball: http://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz} + engines: {node: '>= 0.4.0'} + dev: false + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, tarball: http://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz} + dev: true + + /no-case@2.3.2: + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==, tarball: http://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz} + dependencies: + lower-case: 1.1.4 + dev: false + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.5.0 + dev: true + + /node-abi@3.45.0: + resolution: {integrity: sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + + /node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, tarball: http://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz} + dev: true + + /node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + requiresBuild: true + dev: true + optional: true + + /node-api-version@0.1.4: + resolution: {integrity: sha512-KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==} + dependencies: + semver: 7.5.4 + dev: true + + /node-bitmap@0.0.1: + resolution: {integrity: sha512-Jx5lPaaLdIaOsj2mVLWMWulXF6GQVdyLvNSxmiYCvZ8Ma2hfKX0POoR2kgKOqz+oFsRreq0yYZjQ2wjE9VNzCA==} + engines: {node: '>=v0.6.5'} + dev: true + + /node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, tarball: http://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz} + engines: {node: '>=10.5.0'} + dev: false + + /node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==, tarball: http://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz} + dependencies: + lodash: 4.17.21 + dev: true + + /node-fetch-native@1.1.0: + resolution: {integrity: sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==} + dev: true + + /node-fetch@2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==, tarball: http://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /node-fetch@3.3.1: + resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==, tarball: http://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: false + + /node-gyp-build-optional-packages@5.0.7: + resolution: {integrity: sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==, tarball: http://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz} + hasBin: true + requiresBuild: true + dev: false + optional: true + + /node-gyp@9.4.0: + resolution: {integrity: sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + make-fetch-happen: 11.1.1 + nopt: 6.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.5.4 + tar: 6.2.0 + which: 2.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, tarball: http://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz} + dev: true + + /node-plop@0.31.1: + resolution: {integrity: sha512-qmXJJt3YETFt/e0dtMADVpvck6EvN01Jig086o+J3M6G++mWA7iJ3Pqz4m4kvlynh73Iz2/rcZzxq7xTiF+aIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + '@types/inquirer': 8.2.6 + change-case: 4.1.2 + del: 6.1.1 + globby: 13.1.4 + handlebars: registry.npmmirror.com/handlebars@4.7.7 + inquirer: 8.2.5 + isbinaryfile: 4.0.10 + lodash.get: 4.4.2 + lower-case: 2.0.2 + mkdirp: 1.0.4 + resolve: 1.22.2 + title-case: 3.0.3 + upper-case: 2.0.2 + dev: true + + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, tarball: http://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz} + dev: true + + /nodemailer@6.9.1: + resolution: {integrity: sha512-qHw7dOiU5UKNnQpXktdgQ1d3OFgRAekuvbJLcdG5dnEo/GtcTHRYM7+UfJARdOFU9WUQO8OiIamgWPmiSFHYAA==, tarball: http://registry.npmjs.org/nodemailer/-/nodemailer-6.9.1.tgz} + engines: {node: '>=6.0.0'} + dev: false + + /nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==, tarball: http://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + abbrev: 1.1.1 + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, tarball: http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.2 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, tarball: http://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.12.0 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, tarball: http://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + /normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + dev: false + + /npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==, tarball: http://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.8.1 + string.prototype.padend: 3.1.4 + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, tarball: http://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, tarball: http://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: true + + /nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + dev: false + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: http://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz} + dependencies: + boolbase: 1.0.0 + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, tarball: http://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz} + + /obj-extend@0.1.0: + resolution: {integrity: sha512-or9c7Ue2wWCun41DuLP3+LKEUjSZcDSxfCM4HZQSX9tcjLL/yuzTW7MmtVNs+MmN16uDRpDrFmFK/WVSm4vklg==} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: http://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz} + engines: {node: '>=0.10.0'} + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-hash@2.1.1: + resolution: {integrity: sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==, tarball: http://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz} + engines: {node: '>= 6'} + dev: false + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, tarball: http://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz} + engines: {node: '>= 6'} + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, tarball: http://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz} + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==, tarball: http://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, tarball: http://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz} + engines: {node: '>= 0.4'} + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, tarball: http://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + /object.defaults@1.1.0: + resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} + engines: {node: '>=0.10.0'} + dependencies: + array-each: 1.0.1 + array-slice: 1.1.0 + for-own: 1.0.0 + isobject: 3.0.1 + dev: true + + /object.map@1.0.1: + resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 1.0.0 + make-iterator: 1.0.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==, tarball: http://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + + /ohash@1.1.2: + resolution: {integrity: sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w==} + dev: true + + /omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==, tarball: http://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz} + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: registry.nlark.com/ee-first@1.1.1 + dev: true + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, tarball: http://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, tarball: http://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz} + engines: {node: '>= 0.8'} + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: http://registry.npmjs.org/once/-/once-1.4.0.tgz} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, tarball: http://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, tarball: http://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, tarball: http://registry.npmjs.org/open/-/open-7.4.2.tgz} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: false + + /opencollective-postinstall@2.0.3: + resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==, tarball: http://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz} + hasBin: true + dev: false + + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true + + /opentype.js@0.7.3: + resolution: {integrity: sha512-Veui5vl2bLonFJ/SjX/WRWJT3SncgiZNnKUyahmXCc2sa1xXW15u3R/3TN5+JFiP7RsjK5ER4HA5eWaEmV9deA==} + hasBin: true + dependencies: + tiny-inflate: 1.0.3 + dev: false + + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, tarball: http://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.3 + dev: false + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, tarball: http://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, tarball: http://registry.npmjs.org/ora/-/ora-5.4.1.tgz} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.8.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /ora@6.3.0: + resolution: {integrity: sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + chalk: 5.2.0 + cli-cursor: 4.0.0 + cli-spinners: 2.8.0 + is-interactive: 2.0.0 + is-unicode-supported: 1.3.0 + log-symbols: 5.1.0 + stdin-discarder: 0.1.0 + strip-ansi: 7.0.1 + wcwidth: 1.0.1 + dev: true + + /os-name@1.0.3: + resolution: {integrity: sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==, tarball: http://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + osx-release: 1.1.0 + win-release: 1.1.1 + dev: false + + /os-name@4.0.1: + resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==, tarball: http://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz} + engines: {node: '>=10'} + dependencies: + macos-release: 2.5.1 + windows-release: 4.0.0 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, tarball: http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /osx-release@1.1.0: + resolution: {integrity: sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==, tarball: http://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: false + + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, tarball: http://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz} + engines: {node: '>=6'} + dev: false + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, tarball: http://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, tarball: http://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz} + engines: {node: '>=6'} + + /pac-proxy-agent@5.0.0: + resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==, tarball: http://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz} + engines: {node: '>= 8'} + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.3.4 + get-uri: 3.0.2 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + pac-resolver: 5.0.1 + raw-body: 2.5.2 + socks-proxy-agent: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /pac-resolver@5.0.1: + resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==, tarball: http://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz} + engines: {node: '>= 8'} + dependencies: + degenerator: 3.0.4 + ip: 1.1.8 + netmask: 2.0.2 + dev: false + + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, tarball: http://registry.npmjs.org/pako/-/pako-1.0.11.tgz} + dev: false + + /param-case@2.1.1: + resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==, tarball: http://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz} + dependencies: + no-case: 2.3.2 + dev: false + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.5.0 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: http://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-bmfont-ascii@1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==, tarball: http://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz} + dev: false + + /parse-bmfont-binary@1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==, tarball: http://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz} + dev: false + + /parse-bmfont-xml@1.1.4: + resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==, tarball: http://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz} + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.4.23 + dev: false + + /parse-code-context@1.0.0: + resolution: {integrity: sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==} + engines: {node: '>=6'} + dev: true + + /parse-data-uri@0.2.0: + resolution: {integrity: sha512-uOtts8NqDcaCt1rIsO3VFDRsAfgE4c6osG4d9z3l4dCBlxYFzni6Di/oNU270SDrjkfZuUvLZx1rxMyqh46Y9w==} + dependencies: + data-uri-to-buffer: 0.0.3 + dev: true + + /parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==, tarball: http://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz} + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + + /parse-filepath@1.0.2: + resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} + engines: {node: '>=0.8'} + dependencies: + is-absolute: 1.0.0 + map-cache: 0.2.2 + path-root: 0.1.1 + dev: true + + /parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==, tarball: http://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz} + dev: false + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: http://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, tarball: http://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz} + engines: {node: '>= 0.10'} + dev: true + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==, tarball: http://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz} + dependencies: + parse5: 6.0.1 + dev: false + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==, tarball: http://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: false + + /parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==, tarball: http://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz} + dev: false + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, tarball: http://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz} + dev: false + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, tarball: http://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz} + dependencies: + entities: 4.5.0 + dev: false + + /parseley@0.11.0: + resolution: {integrity: sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ==, tarball: http://registry.npmjs.org/parseley/-/parseley-0.11.0.tgz} + dependencies: + leac: 0.6.0 + peberminta: 0.8.0 + dev: false + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, tarball: http://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz} + engines: {node: '>= 0.8'} + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /passport-jwt@4.0.1: + resolution: {integrity: sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==, tarball: http://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.1.tgz} + dependencies: + jsonwebtoken: 9.0.0 + passport-strategy: 1.0.0 + dev: false + + /passport-strategy@1.0.0: + resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==, tarball: http://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz} + engines: {node: '>= 0.4.0'} + dev: false + + /passport@0.6.0: + resolution: {integrity: sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==, tarball: http://registry.npmjs.org/passport/-/passport-0.6.0.tgz} + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: 1.0.0 + pause: 0.0.1 + utils-merge: 1.0.1 + dev: false + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: false + + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.5.0 + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, tarball: http://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + engines: {node: '>=0.10.0'} + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, tarball: http://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz} + engines: {node: '>=4'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: http://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, tarball: http://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: http://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz} + + /path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + dev: true + + /path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + dependencies: + path-root-regex: 0.1.2 + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 9.1.1 + minipass: 5.0.0 + dev: true + + /path-scurry@1.7.0: + resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==, tarball: http://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 9.1.1 + minipass: 5.0.0 + dev: true + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, tarball: http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz} + + /path-to-regexp@0.2.5: + resolution: {integrity: sha1-C0JpkeOH/ExnXeI1V/NYcV62b7A=} + dev: false + + /path-to-regexp@3.2.0: + resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==, tarball: http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz} + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /pathe@1.1.0: + resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} + dev: true + + /pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==, tarball: http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz} + dependencies: + through: 2.3.8 + dev: false + + /pause@0.0.1: + resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==, tarball: http://registry.npmjs.org/pause/-/pause-0.0.1.tgz} + dev: false + + /peberminta@0.8.0: + resolution: {integrity: sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw==, tarball: http://registry.npmjs.org/peberminta/-/peberminta-0.8.0.tgz} + dev: false + + /peek-readable@4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==, tarball: http://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz} + engines: {node: '>=8'} + dev: false + + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + /perfect-debounce@0.1.3: + resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==} + dev: true + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: http://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz} + + /phin@2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==, tarball: http://registry.npmjs.org/phin/-/phin-2.9.3.tgz} + dev: false + + /pick-util@1.1.5: + resolution: {integrity: sha512-H0MaM8T7wpQ/azvB12ChZw7kpSFzjsgv3Z+N7fUWnL1McTGSEeroCngcK4eOPiFQq08rAyKX3hadcAB1kUqfXA==, tarball: http://registry.npmjs.org/pick-util/-/pick-util-1.1.5.tgz} + dependencies: + '@jonkemp/package-utils': 1.0.8 + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, tarball: http://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==, tarball: http://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, tarball: http://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, tarball: http://registry.npmjs.org/pify/-/pify-2.3.0.tgz} + engines: {node: '>=0.10.0'} + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, tarball: http://registry.npmjs.org/pify/-/pify-3.0.0.tgz} + engines: {node: '>=4'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==, tarball: http://registry.npmjs.org/pify/-/pify-4.0.1.tgz} + engines: {node: '>=6'} + requiresBuild: true + dev: true + optional: true + + /pinia@2.0.35(typescript@4.9.5)(vue@3.2.47): + resolution: {integrity: sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==, tarball: http://registry.npmjs.org/pinia/-/pinia-2.0.35.tgz} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.0 + typescript: 4.9.5 + vue: 3.2.47 + vue-demi: 0.14.0(vue@3.2.47) + dev: false + + /pinia@2.0.35(typescript@5.0.4)(vue@3.2.47): + resolution: {integrity: sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==, tarball: http://registry.npmjs.org/pinia/-/pinia-2.0.35.tgz} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + dependencies: + '@vue/devtools-api': 6.5.0 + typescript: 5.0.4 + vue: 3.2.47 + vue-demi: 0.14.0(vue@3.2.47) + dev: false + + /pirates@4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, tarball: http://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz} + engines: {node: '>= 6'} + + /pixelmatch@4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==, tarball: http://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz} + hasBin: true + dependencies: + pngjs: 3.4.0 + dev: false + + /pixelsmith@2.6.0: + resolution: {integrity: sha512-1W0C8EVxAPJwsCodw/+dfeEtdSc8JuHFipVylf51PIvh7S7Q33qmVCCzeWQp1y1sXpZ52iXGY2D/ICMyHPIULw==} + engines: {node: '>= 12.0.0'} + dependencies: + async: 3.2.4 + concat-stream: 1.5.2 + get-pixels: 3.3.3 + mime-types: 2.1.35 + ndarray: 1.0.19 + obj-extend: 0.1.0 + save-pixels: 2.3.6 + vinyl-file: 1.3.0 + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, tarball: http://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-types@1.0.2: + resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.2.0 + pathe: 1.1.0 + dev: true + + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + requiresBuild: true + dependencies: + jsonc-parser: 3.2.0 + mlly: registry.npmmirror.com/mlly@1.5.0 + pathe: registry.npmmirror.com/pathe@1.1.2 + dev: false + optional: true + + /pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==, tarball: http://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + find-up: 3.0.0 + dev: false + + /platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==, tarball: http://registry.npmjs.org/platform/-/platform-1.3.6.tgz} + dev: false + + /plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + dev: true + + /plop@3.1.2: + resolution: {integrity: sha512-39SOtQ3WlePXSNqKqAh/QlUSHXHO25iCnyCO3Qs/9UzPVmwVledRTDGvPd2csh+JnHVXz4c63F6fBwdqZHgbUg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@types/liftoff': 4.0.0 + chalk: 5.2.0 + interpret: 2.2.0 + liftoff: 4.0.0 + minimist: 1.2.8 + node-plop: 0.31.1 + ora: 6.3.0 + v8flags: 4.0.0 + dev: true + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, tarball: http://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz} + engines: {node: '>=4'} + + /pngjs-nozlib@1.0.0: + resolution: {integrity: sha512-N1PggqLp9xDqwAoKvGohmZ3m4/N9xpY0nDZivFqQLcpLHmliHnCp9BuNCsOeqHWMuEEgFjpEaq9dZq6RZyy0fA==} + engines: {iojs: '>= 1.0.0', node: '>=0.10.0'} + dev: true + + /pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==, tarball: http://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz} + engines: {node: '>=4.0.0'} + + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==, tarball: http://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz} + engines: {node: '>=10.13.0'} + dev: false + + /pngjs@6.0.0: + resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==, tarball: http://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz} + engines: {node: '>=12.13.0'} + dev: false + + /popmotion@11.0.5: + resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==} + dependencies: + framesync: 6.1.2 + hey-listen: 1.0.8 + style-value-types: 5.1.2 + tslib: 2.4.0 + dev: false + + /portfinder@1.0.32: + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + dependencies: + async: 2.6.4 + debug: 3.2.7 + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-html@1.5.0: + resolution: {integrity: sha512-kCMRWJRHKicpA166kc2lAVUGxDZL324bkj/pVOb6RhjB0Z5Krl7mN0AsVkBhVIRZZirY0lyQXG38HCVaoKVNoA==} + engines: {node: ^12 || >=14} + dependencies: + htmlparser2: 8.0.2 + js-tokens: 8.0.1 + postcss: 8.4.23 + postcss-safe-parser: 6.0.0(postcss@8.4.23) + dev: true + + /postcss-import@15.1.0(postcss@8.4.23): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, tarball: http://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.23 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.2 + + /postcss-js@4.0.1(postcss@8.4.23): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, tarball: http://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.23 + + /postcss-load-config@4.0.1(postcss@8.4.23)(ts-node@10.9.1): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, tarball: http://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.23 + ts-node: 10.9.1(@types/node@18.16.3)(typescript@4.9.5) + yaml: 2.2.2 + + /postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + dev: true + + /postcss-nested@6.0.1(postcss@8.4.23): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, tarball: http://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.23 + postcss-selector-parser: 6.0.12 + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: 5.2.18 + dev: true + + /postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==} + dev: true + + /postcss-safe-parser@6.0.0(postcss@8.4.23): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: 8.4.23 + dev: true + + /postcss-scss@4.0.6(postcss@8.4.23): + resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.19 + dependencies: + postcss: 8.4.23 + dev: true + + /postcss-selector-parser@6.0.12: + resolution: {integrity: sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==, tarball: http://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: http://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} + + /postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: registry.npmmirror.com/source-map@0.5.7 + supports-color: 3.2.3 + dev: true + + /postcss@8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==, tarball: http://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, tarball: http://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz} + engines: {node: '>= 0.8.0'} + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: http://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz} + engines: {node: '>= 0.8.0'} + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, tarball: http://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.2.0 + + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, tarball: http://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz} + engines: {node: '>=10.13.0'} + hasBin: true + + /pretty-bytes@6.1.0: + resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==, tarball: http://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz} + engines: {node: ^14.13.1 || >=16.0.0} + dev: true + + /pretty-format@29.5.0: + resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==, tarball: http://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /preview-email@3.0.5: + resolution: {integrity: sha512-q37jdkVw+wic0o/7xYhOTBS4kF0WX3two0OepmR1Fhxp9NTpO3rJTccAjQm95gJx/2Wa/Nv98sr9pXIQ77/foA==, tarball: http://registry.npmjs.org/preview-email/-/preview-email-3.0.5.tgz} + engines: {node: '>=10'} + deprecated: Please upgrade to v3.0.7+ as we have added iOS Simulator support to previewing emails! See and screenshots at . + dependencies: + dayjs: registry.npmmirror.com/dayjs@1.11.10 + debug: 4.3.4 + mailparser: 3.6.4 + nodemailer: 6.9.1 + open: 7.4.2 + pug: registry.npmmirror.com/pug@3.0.2 + uuid: registry.npmmirror.com/uuid@8.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, tarball: http://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz} + engines: {node: '>=6'} + dev: false + + /process-nextick-args@1.0.7: + resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, tarball: http://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, tarball: http://registry.npmjs.org/process/-/process-0.11.10.tgz} + engines: {node: '>= 0.6.0'} + dev: false + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, tarball: http://registry.npmjs.org/promise/-/promise-7.3.1.tgz} + requiresBuild: true + dependencies: + asap: 2.0.6 + dev: false + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, tarball: http://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, tarball: http://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz} + dev: false + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, tarball: http://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + /proxy-agent@5.0.0: + resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==, tarball: http://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz} + engines: {node: '>= 8'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + lru-cache: 5.1.1 + pac-proxy-agent: 5.0.0 + proxy-from-env: 1.1.0 + socks-proxy-agent: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, tarball: http://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz} + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, tarball: http://registry.npmjs.org/prr/-/prr-1.0.1.tgz} + requiresBuild: true + dev: true + optional: true + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, tarball: http://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz} + dev: false + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, tarball: http://registry.npmjs.org/psl/-/psl-1.9.0.tgz} + + /pug-attrs@3.0.0: + resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==, tarball: http://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz} + requiresBuild: true + dependencies: + constantinople: 4.0.1 + js-stringify: 1.0.2 + pug-runtime: 3.0.1 + dev: false + + /pug-code-gen@3.0.2: + resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==, tarball: http://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz} + requiresBuild: true + dependencies: + constantinople: 4.0.1 + doctypes: 1.1.0 + js-stringify: 1.0.2 + pug-attrs: 3.0.0 + pug-error: 2.0.0 + pug-runtime: 3.0.1 + void-elements: 3.1.0 + with: 7.0.2 + dev: false + + /pug-error@2.0.0: + resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==, tarball: http://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz} + requiresBuild: true + dev: false + + /pug-filters@4.0.0: + resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==, tarball: http://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz} + requiresBuild: true + dependencies: + constantinople: 4.0.1 + jstransformer: 1.0.0 + pug-error: 2.0.0 + pug-walk: 2.0.0 + resolve: 1.22.2 + dev: false + + /pug-lexer@5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==, tarball: http://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz} + requiresBuild: true + dependencies: + character-parser: 2.2.0 + is-expression: 4.0.0 + pug-error: 2.0.0 + dev: false + + /pug-linker@4.0.0: + resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==, tarball: http://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz} + requiresBuild: true + dependencies: + pug-error: 2.0.0 + pug-walk: 2.0.0 + dev: false + + /pug-load@3.0.0: + resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==, tarball: http://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz} + requiresBuild: true + dependencies: + object-assign: 4.1.1 + pug-walk: 2.0.0 + dev: false + + /pug-parser@6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==, tarball: http://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz} + requiresBuild: true + dependencies: + pug-error: 2.0.0 + token-stream: 1.0.0 + dev: false + + /pug-runtime@3.0.1: + resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==, tarball: http://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz} + requiresBuild: true + dev: false + + /pug-strip-comments@2.0.0: + resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==, tarball: http://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz} + requiresBuild: true + dependencies: + pug-error: 2.0.0 + dev: false + + /pug-walk@2.0.0: + resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==, tarball: http://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz} + requiresBuild: true + dev: false + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, tarball: http://registry.npmjs.org/pump/-/pump-3.0.0.tgz} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + /punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + engines: {node: '>=6'} + + /pure-rand@6.0.2: + resolution: {integrity: sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==, tarball: http://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz} + dev: true + + /q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==, tarball: http://registry.npmjs.org/q/-/q-1.5.1.tgz} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: true + + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==, tarball: http://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + dijkstrajs: 1.0.3 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: false + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, tarball: http://registry.npmjs.org/qs/-/qs-6.11.0.tgz} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /qs@6.11.1: + resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==, tarball: http://registry.npmjs.org/qs/-/qs-6.11.1.tgz} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, tarball: http://registry.npmjs.org/qs/-/qs-6.5.3.tgz} + engines: {node: '>=0.6'} + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, tarball: http://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz} + engines: {node: '>= 0.6'} + + /rate-limiter-flexible@2.1.10: + resolution: {integrity: sha512-Pa+8TPD4xYaiCUB5K4a/+j2FHDUe4HP1g49JmKEmkOkhqPaeVqxJsZuuVaza/svSCOT+V73vtsyBiSFK/e1yXw==, tarball: http://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.1.10.tgz} + dev: false + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==, tarball: http://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, tarball: http://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + /rc9@2.1.0: + resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} + dependencies: + defu: 6.1.2 + destr: 1.2.2 + flat: 5.0.2 + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, tarball: http://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz} + dev: true + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, tarball: http://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz} + dependencies: + pify: 2.3.0 + + /read-config-file@6.3.2: + resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} + engines: {node: '>=12.0.0'} + dependencies: + config-file-ts: 0.2.4 + dotenv: 9.0.2 + dotenv-expand: 5.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + dev: true + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, tarball: http://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==, tarball: http://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + /readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + dev: true + + /readable-stream@1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==, tarball: http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + + /readable-stream@2.0.6: + resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, tarball: http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz} + dependencies: + core-util-is: 1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, tarball: http://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==, tarball: http://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz} + engines: {node: '>=8'} + dependencies: + readable-stream: 3.6.2 + dev: false + + /readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, tarball: http://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz} + dependencies: + minimatch: 5.1.6 + dev: false + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + + /rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, tarball: http://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz} + engines: {node: '>= 0.10'} + dependencies: + resolve: 1.22.2 + dev: true + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: 1.22.2 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, tarball: http://registry.npmjs.org/redent/-/redent-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redis-commands@1.7.0: + resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==, tarball: http://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz} + dev: false + + /redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==, tarball: http://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz} + engines: {node: '>=4'} + dev: false + + /redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==, tarball: http://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz} + engines: {node: '>=4'} + dependencies: + redis-errors: 1.2.0 + dev: false + + /redis@4.6.6: + resolution: {integrity: sha512-aLs2fuBFV/VJ28oLBqYykfnhGGkFxvx0HdCEBYdJ99FFbSEMZ7c1nVKwR6ZRv+7bb7JnC0mmCzaqu8frgOYhpA==, tarball: http://registry.npmjs.org/redis/-/redis-4.6.6.tgz} + dependencies: + '@redis/bloom': 1.2.0(@redis/client@1.5.7) + '@redis/client': 1.5.7 + '@redis/graph': 1.1.0(@redis/client@1.5.7) + '@redis/json': 1.0.4(@redis/client@1.5.7) + '@redis/search': 1.1.2(@redis/client@1.5.7) + '@redis/time-series': 1.0.4(@redis/client@1.5.7) + dev: false + + /reflect-metadata@0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==, tarball: http://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz} + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, tarball: http://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==, tarball: http://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz} + hasBin: true + + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==, tarball: http://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==, tarball: http://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz} + engines: {node: '>=8'} + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, tarball: http://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz} + hasBin: true + dependencies: + jsesc: 0.5.0 + + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, tarball: http://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz} + engines: {node: '>= 0.10'} + dev: false + + /remarkable-katex@1.2.1: + resolution: {integrity: sha512-Y1VquJBZnaVsfsVcKW2hmjT+pDL7mp8l5WAVlvuvViltrdok2m1AIKmJv8SsH+mBY84PoMw67t3kTWw1dIm8+g==, tarball: http://registry.npmjs.org/remarkable-katex/-/remarkable-katex-1.2.1.tgz} + dev: false + + /remarkable@2.0.1: + resolution: {integrity: sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==, tarball: http://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz} + engines: {node: '>= 6.0.0'} + hasBin: true + dependencies: + argparse: 1.0.10 + autolinker: 3.16.2 + dev: false + + /remote-content@3.0.1: + resolution: {integrity: sha512-zEMsvb4GgxVKBBTHgy2tte67RYBZx2Kyg9mTYpg+JfATHDqYJqhuC3zG1VoiYhDVP5JaB5+mPKcAvdnT0n3jxA==, tarball: http://registry.npmjs.org/remote-content/-/remote-content-3.0.1.tgz} + dependencies: + proxy-from-env: 1.1.0 + superagent: 8.0.9 + superagent-proxy: 3.0.0(superagent@8.0.9) + transitivePeerDependencies: + - supports-color + dev: false + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /replace-ext@0.0.1: + resolution: {integrity: sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==} + engines: {node: '>= 0.4'} + dev: true + + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, tarball: http://registry.npmjs.org/request/-/request-2.88.2.tgz} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see http://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, tarball: http://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz} + engines: {node: '>=0.10.0'} + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==, tarball: http://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz} + dev: false + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resize-detector@0.3.0: + resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==} + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==, tarball: http://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: http://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, tarball: http://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==, tarball: http://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: http://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, tarball: http://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz} + engines: {node: '>=10'} + dev: true + + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==, tarball: http://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz} + hasBin: true + dependencies: + is-core-module: 2.12.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + dependencies: + lowercase-keys: 2.0.0 + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, tarball: http://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, tarball: http://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz} + dev: true + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, tarball: http://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz} + hasBin: true + dependencies: + glob: 7.2.3 + dev: false + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: http://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz} + hasBin: true + dependencies: + glob: 7.2.3 + + /rimraf@4.4.1: + resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==, tarball: http://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 9.3.5 + dev: true + + /roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.3 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.2 + optional: true + + /rollup@3.21.3: + resolution: {integrity: sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA==, tarball: http://registry.npmjs.org/rollup/-/rollup-3.21.3.tgz} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, tarball: http://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, tarball: http://registry.npmjs.org/rw/-/rw-1.3.3.tgz} + dev: false + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, tarball: http://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==, tarball: http://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz} + dependencies: + tslib: 2.5.0 + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, tarball: http://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz} + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: http://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz} + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, tarball: http://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==, tarball: http://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz} + dependencies: + regexp-tree: 0.1.27 + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: http://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz} + + /sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + dependencies: + truncate-utf8-bytes: 1.0.2 + dev: true + + /sass@1.62.1: + resolution: {integrity: sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.3.0 + source-map-js: 1.0.2 + dev: true + + /save-pixels@2.3.6: + resolution: {integrity: sha512-/ayfEWBxt0tFpf5lxSU1S0+/TBn7EiaTZD+6GL+mwizHm3BKCBysnzT6Js7BusDUVcNVLkeJJKLZcBgdpM2leQ==} + dependencies: + contentstream: 1.0.0 + gif-encoder: 0.4.3 + jpeg-js: 0.4.4 + ndarray: 1.0.19 + ndarray-ops: 1.2.2 + pngjs-nozlib: 1.0.0 + through: 2.3.8 + dev: true + + /sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + + /saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==, tarball: http://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz} + engines: {node: '>=10'} + dependencies: + xmlchars: 2.2.0 + dev: false + + /schema-utils@3.1.2: + resolution: {integrity: sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==, tarball: http://registry.npmjs.org/schema-utils/-/schema-utils-3.1.2.tgz} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /scule@1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + dev: true + + /sdk-base@2.0.1: + resolution: {integrity: sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==, tarball: http://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz} + dependencies: + get-ready: 1.0.0 + dev: false + + /secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + dev: true + + /selderee@0.10.0: + resolution: {integrity: sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A==, tarball: http://registry.npmjs.org/selderee/-/selderee-0.10.0.tgz} + dependencies: + parseley: 0.11.0 + dev: false + + /select@1.1.2: + resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==, tarball: http://registry.npmjs.org/select/-/select-1.1.2.tgz} + dev: false + + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + requiresBuild: true + optional: true + + /semver@5.0.3: + resolution: {integrity: sha512-5OkOBiw69xqmxOFIXwXsiY1HlE+om8nNptg1ZIf95fzcnfgOv2fLm7pmmGbRJsjJIqPpW5Kwy4wpDBTz5wQlUw==} + hasBin: true + dev: true + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, tarball: http://registry.npmjs.org/semver/-/semver-6.3.0.tgz} + hasBin: true + + /semver@7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} + hasBin: true + dev: true + + /semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==, tarball: http://registry.npmjs.org/semver/-/semver-7.5.0.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, tarball: http://registry.npmjs.org/send/-/send-0.18.0.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + dependencies: + no-case: 3.0.4 + tslib: 2.5.0 + upper-case-first: 2.0.2 + dev: true + + /seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==, tarball: http://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz} + dev: false + + /serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + type-fest: 0.13.1 + optional: true + + /serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, tarball: http://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, tarball: http://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, tarball: http://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz} + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, tarball: http://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz} + dev: false + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, tarball: http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, tarball: http://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz} + 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==, tarball: http://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, tarball: http://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz} + engines: {node: '>=0.10.0'} + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: http://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz} + engines: {node: '>=8'} + + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==, tarball: http://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz} + dev: true + + /shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, tarball: http://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz} + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: 7.2.3 + interpret: 1.4.0 + rechoir: 0.6.2 + dev: true + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, tarball: http://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + + /sigmund@1.0.1: + resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==, tarball: http://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz} + dev: false + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, tarball: http://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz} + dev: true + + /signal-exit@4.0.1: + resolution: {integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==, tarball: http://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz} + engines: {node: '>=14'} + dev: true + + /simple-update-notifier@1.1.0: + resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} + engines: {node: '>=8.10.0'} + dependencies: + semver: 7.0.0 + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, tarball: http://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, tarball: http://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, tarball: http://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, tarball: http://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /slick@1.12.2: + resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==, tarball: http://registry.npmjs.org/slick/-/slick-1.12.2.tgz} + dev: false + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, tarball: http://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.5.0 + dev: true + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: registry.npmmirror.com/source-map@0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /socks-proxy-agent@5.0.1: + resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==, tarball: http://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: false + + /socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: true + + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==, tarball: http://registry.npmjs.org/socks/-/socks-2.7.1.tgz} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, tarball: http://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz} + engines: {node: '>=0.10.0'} + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See http://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, tarball: http://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz} + dependencies: + buffer-from: 1.1.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, tarball: http://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See http://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, tarball: http://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz} + engines: {node: '>= 8'} + dev: true + + /sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, tarball: http://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + deprecated: Please use @jridgewell/sourcemap-codec instead + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.13 + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.13 + + /spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} + + /specificity@0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==, tarball: http://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz} + hasBin: true + dev: false + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==, tarball: http://registry.npmjs.org/split2/-/split2-3.2.2.tgz} + dependencies: + readable-stream: 3.6.2 + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, tarball: http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz} + + /sprintf-js@1.1.2: + resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==, tarball: http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz} + + /spritesheet-templates@10.5.2: + resolution: {integrity: sha512-dMrLgS5eHCEDWqo1c3mDM5rGdJpBNf1JAJrxTKA4qR54trNTtxqGZlH3ZppS5FHTgjKgOtEmycqE2vGSkCYiVw==} + engines: {node: '>= 8.0.0'} + dependencies: + handlebars: registry.npmmirror.com/handlebars@4.7.7 + handlebars-layouts: 3.1.4 + json-content-demux: 0.1.4 + underscore: 1.13.6 + underscore.string: 3.3.6 + dev: true + + /spritesmith@3.4.1: + resolution: {integrity: sha512-NQZ8c7bZKbtqc0n0V+vVpurV72BwziOXw8AAU/nOdrjcjgCVoy+XUoopbrAYaNfJJgK730U98SB579+YtzfUJw==} + engines: {node: '>= 4.0.0'} + dependencies: + concat-stream: 1.5.2 + layout: 2.2.0 + pixelsmith: 2.6.0 + semver: 5.0.3 + through2: 2.0.5 + dev: true + + /sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==, tarball: http://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz} + engines: {node: '>= 0.6'} + dev: false + + /sshpk@1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==, tarball: http://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + + /ssri@10.0.4: + resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + minipass: 5.0.0 + dev: true + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, tarball: http://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@2.0.0 + dev: true + + /standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==, tarball: http://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz} + dev: false + + /stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, tarball: http://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz} + engines: {node: '>= 0.6'} + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, tarball: http://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz} + engines: {node: '>= 0.8'} + + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + bl: 5.1.0 + dev: true + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + + /stream-http@2.8.2: + resolution: {integrity: sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==, tarball: http://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz} + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + to-arraybuffer: 1.0.1 + xtend: 4.0.2 + dev: false + + /stream-to-buffer@0.1.0: + resolution: {integrity: sha512-Da4WoKaZyu3nf+bIdIifh7IPkFjARBnBK+pYqn0EUJqksjV9afojjaCCHUemH30Jmu7T2qcKvlZm2ykN38uzaw==, tarball: http://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz} + engines: {node: '>= 0.8'} + dependencies: + stream-to: 0.2.2 + dev: false + + /stream-to@0.2.2: + resolution: {integrity: sha512-Kg1BSDTwgGiVMtTCJNlo7kk/xzL33ZuZveEBRt6rXw+f1WLK/8kmz2NVCT/Qnv0JkV85JOHcLhD82mnXsR3kPw==, tarball: http://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz} + engines: {node: '>= 0.10.0'} + dev: false + + /stream-wormhole@1.1.0: + resolution: {integrity: sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==, tarball: http://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz} + engines: {node: '>=4.0.0'} + dev: false + + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, tarball: http://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz} + engines: {node: '>=10.0.0'} + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, tarball: http://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz} + engines: {node: '>=0.6.19'} + dev: true + + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, tarball: http://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + + /string-template@1.0.0: + resolution: {integrity: sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==, tarball: http://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz} + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: http://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, tarball: http://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.0.1 + dev: true + + /string.prototype.padend@3.1.4: + resolution: {integrity: sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==, tarball: http://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==, tarball: http://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==, tarball: http://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==, tarball: http://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, tarball: http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz} + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, tarball: http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, tarball: http://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz} + dependencies: + safe-buffer: 5.2.1 + + /stringz@2.1.0: + resolution: {integrity: sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==, tarball: http://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz} + dependencies: + char-regex: 1.0.2 + dev: false + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: http://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==, tarball: http://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom-stream@1.0.0: + resolution: {integrity: sha512-7jfJB9YpI2Z0aH3wu10ZqitvYJaE0s5IzFuWE+0pbb4Q/armTloEUShymkDO47YSLnjAW52mlXT//hs9wXNNJQ==} + engines: {node: '>=0.10.0'} + dependencies: + first-chunk-stream: 1.0.0 + strip-bom: 2.0.0 + dev: true + + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, tarball: http://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz} + engines: {node: '>=4'} + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, tarball: http://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, tarball: http://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, tarball: http://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, tarball: http://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: http://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + engines: {node: '>=8'} + + /strip-literal@1.0.1: + resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==} + dependencies: + acorn: 8.8.2 + dev: true + + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, tarball: http://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz} + dev: false + + /strtok3@6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==, tarball: http://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz} + engines: {node: '>=10'} + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 4.1.0 + dev: false + + /style-data@2.0.1: + resolution: {integrity: sha512-frUbteLGDoNEJhbMIWtyNE1VRduZXmZozhct4F+qN++OzIQZNZJ8KToZlDEl3eaedRYlDfKvUoMFMyrZj4x/sg==, tarball: http://registry.npmjs.org/style-data/-/style-data-2.0.1.tgz} + dependencies: + cheerio: 1.0.0-rc.12 + mediaquery-text: 1.2.0 + pick-util: 1.1.5 + dev: false + + /style-mod@4.0.3: + resolution: {integrity: sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==} + dev: false + + /style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + dev: true + + /style-value-types@5.1.2: + resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==} + dependencies: + hey-listen: 1.0.8 + tslib: 2.4.0 + dev: false + + /stylelint-config-html@1.1.0(postcss-html@1.5.0)(stylelint@15.6.0): + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 15.6.0 + dev: true + + /stylelint-config-recommended-scss@10.0.0(postcss@8.4.23)(stylelint@15.6.0): + resolution: {integrity: sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^15.3.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: 8.4.23 + postcss-scss: 4.0.6(postcss@8.4.23) + stylelint: 15.6.0 + stylelint-config-recommended: 11.0.0(stylelint@15.6.0) + stylelint-scss: 4.7.0(stylelint@15.6.0) + dev: true + + /stylelint-config-recommended-vue@1.4.0(postcss-html@1.5.0)(stylelint@15.6.0): + resolution: {integrity: sha512-DVJqyX2KvMCn9U0+keL12r7xlsH26K4Vg8NrIZuq5MoF7g82DpMp326Om4E0Q+Il1o+bTHuUyejf2XAI0iD04Q==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + semver: 7.5.0 + stylelint: 15.6.0 + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.6.0) + stylelint-config-recommended: 12.0.0(stylelint@15.6.0) + dev: true + + /stylelint-config-recommended@11.0.0(stylelint@15.6.0): + resolution: {integrity: sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==} + peerDependencies: + stylelint: ^15.3.0 + dependencies: + stylelint: 15.6.0 + dev: true + + /stylelint-config-recommended@12.0.0(stylelint@15.6.0): + resolution: {integrity: sha512-x6x8QNARrGO2sG6iURkzqL+Dp+4bJorPMMRNPScdvaUK8PsynriOcMW7AFDKqkWAS5wbue/u8fUT/4ynzcmqdQ==} + peerDependencies: + stylelint: ^15.5.0 + dependencies: + stylelint: 15.6.0 + dev: true + + /stylelint-config-standard-scss@8.0.0(postcss@8.4.23)(stylelint@15.6.0): + resolution: {integrity: sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^15.4.0 + peerDependenciesMeta: + postcss: + optional: true + dependencies: + postcss: 8.4.23 + stylelint: 15.6.0 + stylelint-config-recommended-scss: 10.0.0(postcss@8.4.23)(stylelint@15.6.0) + stylelint-config-standard: 32.0.0(stylelint@15.6.0) + dev: true + + /stylelint-config-standard-vue@1.0.0(postcss-html@1.5.0)(stylelint@15.6.0): + resolution: {integrity: sha512-wAzU7p6DSlo04pWfCbOcaMq09Nojt0FEsbdxhCBTdC7IguD9ZVl7FP/bvyA0HAHjZGC4JkW7m6WiQaoVMDSuFw==} + engines: {node: ^12 || >=14} + peerDependencies: + postcss-html: ^1.0.0 + stylelint: '>=14.0.0' + dependencies: + postcss-html: 1.5.0 + stylelint: 15.6.0 + stylelint-config-html: 1.1.0(postcss-html@1.5.0)(stylelint@15.6.0) + stylelint-config-recommended-vue: 1.4.0(postcss-html@1.5.0)(stylelint@15.6.0) + stylelint-config-standard: 33.0.0(stylelint@15.6.0) + dev: true + + /stylelint-config-standard@32.0.0(stylelint@15.6.0): + resolution: {integrity: sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==} + peerDependencies: + stylelint: ^15.4.0 + dependencies: + stylelint: 15.6.0 + stylelint-config-recommended: 11.0.0(stylelint@15.6.0) + dev: true + + /stylelint-config-standard@33.0.0(stylelint@15.6.0): + resolution: {integrity: sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==} + peerDependencies: + stylelint: ^15.5.0 + dependencies: + stylelint: 15.6.0 + stylelint-config-recommended: 12.0.0(stylelint@15.6.0) + dev: true + + /stylelint-scss@4.7.0(stylelint@15.6.0): + resolution: {integrity: sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==} + peerDependencies: + stylelint: ^14.5.1 || ^15.0.0 + dependencies: + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-selector-parser: 6.0.12 + postcss-value-parser: 4.2.0 + stylelint: 15.6.0 + dev: true + + /stylelint-stylistic@0.4.0(stylelint@15.6.0): + resolution: {integrity: sha512-8x6sClY6D+wrdTZD9kEcIcyH6Qv3nXapngd8INEI0iABukdecepZcme+RpxMOJCe4ngacBZf+JlCLjDjKadBcA==} + engines: {node: '>=14.x'} + peerDependencies: + stylelint: ^15.0.0 + dependencies: + postcss: 8.4.23 + postcss-media-query-parser: 0.2.3 + postcss-value-parser: 4.2.0 + style-search: 0.1.0 + stylelint: 15.6.0 + dev: true + + /stylelint@15.6.0: + resolution: {integrity: sha512-Cqzpc8tvJm77KaM8qUbhpJ/UYK55Ia0whQXj4b9IId9dlPICO7J8Lyo15SZWiHxKjlvy3p5FQor/3n6i8ignXg==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1) + '@csstools/css-tokenizer': 2.1.1 + '@csstools/media-query-list-parser': 2.0.4(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1) + '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.12) + balanced-match: 2.0.0 + colord: 2.9.3 + cosmiconfig: 8.1.3 + css-functions-list: 3.1.0 + css-tree: 2.3.1 + debug: 4.3.4 + fast-glob: 3.2.12 + fastest-levenshtein: 1.0.16 + file-entry-cache: 6.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + globjoin: 0.1.4 + html-tags: 3.3.1 + ignore: 5.2.4 + import-lazy: 4.0.0 + imurmurhash: 0.1.4 + is-plain-object: 5.0.0 + known-css-properties: 0.27.0 + mathml-tag-names: 2.1.3 + meow: 9.0.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.23 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.1 + postcss-safe-parser: 6.0.0(postcss@8.4.23) + postcss-selector-parser: 6.0.12 + postcss-value-parser: 4.2.0 + resolve-from: 5.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + style-search: 0.1.0 + supports-hyperlinks: 3.0.0 + svg-tags: 1.0.0 + table: 6.8.1 + v8-compile-cache: 2.3.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /sucrase@3.32.0: + resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==, tarball: http://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + + /sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /superagent-proxy@3.0.0(superagent@8.0.9): + resolution: {integrity: sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==, tarball: http://registry.npmjs.org/superagent-proxy/-/superagent-proxy-3.0.0.tgz} + engines: {node: '>=6'} + peerDependencies: + superagent: '>= 0.15.4 || 1 || 2 || 3' + dependencies: + debug: 4.3.4 + proxy-agent: 5.0.0 + superagent: 8.0.9 + transitivePeerDependencies: + - supports-color + dev: false + + /superagent@8.0.9: + resolution: {integrity: sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==, tarball: http://registry.npmjs.org/superagent/-/superagent-8.0.9.tgz} + engines: {node: '>=6.4.0 <13 || >=14'} + dependencies: + component-emitter: 1.3.0 + cookiejar: 2.1.4 + debug: 4.3.4 + fast-safe-stringify: 2.1.1 + form-data: 4.0.0 + formidable: 2.1.2 + methods: 1.1.2 + mime: 2.6.0 + qs: 6.11.1 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + + /supertest@6.3.3: + resolution: {integrity: sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==, tarball: http://registry.npmjs.org/supertest/-/supertest-6.3.3.tgz} + engines: {node: '>=6.4.0'} + dependencies: + methods: 1.1.2 + superagent: 8.0.9 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, tarball: http://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: http://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-hyperlinks@3.0.0: + resolution: {integrity: sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==} + engines: {node: '>=14.18'} + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: http://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + engines: {node: '>= 0.4'} + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: registry.npmmirror.com/image-size@0.5.5 + loader-utils: 1.4.2 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.7 + transitivePeerDependencies: + - supports-color + dev: true + + /svg-captcha@1.4.0: + resolution: {integrity: sha512-/fkkhavXPE57zRRCjNqAP3txRCSncpMx3NnNZL7iEoyAtYwUjPhJxW6FQTQPG5UPEmCrbFoXS10C3YdJlW7PDg==} + engines: {node: '>=4.x'} + dependencies: + opentype.js: 0.7.3 + dev: false + + /svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /svgo@3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /swagger-ui-dist@4.18.2: + resolution: {integrity: sha512-oVBoBl9Dg+VJw8uRWDxlyUyHoNEDC0c1ysT6+Boy6CTgr2rUcLcfPon4RvxgS2/taNW6O0+US+Z/dlAsWFjOAQ==, tarball: http://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.18.2.tgz} + dev: false + + /swagger-ui-dist@4.18.3: + resolution: {integrity: sha512-QW280Uvt234+TLo9NMPRa2Sj17RoorbQlR2eEY4R6Cs0LbdXhiO14YWX9OPBkBdiN64GQYz4zU8wlHLVi81lBg==, tarball: http://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.18.3.tgz} + dev: false + + /swagger-ui-express@4.6.2(express@4.18.2): + resolution: {integrity: sha512-MHIOaq9JrTTB3ygUJD+08PbjM5Tt/q7x80yz9VTFIatw8j5uIWKcr90S0h5NLMzFEDC6+eVprtoeA5MDZXCUKQ==, tarball: http://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.2.tgz} + engines: {node: '>= v0.10.32'} + peerDependencies: + express: '>=4.0.0' + dependencies: + express: 4.18.2 + swagger-ui-dist: 4.18.3 + dev: false + + /symbol-observable@4.0.0: + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==, tarball: http://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz} + engines: {node: '>=0.10'} + dev: true + + /table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /tailwindcss@3.3.2(ts-node@10.9.1): + resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==, tarball: http://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.18.2 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.23 + postcss-import: 15.1.0(postcss@8.4.23) + postcss-js: 4.0.1(postcss@8.4.23) + postcss-load-config: 4.0.1(postcss@8.4.23)(ts-node@10.9.1) + postcss-nested: 6.0.1(postcss@8.4.23) + postcss-selector-parser: 6.0.12 + postcss-value-parser: 4.2.0 + resolve: 1.22.2 + sucrase: 3.32.0 + transitivePeerDependencies: + - ts-node + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: http://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} + engines: {node: '>=6'} + dev: true + + /tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, tarball: http://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz} + engines: {node: '>=6'} + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: 3.6.2 + dev: false + + /tar@6.1.13: + resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 4.2.8 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + dev: true + + /terser-webpack-plugin@5.3.7(webpack@5.80.0): + resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==, tarball: http://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + jest-worker: 27.5.1 + schema-utils: 3.1.2 + serialize-javascript: 6.0.1 + terser: 5.17.1 + webpack: 5.80.0 + dev: true + + /terser@5.17.1: + resolution: {integrity: sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==, tarball: http://registry.npmjs.org/terser/-/terser-5.17.1.tgz} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.3 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, tarball: http://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==, tarball: http://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz} + engines: {node: '>=0.10'} + dev: true + + /text-segmentation@1.0.3: + resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==, tarball: http://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz} + dependencies: + utrie: 1.0.2 + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, tarball: http://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz} + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, tarball: http://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, tarball: http://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz} + dependencies: + any-promise: 1.3.0 + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + dev: true + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==, tarball: http://registry.npmjs.org/through2/-/through2-4.0.2.tgz} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, tarball: http://registry.npmjs.org/through/-/through-2.3.8.tgz} + + /timm@1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==, tarball: http://registry.npmjs.org/timm/-/timm-1.7.1.tgz} + dev: false + + /tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==, tarball: http://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz} + dev: false + + /tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + dev: false + + /tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, tarball: http://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz} + dev: false + + /title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + dependencies: + tslib: 2.5.0 + dev: true + + /tlds@1.236.0: + resolution: {integrity: sha512-oP2PZ3KeGlgpHgsEfrtva3/K9kzsJUNliQSbCfrJ7JMCWFoCdtG+9YMq/g2AnADQ1v5tVlbtvKJZ4KLpy/P6MA==, tarball: http://registry.npmjs.org/tlds/-/tlds-1.236.0.tgz} + hasBin: true + dev: false + + /tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + dependencies: + tmp: 0.2.1 + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, tarball: http://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmp@0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==, tarball: http://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, tarball: http://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz} + dev: true + + /to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==, tarball: http://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz} + dev: false + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, tarball: http://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz} + engines: {node: '>=0.6'} + + /token-stream@1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==, tarball: http://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz} + requiresBuild: true + dev: false + + /token-types@4.2.1: + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==, tarball: http://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz} + engines: {node: '>=10'} + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + dev: false + + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==, tarball: http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, tarball: http://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz} + + /traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==, tarball: http://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz} + dev: false + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, tarball: http://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz} + hasBin: true + dev: true + + /treemate@0.3.11: + resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==, tarball: http://registry.npmjs.org/treemate/-/treemate-0.3.11.tgz} + dev: false + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, tarball: http://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz} + engines: {node: '>=8'} + dev: true + + /truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + dependencies: + utf8-byte-length: 1.0.4 + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, tarball: http://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz} + + /ts-jest@29.0.3(@babel/core@7.23.9)(jest@29.3.1)(typescript@4.9.5): + resolution: {integrity: sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==, tarball: http://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 29.3.1(@types/node@18.11.18)(ts-node@10.9.1) + jest-util: 29.5.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.0 + typescript: 4.9.5 + yargs-parser: 21.1.1 + dev: true + + /ts-loader@9.4.2(typescript@4.9.5)(webpack@5.90.1): + resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==, tarball: http://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.13.0 + micromatch: 4.0.5 + semver: 7.5.0 + typescript: 4.9.5 + webpack: registry.npmmirror.com/webpack@5.90.1 + dev: true + + /ts-node@10.9.1(@types/node@18.11.18)(typescript@4.9.5): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, tarball: http://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.11.18 + acorn: 8.8.2 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + /ts-node@10.9.1(@types/node@18.16.3)(typescript@4.9.5): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, tarball: http://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.3 + '@types/node': 18.16.3 + acorn: 8.8.2 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + /tsconfig-paths-webpack-plugin@4.0.1: + resolution: {integrity: sha512-m5//KzLoKmqu2MVix+dgLKq70MnFi8YL8sdzQZ6DblmCdfuq/y3OqvJd5vMndg2KEVCOeNz8Es4WVZhYInteLw==, tarball: http://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.1.tgz} + engines: {node: '>=10.13.0'} + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.13.0 + tsconfig-paths: 4.2.0 + dev: true + + /tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==, tarball: http://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + /tsconfig-paths@4.1.1: + resolution: {integrity: sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==, tarball: http://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz} + engines: {node: '>=6'} + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, tarball: http://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz} + engines: {node: '>=6'} + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + /tslib@2.2.0: + resolution: {integrity: sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==, tarball: http://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz} + dev: false + + /tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + dev: false + + /tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: false + + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, tarball: http://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz} + + /tsutils@3.21.0(typescript@4.9.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, tarball: http://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: registry.npmmirror.com/typescript@4.9.5 + + /tsutils@3.21.0(typescript@5.0.4): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, tarball: http://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.0.4 + + /tsx@3.12.7: + resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} + hasBin: true + dependencies: + '@esbuild-kit/cjs-loader': 2.4.2 + '@esbuild-kit/core-utils': 3.1.0 + '@esbuild-kit/esm-loader': 2.5.5 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, tarball: http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz} + dependencies: + safe-buffer: 5.2.1 + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: false + + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, tarball: http://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: http://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, tarball: http://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz} + engines: {node: '>=4'} + dev: true + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + requiresBuild: true + optional: true + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, tarball: http://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, tarball: http://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz} + engines: {node: '>=10'} + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, tarball: http://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, tarball: http://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, tarball: http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz} + + /typedarray@0.0.7: + resolution: {integrity: sha512-ueeb9YybpjhivjbHP2LdFDAjbS948fGEPj+ACAMs4xCMmh72OCOMQWBQKlaN4ZNQ04yfLSDLSx1tGRIoWimObQ==} + dev: true + + /typeorm@0.3.15(ioredis@5.3.2)(mysql2@3.2.4)(redis@4.6.6)(ts-node@10.9.1): + resolution: {integrity: sha512-R4JSw8QjDP1W+ypeRz/XrCXIqubrLSnNAzJAp9EQSQIPHTv+YmUHZis8g08lOwFpuhqL9m8jkPSz8GWEKlU/ow==, tarball: http://registry.npmjs.org/typeorm/-/typeorm-0.3.15.tgz} + engines: {node: '>= 12.9.0'} + hasBin: true + peerDependencies: + '@google-cloud/spanner': ^5.18.0 + '@sap/hana-client': ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^5.2.0 + mssql: ^9.1.1 + mysql2: ^2.2.5 || ^3.0.1 + oracledb: ^5.1.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@google-cloud/spanner': + optional: true + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + dependencies: + '@sqltools/formatter': 1.2.5 + app-root-path: 3.1.0 + buffer: 6.0.3 + chalk: 4.1.2 + cli-highlight: 2.1.11 + debug: 4.3.4 + dotenv: 16.0.3 + glob: 8.1.0 + ioredis: 5.3.2 + mkdirp: 2.1.6 + mysql2: 3.2.4 + redis: 4.6.6 + reflect-metadata: 0.1.13 + sha.js: 2.4.11 + ts-node: 10.9.1(@types/node@18.11.18)(typescript@4.9.5) + tslib: 2.5.0 + uuid: 9.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: false + + /typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, tarball: http://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz} + engines: {node: '>=4.2.0'} + hasBin: true + + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + + /ua-parser-js@0.7.35: + resolution: {integrity: sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==} + dev: false + + /uc.micro@1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==, tarball: http://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz} + dev: false + + /ufo@1.1.1: + resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} + dev: true + + /ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + requiresBuild: true + dev: false + optional: true + + /uid@2.0.2: + resolution: {integrity: sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==, tarball: http://registry.npmjs.org/uid/-/uid-2.0.2.tgz} + engines: {node: '>=8'} + dependencies: + '@lukeed/csprng': 1.1.0 + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, tarball: http://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + /unc-path-regex@0.1.2: + resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} + engines: {node: '>=0.10.0'} + dev: true + + /unctx@2.3.1: + resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + requiresBuild: true + dependencies: + acorn: 8.8.2 + estree-walker: 3.0.3 + magic-string: 0.30.0 + unplugin: 1.3.1 + dev: false + optional: true + + /underscore.string@3.3.6: + resolution: {integrity: sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==} + dependencies: + sprintf-js: 1.1.2 + util-deprecate: 1.0.2 + dev: true + + /underscore@1.13.6: + resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + dev: true + + /unescape@1.0.1: + resolution: {integrity: sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==, tarball: http://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + dev: false + + /unimport@3.0.6: + resolution: {integrity: sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==} + dependencies: + '@rollup/pluginutils': 5.0.2 + escape-string-regexp: 5.0.0 + fast-glob: 3.2.12 + local-pkg: 0.4.3 + magic-string: 0.30.0 + mlly: 1.2.0 + pathe: 1.1.0 + pkg-types: 1.0.2 + scule: 1.0.0 + strip-literal: 1.0.1 + unplugin: 1.3.1 + transitivePeerDependencies: + - rollup + dev: true + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + dependencies: + qs: 6.11.1 + dev: true + + /uniq@1.0.1: + resolution: {integrity: sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==} + dev: true + + /unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + unique-slug: 4.0.0 + dev: true + + /unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + dev: true + + /unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==, tarball: http://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz} + dependencies: + '@types/unist': 2.0.6 + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + /universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, tarball: http://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, tarball: http://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz} + engines: {node: '>= 0.8'} + + /unplugin-auto-import@0.15.3(@vueuse/core@10.1.2): + resolution: {integrity: sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + dependencies: + '@antfu/utils': 0.7.2 + '@rollup/pluginutils': 5.0.2 + '@vueuse/core': 10.1.2(vue@3.2.47) + local-pkg: 0.4.3 + magic-string: 0.30.0 + minimatch: 9.0.0 + unimport: 3.0.6 + unplugin: 1.3.1 + transitivePeerDependencies: + - rollup + dev: true + + /unplugin-vue-components@0.24.1(vue@3.2.47): + resolution: {integrity: sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.2 + '@rollup/pluginutils': 5.0.2 + chokidar: 3.5.3 + debug: 4.3.4 + fast-glob: 3.2.12 + local-pkg: 0.4.3 + magic-string: 0.30.0 + minimatch: 7.4.6 + resolve: 1.22.2 + unplugin: 1.3.1 + vue: 3.2.47 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /unplugin-vue-setup-extend-plus@1.0.0: + resolution: {integrity: sha512-Qb34atQ/elvkErQ12PNv6UWJPWIG4dEgjjizYKyycPeiRqQaMVNCKqRIqfxlhXntcU2l+o3VQuk1NNZN6QJ/xw==} + dependencies: + '@vue/compiler-sfc': 3.2.47 + magic-string: 0.26.7 + unplugin: 1.3.1 + dev: true + + /unplugin@1.3.1: + resolution: {integrity: sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==} + dependencies: + acorn: 8.11.2 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /unzipper@0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==, tarball: http://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz} + dependencies: + big-integer: 1.6.51 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + dev: false + + /update-browserslist-db@1.0.11(browserslist@4.21.5): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==, tarball: http://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + dependencies: + tslib: 2.5.0 + dev: true + + /upper-case@1.1.3: + resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==, tarball: http://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz} + dev: false + + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + dependencies: + tslib: 2.5.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: http://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz} + dependencies: + punycode: 2.3.0 + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see http://github.com/lydell/urix#deprecated + dev: true + + /url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + dev: true + + /urllib@2.40.0: + resolution: {integrity: sha512-XDZjoijtzsbkXTXgM+A/sJM002nwoYsc46YOYr6MNH2jUUw1nCBf2ywT1WaPsVEWJX4Yr+9isGmYj4+yofFn9g==, tarball: http://registry.npmjs.org/urllib/-/urllib-2.40.0.tgz} + engines: {node: '>= 0.10.0'} + dependencies: + any-promise: 1.3.0 + content-type: 1.0.5 + debug: 2.6.9 + default-user-agent: 1.0.0 + digest-header: 1.1.0 + ee-first: 1.1.1 + formstream: 1.2.0 + humanize-ms: 1.2.1 + iconv-lite: 0.4.24 + ip: 1.1.8 + proxy-agent: 5.0.0 + pump: 3.0.0 + qs: 6.11.1 + statuses: 1.5.0 + utility: 1.18.0 + transitivePeerDependencies: + - supports-color + dev: false + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /utf8-byte-length@1.0.4: + resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} + dev: true + + /utif2@4.0.1: + resolution: {integrity: sha512-KMaD76dbzK1VjbwsckHJiqDjhP3pbpwyV+FdqkY6XFQenc2o/HS6pjPSYdu4+NQMHf2NLTW+nVP/eFP1CvOYQQ==, tarball: http://registry.npmjs.org/utif2/-/utif2-4.0.1.tgz} + dependencies: + pako: 1.0.11 + dev: false + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: http://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz} + + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==, tarball: http://registry.npmjs.org/util/-/util-0.12.5.tgz} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.10 + which-typed-array: 1.1.9 + dev: false + + /utility@1.18.0: + resolution: {integrity: sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==, tarball: http://registry.npmjs.org/utility/-/utility-1.18.0.tgz} + engines: {node: '>= 0.12.0'} + dependencies: + copy-to: 2.0.1 + escape-html: 1.0.3 + mkdirp: 0.5.6 + mz: 2.7.0 + unescape: 1.0.1 + dev: false + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, tarball: http://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz} + engines: {node: '>= 0.4.0'} + + /utrie@1.0.2: + resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==, tarball: http://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz} + dependencies: + base64-arraybuffer: 1.0.2 + dev: false + + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See http://v8.dev/blog/math-random for details. + hasBin: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, tarball: http://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz} + hasBin: true + dev: false + + /uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==, tarball: http://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz} + hasBin: true + dev: false + + /v-viewer@3.0.11(vue@3.2.47): + resolution: {integrity: sha512-E8LOdAxhzuktt4HB3PswVCccQ1Q1sYHYnLsS6zaJISpb5EvmAFs5sYNfXnDLFxVb5DQ82v4ZlGxkYlseXwWRJw==} + peerDependencies: + vue: ^3.0.0 + dependencies: + lodash: 4.17.21 + viewerjs: 1.11.3 + vue: 3.2.47 + dev: false + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, tarball: http://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} + + /v8-compile-cache@2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /v8-to-istanbul@9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==, tarball: http://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + + /v8flags@4.0.0: + resolution: {integrity: sha512-83N0OkTbn6gOjJ2awNuzuK4czeGxwEwBoTqlhBZhnp8o0IJ72mXRQKphj/azwRf3acbDJZYZhbOPEJHd884ELg==} + engines: {node: '>= 10.13.0'} + dev: true + + /valid-data-url@3.0.1: + resolution: {integrity: sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==, tarball: http://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz} + engines: {node: '>=10'} + dev: false + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, tarball: http://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + /validator@13.9.0: + resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==, tarball: http://registry.npmjs.org/validator/-/validator-13.9.0.tgz} + engines: {node: '>= 0.10'} + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, tarball: http://registry.npmjs.org/vary/-/vary-1.1.2.tgz} + engines: {node: '>= 0.8'} + + /vconsole@3.15.0: + resolution: {integrity: sha512-8hq7wabPcRucSWQyN7/1tthMawP9JPvM95zgtMHpPknMMMCKj+abpoK7P7oKK4B0qw58C24Mdvo9+raUdpHyVQ==} + dependencies: + '@babel/runtime': 7.21.5 + copy-text-to-clipboard: 3.1.0 + core-js: 3.30.1 + mutation-observer: 1.0.3 + dev: false + + /vdirs@0.1.8(vue@3.2.47): + resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==, tarball: http://registry.npmjs.org/vdirs/-/vdirs-0.1.8.tgz} + peerDependencies: + vue: ^3.0.11 + dependencies: + evtd: 0.2.4 + vue: 3.2.47 + dev: false + + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, tarball: http://registry.npmjs.org/verror/-/verror-1.10.0.tgz} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + /viewerjs@1.11.3: + resolution: {integrity: sha512-efG3U61Umuj/1x6JAtdvnY9m407C/RkrkFilsMcLEWKDivpjNU3/FeL+feCY1Vkur9aQeBJ+z6K4CCPP7hv6vA==} + dev: false + + /vinyl-file@1.3.0: + resolution: {integrity: sha512-i1CGRaiDs3qJ+Yc8cgtOnrZOwlhY02oDBrWSBKD9uYSsxqQG1RhNXLmR/orke0ye0sbKpVtAUHwhF2rs9A46cQ==} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + strip-bom: 2.0.0 + strip-bom-stream: 1.0.0 + vinyl: 1.2.0 + dev: true + + /vinyl@1.2.0: + resolution: {integrity: sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==} + engines: {node: '>= 0.9'} + dependencies: + clone: 1.0.4 + clone-stats: 0.0.1 + replace-ext: 0.0.1 + dev: true + + /vite-plugin-banner@0.7.0: + resolution: {integrity: sha512-g0cm0wbrR6b6wR8FWtfD1RSDPacdumKEOAnneXv+NpJ9ez+j6rklRv6lMOO+aPf+Y6Zb8OzgIk0FXBZ6h+DeZQ==} + dev: true + + /vite-plugin-compression@0.5.1(vite@4.3.3): + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.3.3): + resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@types/mockjs': 1.0.7 + chalk: 4.1.2 + chokidar: 3.5.3 + connect: 3.7.0 + debug: 4.3.4 + esbuild: 0.14.54 + fast-glob: 3.2.12 + mockjs: 1.1.0 + path-to-regexp: 6.2.1 + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-pages@0.29.0(vite@4.3.3): + resolution: {integrity: sha512-vRgLflQNMs8QnDB8A5XwX8b2XYSIN1Mdy3Bx7A7N9NTFeybRj/zpvoosdbMgJ3LsJ84AznHC3GytWQZGNpE5BA==} + peerDependencies: + '@vue/compiler-sfc': ^2.7.0 || ^3.0.0 + vite: ^2.0.0 || ^3.0.0-0 || ^4.0.0 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@types/debug': 4.1.7 + debug: 4.3.4 + deep-equal: 2.2.1 + extract-comments: 1.1.0 + fast-glob: 3.2.12 + json5: 2.2.3 + local-pkg: 0.4.3 + picocolors: 1.0.0 + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + yaml: 2.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-pwa@0.14.7(vite@4.3.3)(workbox-build@6.6.0)(workbox-window@6.6.0): + resolution: {integrity: sha512-dNJaf0fYOWncmjxv9HiSa2xrSjipjff7IkYE5oIUJ2x5HKu3cXgA8LRgzOwTc5MhwyFYRSU0xyN0Phbx3NsQYw==, tarball: http://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.14.7.tgz} + peerDependencies: + vite: ^3.1.0 || ^4.0.0 + workbox-build: ^6.5.4 + workbox-window: ^6.5.4 + dependencies: + '@rollup/plugin-replace': 5.0.2(rollup@3.21.3) + debug: 4.3.4 + fast-glob: 3.2.12 + pretty-bytes: 6.1.0 + rollup: 3.21.3 + vite: 4.3.3(@types/node@18.16.3)(less@4.1.3) + workbox-build: registry.npmmirror.com/workbox-build@6.6.0 + workbox-window: registry.npmmirror.com/workbox-window@6.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-spritesmith@0.1.1: + resolution: {integrity: sha512-y8PI25/FLe+CJr0bI+kOIptWy1fl7AOnZLXhXcb0VyUDAneZlFsFJm+K44lksNgV+0lRojAeMwwP+BhNqqL7Hw==} + dependencies: + fs-extra: 10.1.0 + gaze: 1.1.3 + lodash: 4.17.21 + mkdirp: 1.0.4 + spritesheet-templates: 10.5.2 + spritesmith: 3.4.1 + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@4.3.3): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-inspector@3.4.1(vite@4.3.3): + resolution: {integrity: sha512-HL7ixnvNbEDzjLk6CneZzc10BLfivuMuNpIyc1BVYC/6dFmgCznsfCNOP7NqIrAfwQmdXBXW5xuJVlD8jGoc5w==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 + dependencies: + '@babel/core': 7.21.5 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.5) + '@babel/plugin-transform-typescript': 7.21.3(@babel/core@7.21.5) + '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.5) + '@vue/compiler-dom': 3.2.47 + esno: 0.16.3 + kolorist: 1.8.0 + magic-string: 0.30.0 + shell-quote: 1.8.1 + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-vue-meta-layouts@0.2.2(vite@4.3.3)(vue-router@4.1.6): + resolution: {integrity: sha512-u3WHlSzqE7tfOFFN7IygkQXDgnhVYD+GSfSXeMk1m/xI/gMtJtLeVwjBTow4kOn3oEkJcj/I9yCZoWpQeRHTFw==} + peerDependencies: + vite: '>=2.0.0' + vue-router: '>=4.0.14' + dependencies: + local-pkg: 0.4.3 + vite: 4.3.3(sass@1.62.1)(terser@5.17.1) + vue-router: 4.1.6(vue@3.2.47) + dev: true + + /vite@4.3.3(@types/node@18.16.3)(less@4.1.3): + resolution: {integrity: sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==, tarball: http://registry.npmjs.org/vite/-/vite-4.3.3.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.16.3 + esbuild: 0.17.18 + less: 4.1.3 + postcss: 8.4.23 + rollup: 3.21.3 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /vite@4.3.3(sass@1.62.1)(terser@5.17.1): + resolution: {integrity: sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==, tarball: http://registry.npmjs.org/vite/-/vite-4.3.3.tgz} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.17.18 + postcss: 8.4.23 + rollup: 3.21.3 + sass: 1.62.1 + terser: 5.17.1 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /vm2@3.9.17: + resolution: {integrity: sha512-AqwtCnZ/ERcX+AVj9vUsphY56YANXxRuqMb7GsDtAr0m0PcQX3u0Aj3KWiXM0YAHy7i6JEeHrwOnwXbGYgRpAw==, tarball: http://registry.npmjs.org/vm2/-/vm2-3.9.17.tgz} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.3 + acorn-walk: 8.2.0 + dev: false + + /void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==, tarball: http://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz} + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: false + + /vooks@0.2.12(vue@3.2.47): + resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==, tarball: http://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz} + peerDependencies: + vue: ^3.0.0 + dependencies: + evtd: 0.2.4 + vue: 3.2.47 + dev: false + + /vue-clipboard3@2.0.0: + resolution: {integrity: sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==, tarball: http://registry.npmjs.org/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz} + dependencies: + clipboard: 2.0.11 + dev: false + + /vue-demi@0.13.11(vue@3.2.47): + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + dev: false + + /vue-demi@0.14.0(vue@3.2.47): + resolution: {integrity: sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==, tarball: http://registry.npmjs.org/vue-demi/-/vue-demi-0.14.0.tgz} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + + /vue-demi@0.14.5(vue@3.2.47): + resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + dev: false + + /vue-echarts@6.5.5(echarts@5.4.2)(vue@3.2.47): + resolution: {integrity: sha512-KJD1MSyoMQ33q8M4hM45OYeSC+t7LzesIXQOrkRSXv4xhOi0iN+6yEjQuIuqRB9zZGCT2J4bK3eQ+1ttdz4Uag==} + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.5 + echarts: ^5.4.1 + vue: ^2.6.12 || ^3.1.1 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + echarts: 5.4.2 + resize-detector: 0.3.0 + vue: 3.2.47 + vue-demi: 0.13.11(vue@3.2.47) + dev: false + + /vue-eslint-parser@9.1.1(eslint@8.39.0): + resolution: {integrity: sha512-C2aI/r85Q6tYcz4dpgvrs4wH/MqVrRAVIdpYedrxnATDHHkb+TroeRcDpKWGZCx/OcECMWfz7tVwQ8e+Opy6rA==, tarball: http://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.1.tgz} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.39.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + + /vue-i18n@9.2.2(vue@3.2.47): + resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==, tarball: http://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz} + engines: {node: '>= 14'} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@intlify/core-base': 9.2.2 + '@intlify/shared': 9.2.2 + '@intlify/vue-devtools': 9.2.2 + '@vue/devtools-api': 6.5.0 + vue: 3.2.47 + dev: false + + /vue-router@4.1.6(vue@3.2.47): + resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==, tarball: http://registry.npmjs.org/vue-router/-/vue-router-4.1.6.tgz} + peerDependencies: + vue: ^3.2.0 + dependencies: + '@vue/devtools-api': 6.5.0 + vue: 3.2.47 + + /vue-template-compiler@2.7.14: + resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==, tarball: http://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.6.3(typescript@4.9.5): + resolution: {integrity: sha512-q7l27j0eSJgyGat0khetrvoeaAHieRZFnf8WAJyKvB3eF0AxmLqfs4ahwZhaojBJjZ/lAXZa+Xt8EX54KzQ34w==, tarball: http://registry.npmjs.org/vue-tsc/-/vue-tsc-1.6.3.tgz} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/vue-language-core': 1.6.3 + '@volar/vue-typescript': 1.6.3(typescript@4.9.5) + semver: 7.5.0 + typescript: 4.9.5 + dev: true + + /vue-tsc@1.6.3(typescript@5.0.4): + resolution: {integrity: sha512-q7l27j0eSJgyGat0khetrvoeaAHieRZFnf8WAJyKvB3eF0AxmLqfs4ahwZhaojBJjZ/lAXZa+Xt8EX54KzQ34w==, tarball: http://registry.npmjs.org/vue-tsc/-/vue-tsc-1.6.3.tgz} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/vue-language-core': 1.6.3 + '@volar/vue-typescript': 1.6.3(typescript@5.0.4) + semver: 7.5.0 + typescript: 5.0.4 + dev: true + + /vue@3.2.47: + resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==, tarball: http://registry.npmjs.org/vue/-/vue-3.2.47.tgz} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-sfc': 3.2.47 + '@vue/runtime-dom': 3.2.47 + '@vue/server-renderer': 3.2.47(vue@3.2.47) + '@vue/shared': 3.2.47 + + /w3c-keyname@2.2.6: + resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} + dev: false + + /walk@2.3.15: + resolution: {integrity: sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==, tarball: http://registry.npmjs.org/walk/-/walk-2.3.15.tgz} + dependencies: + foreachasync: 3.0.0 + dev: false + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, tarball: http://registry.npmjs.org/walker/-/walker-1.0.8.tgz} + dependencies: + makeerror: 1.0.12 + dev: true + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, tarball: http://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, tarball: http://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz} + dependencies: + defaults: 1.0.4 + dev: true + + /web-resource-inliner@6.0.1: + resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==, tarball: http://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz} + engines: {node: '>=10.0.0'} + dependencies: + ansi-colors: 4.1.3 + escape-goat: 3.0.0 + htmlparser2: 5.0.1 + mime: registry.npmmirror.com/mime@2.6.0 + node-fetch: 2.6.9 + valid-data-url: 3.0.1 + transitivePeerDependencies: + - encoding + dev: false + + /web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==, tarball: http://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz} + engines: {node: '>= 8'} + dev: false + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, tarball: http://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz} + + /webpack-node-externals@3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==, tarball: http://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz} + engines: {node: '>=6'} + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + /webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + + /webpack@5.80.0: + resolution: {integrity: sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==, tarball: http://registry.npmjs.org/webpack/-/webpack-5.80.0.tgz} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 1.0.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/wasm-edit': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 + acorn: 8.8.2 + acorn-import-assertions: 1.8.0(acorn@8.8.2) + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.13.0 + es-module-lexer: 1.2.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.2 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.7(webpack@5.80.0) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /wechatpay-node-v3@2.1.5: + resolution: {integrity: sha512-q+CwkrNTJBMaRgkjNiwyIqIfEFjCpF0neO+C7sTV+739T96XXEru+GhZIOnNsMzb3JJV6fBAD9m1Adwuwnn6YA==} + dependencies: + '@fidm/x509': 1.2.1 + superagent: 8.0.9 + transitivePeerDependencies: + - supports-color + dev: false + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-fetch@3.6.2: + resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==, tarball: http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz} + dev: false + + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, tarball: http://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, tarball: http://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==, tarball: http://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz} + dev: false + + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==, tarball: http://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, tarball: http://registry.npmjs.org/which/-/which-1.3.1.tgz} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: http://registry.npmjs.org/which/-/which-2.0.2.tgz} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: true + + /win-release@1.1.1: + resolution: {integrity: sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==, tarball: http://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz} + engines: {node: '>=0.10.0'} + dependencies: + semver: 5.7.1 + dev: false + + /windows-release@4.0.0: + resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==, tarball: http://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz} + engines: {node: '>=10'} + dependencies: + execa: 4.1.0 + dev: true + + /with@7.0.2: + resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==, tarball: http://registry.npmjs.org/with/-/with-7.0.2.tgz} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + '@babel/parser': 7.21.5 + '@babel/types': 7.21.5 + assert-never: 1.2.1 + babel-walk: 3.0.0-canary-5 + dev: false + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, tarball: http://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz} + engines: {node: '>=0.10.0'} + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, tarball: http://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz} + + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, tarball: http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@6.2.1 + string-width: 5.1.2 + strip-ansi: 7.0.1 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, tarball: http://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.0.1 + dev: true + + /xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==, tarball: http://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz} + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: false + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==, tarball: http://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz} + engines: {node: '>=12'} + + /xml-parse-from-string@1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==, tarball: http://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz} + dev: false + + /xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==, tarball: http://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + + /xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: false + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + /xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + requiresBuild: true + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, tarball: http://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz} + dev: false + + /xregexp@2.0.0: + resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==, tarball: http://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz} + dev: false + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, tarball: http://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz} + engines: {node: '>=0.4'} + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, tarball: http://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz} + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, tarball: http://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz} + engines: {node: '>=10'} + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: false + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml-eslint-parser@1.2.0: + resolution: {integrity: sha512-OmuvQd5lyIJWfFALc39K5fGqp0aWNc+EtyhVgcQIPZaUKMnTb7An3RMp+QJizJ/x0F4kpgTNe6BL/ctdvoIwIg==, tarball: http://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.0.tgz} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.4.0 + lodash: 4.17.21 + yaml: 2.2.2 + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, tarball: http://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz} + engines: {node: '>= 6'} + dev: true + + /yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==, tarball: http://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz} + engines: {node: '>= 14'} + + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, tarball: http://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz} + engines: {node: '>=6'} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: false + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, tarball: http://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz} + engines: {node: '>=10'} + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, tarball: http://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz} + engines: {node: '>=12'} + + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==, tarball: http://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz} + engines: {node: '>=8'} + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: false + + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, tarball: http://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: false + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, tarball: http://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, tarball: http://registry.npmjs.org/yn/-/yn-3.1.1.tgz} + engines: {node: '>=6'} + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + /zip-stream@4.1.0: + resolution: {integrity: sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==, tarball: http://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz} + engines: {node: '>= 10'} + dependencies: + archiver-utils: 2.1.0 + compress-commons: 4.1.1 + readable-stream: 3.6.2 + dev: false + + /zrender@5.4.3: + resolution: {integrity: sha512-DRUM4ZLnoaT0PBVvGBDO9oWIDBKFdAVieNWxWwK0niYzJCMwGchRk21/hsE+RKkIveH3XHCyvXcJDkgLVvfizQ==} + dependencies: + tslib: 2.3.0 + dev: false + + registry.nlark.com/ee-first@1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=, registry: http://registry.npmjs.org/, tarball: http://registry.npmmirror.com/ee-first/download/ee-first-1.1.1.tgz} + name: ee-first + version: 1.1.1 + dev: true + + registry.nlark.com/setprototypeof@1.2.0: + resolution: {integrity: sha1-ZsmiSnP5/CjL5msJ/tPTPcrxtCQ=, registry: http://registry.npmjs.org/, tarball: http://registry.npmmirror.com/setprototypeof/download/setprototypeof-1.2.0.tgz} + name: setprototypeof + version: 1.2.0 + + registry.npmmirror.com/@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, tarball: http://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz} + name: '@ampproject/remapping' + version: 2.2.1 + engines: {node: '>=6.0.0'} + requiresBuild: true + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.22 + + registry.npmmirror.com/@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==, tarball: http://registry.npmmirror.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz} + id: registry.npmmirror.com/@apideck/better-ajv-errors/0.3.6 + name: '@apideck/better-ajv-errors' + version: 0.3.6 + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + dependencies: + ajv: registry.npmmirror.com/ajv@8.12.0 + json-schema: registry.npmmirror.com/json-schema@0.4.0 + jsonpointer: registry.npmmirror.com/jsonpointer@5.0.1 + leven: registry.npmmirror.com/leven@3.1.0 + dev: true + + registry.npmmirror.com/@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==, tarball: http://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.13.tgz} + name: '@babel/code-frame' + version: 7.22.13 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight@7.22.20 + chalk: registry.npmmirror.com/chalk@2.4.2 + dev: false + + registry.npmmirror.com/@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==, tarball: http://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz} + name: '@babel/code-frame' + version: 7.23.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight@7.23.4 + chalk: registry.npmmirror.com/chalk@2.4.2 + + registry.npmmirror.com/@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==, tarball: http://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz} + name: '@babel/compat-data' + version: 7.23.5 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==, tarball: http://registry.npmmirror.com/@babel/core/-/core-7.23.9.tgz} + name: '@babel/core' + version: 7.23.9 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.5 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.6 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9) + '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.9 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.9 + '@babel/template': registry.npmmirror.com/@babel/template@7.23.9 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.9 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 + json5: registry.npmmirror.com/json5@2.2.3 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==, tarball: http://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz} + name: '@babel/generator' + version: 7.23.6 + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.22 + jsesc: registry.npmmirror.com/jsesc@2.5.2 + + registry.npmmirror.com/@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==, tarball: http://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz} + name: '@babel/helper-annotate-as-pure' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==, tarball: http://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz} + name: '@babel/helper-builder-binary-assignment-operator-visitor' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==, tarball: http://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz} + name: '@babel/helper-compilation-targets' + version: 7.23.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.5 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.23.5 + browserslist: registry.npmmirror.com/browserslist@4.22.3 + lru-cache: registry.npmmirror.com/lru-cache@5.1.1 + semver: registry.npmmirror.com/semver@6.3.1 + + registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==, tarball: http://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz} + id: registry.npmmirror.com/@babel/helper-create-class-features-plugin/7.23.10 + name: '@babel/helper-create-class-features-plugin' + version: 7.23.10 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.22.5 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions@7.23.0 + '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression@7.22.5 + '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9) + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + semver: registry.npmmirror.com/semver@6.3.1 + dev: true + + registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==, tarball: http://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz} + id: registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/7.22.15 + name: '@babel/helper-create-regexp-features-plugin' + version: 7.22.15 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.22.5 + regexpu-core: registry.npmmirror.com/regexpu-core@5.3.2 + semver: registry.npmmirror.com/semver@6.3.1 + dev: true + + registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): + resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==, tarball: http://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz} + id: registry.npmmirror.com/@babel/helper-define-polyfill-provider/0.5.0 + name: '@babel/helper-define-polyfill-provider' + version: 0.5.0 + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + debug: registry.npmmirror.com/debug@4.3.4 + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + resolve: registry.npmmirror.com/resolve@1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, tarball: http://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz} + name: '@babel/helper-environment-visitor' + version: 7.22.20 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, tarball: http://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz} + name: '@babel/helper-function-name' + version: 7.23.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.23.9 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, tarball: http://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz} + name: '@babel/helper-hoist-variables' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==, tarball: http://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz} + name: '@babel/helper-member-expression-to-functions' + version: 7.23.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + registry.npmmirror.com/@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, tarball: http://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz} + name: '@babel/helper-module-imports' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, tarball: http://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} + id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 + name: '@babel/helper-module-transforms' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + + registry.npmmirror.com/@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==, tarball: http://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz} + name: '@babel/helper-optimise-call-expression' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, tarball: http://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz} + name: '@babel/helper-plugin-utils' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==, tarball: http://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz} + id: registry.npmmirror.com/@babel/helper-remap-async-to-generator/7.22.20 + name: '@babel/helper-remap-async-to-generator' + version: 7.22.20 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.22.5 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-wrap-function': registry.npmmirror.com/@babel/helper-wrap-function@7.22.20 + dev: true + + registry.npmmirror.com/@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==, tarball: http://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz} + id: registry.npmmirror.com/@babel/helper-replace-supers/7.22.20 + name: '@babel/helper-replace-supers' + version: 7.22.20 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-member-expression-to-functions': registry.npmmirror.com/@babel/helper-member-expression-to-functions@7.23.0 + '@babel/helper-optimise-call-expression': registry.npmmirror.com/@babel/helper-optimise-call-expression@7.22.5 + dev: true + + registry.npmmirror.com/@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, tarball: http://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz} + name: '@babel/helper-simple-access' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==, tarball: http://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz} + name: '@babel/helper-skip-transparent-expression-wrappers' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, tarball: http://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.22.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, tarball: http://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz} + name: '@babel/helper-string-parser' + version: 7.23.4 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, tarball: http://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz} + name: '@babel/helper-validator-identifier' + version: 7.22.20 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==, tarball: http://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz} + name: '@babel/helper-validator-option' + version: 7.23.5 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==, tarball: http://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz} + name: '@babel/helper-wrap-function' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/template': registry.npmmirror.com/@babel/template@7.23.9 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + dev: true + + registry.npmmirror.com/@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==, tarball: http://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.9.tgz} + name: '@babel/helpers' + version: 7.23.9 + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.23.9 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.9 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==, tarball: http://registry.npmmirror.com/@babel/highlight/-/highlight-7.22.20.tgz} + name: '@babel/highlight' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + chalk: registry.npmmirror.com/chalk@2.4.2 + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + + registry.npmmirror.com/@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, tarball: http://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz} + name: '@babel/highlight' + version: 7.23.4 + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + chalk: registry.npmmirror.com/chalk@2.4.2 + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + + registry.npmmirror.com/@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==, tarball: http://registry.npmmirror.com/@babel/parser/-/parser-7.23.9.tgz} + name: '@babel/parser' + version: 7.23.9 + engines: {node: '>=6.0.0'} + hasBin: true + requiresBuild: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==, tarball: http://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.23.3 + name: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==, tarball: http://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.23.3 + name: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.22.5 + '@babel/plugin-transform-optional-chaining': registry.npmmirror.com/@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==, tarball: http://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz} + id: registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/7.23.7 + name: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly' + version: 7.23.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, tarball: http://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz} + id: registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2 + name: '@babel/plugin-proposal-private-property-in-object' + version: 7.21.0-placeholder-for-preset-env.2 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4 + name: '@babel/plugin-syntax-async-generators' + version: 7.8.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13 + name: '@babel/plugin-syntax-class-properties' + version: 7.12.13 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-static-block/7.14.5 + name: '@babel/plugin-syntax-class-static-block' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/7.8.3 + name: '@babel/plugin-syntax-dynamic-import' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/7.8.3 + name: '@babel/plugin-syntax-export-namespace-from' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-assertions/7.23.3 + name: '@babel/plugin-syntax-import-assertions' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-attributes/7.23.3 + name: '@babel/plugin-syntax-import-attributes' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4 + name: '@babel/plugin-syntax-import-meta' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3 + name: '@babel/plugin-syntax-json-strings' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 + name: '@babel/plugin-syntax-logical-assignment-operators' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 + name: '@babel/plugin-syntax-nullish-coalescing-operator' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4 + name: '@babel/plugin-syntax-numeric-separator' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3 + name: '@babel/plugin-syntax-object-rest-spread' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 + name: '@babel/plugin-syntax-optional-catch-binding' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3 + name: '@babel/plugin-syntax-optional-chaining' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/7.14.5 + name: '@babel/plugin-syntax-private-property-in-object' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5 + name: '@babel/plugin-syntax-top-level-await' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/7.18.6 + name: '@babel/plugin-syntax-unicode-sets-regex' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-arrow-functions/7.23.3 + name: '@babel/plugin-transform-arrow-functions' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/7.23.9 + name: '@babel/plugin-transform-async-generator-functions' + version: 7.23.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-remap-async-to-generator': registry.npmmirror.com/@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-async-to-generator/7.23.3 + name: '@babel/plugin-transform-async-to-generator' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-remap-async-to-generator': registry.npmmirror.com/@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/7.23.3 + name: '@babel/plugin-transform-block-scoped-functions' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-block-scoping/7.23.4 + name: '@babel/plugin-transform-block-scoping' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-class-properties/7.23.3 + name: '@babel/plugin-transform-class-properties' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-class-static-block/7.23.4 + name: '@babel/plugin-transform-class-static-block' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-class-static-block': registry.npmmirror.com/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): + resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-classes/7.23.8 + name: '@babel/plugin-transform-classes' + version: 7.23.8 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.22.5 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9) + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + globals: registry.npmmirror.com/globals@11.12.0 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-computed-properties/7.23.3 + name: '@babel/plugin-transform-computed-properties' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/template': registry.npmmirror.com/@babel/template@7.23.9 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-destructuring/7.23.3 + name: '@babel/plugin-transform-destructuring' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-dotall-regex/7.23.3 + name: '@babel/plugin-transform-dotall-regex' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/7.23.3 + name: '@babel/plugin-transform-duplicate-keys' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-dynamic-import/7.23.4 + name: '@babel/plugin-transform-dynamic-import' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-dynamic-import': registry.npmmirror.com/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/7.23.3 + name: '@babel/plugin-transform-exponentiation-operator' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-builder-binary-assignment-operator-visitor': registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor@7.22.15 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/7.23.4 + name: '@babel/plugin-transform-export-namespace-from' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-export-namespace-from': registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-for-of/7.23.6 + name: '@babel/plugin-transform-for-of' + version: 7.23.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-function-name/7.23.3 + name: '@babel/plugin-transform-function-name' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-json-strings/7.23.4 + name: '@babel/plugin-transform-json-strings' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-literals/7.23.3 + name: '@babel/plugin-transform-literals' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/7.23.4 + name: '@babel/plugin-transform-logical-assignment-operators' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/7.23.3 + name: '@babel/plugin-transform-member-expression-literals' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-amd/7.23.3 + name: '@babel/plugin-transform-modules-amd' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.23.3 + name: '@babel/plugin-transform-modules-commonjs' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/7.23.9 + name: '@babel/plugin-transform-modules-systemjs' + version: 7.23.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-umd/7.23.3 + name: '@babel/plugin-transform-modules-umd' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/7.22.5 + name: '@babel/plugin-transform-named-capturing-groups-regex' + version: 7.22.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-new-target/7.23.3 + name: '@babel/plugin-transform-new-target' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/7.23.4 + name: '@babel/plugin-transform-nullish-coalescing-operator' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-numeric-separator/7.23.4 + name: '@babel/plugin-transform-numeric-separator' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/7.23.4 + name: '@babel/plugin-transform-object-rest-spread' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.5 + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': registry.npmmirror.com/@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-object-super/7.23.3 + name: '@babel/plugin-transform-object-super' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-replace-supers': registry.npmmirror.com/@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/7.23.4 + name: '@babel/plugin-transform-optional-catch-binding' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-optional-chaining/7.23.4 + name: '@babel/plugin-transform-optional-chaining' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.22.5 + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-parameters/7.23.3 + name: '@babel/plugin-transform-parameters' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-private-methods/7.23.3 + name: '@babel/plugin-transform-private-methods' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/7.23.4 + name: '@babel/plugin-transform-private-property-in-object' + version: 7.23.4 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure@7.22.5 + '@babel/helper-create-class-features-plugin': registry.npmmirror.com/@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/plugin-syntax-private-property-in-object': registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9) + dev: true + + registry.npmmirror.com/@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-property-literals/7.23.3 + name: '@babel/plugin-transform-property-literals' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-regenerator/7.23.3 + name: '@babel/plugin-transform-regenerator' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + regenerator-transform: registry.npmmirror.com/regenerator-transform@0.15.2 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-reserved-words/7.23.3 + name: '@babel/plugin-transform-reserved-words' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/7.23.3 + name: '@babel/plugin-transform-shorthand-properties' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-spread/7.23.3 + name: '@babel/plugin-transform-spread' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-sticky-regex/7.23.3 + name: '@babel/plugin-transform-sticky-regex' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-template-literals/7.23.3 + name: '@babel/plugin-transform-template-literals' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/7.23.3 + name: '@babel/plugin-transform-typeof-symbol' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/7.23.3 + name: '@babel/plugin-transform-unicode-escapes' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/7.23.3 + name: '@babel/plugin-transform-unicode-property-regex' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-unicode-regex/7.23.3 + name: '@babel/plugin-transform-unicode-regex' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==, tarball: http://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/7.23.3 + name: '@babel/plugin-transform-unicode-sets-regex' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-create-regexp-features-plugin': registry.npmmirror.com/@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: true + + registry.npmmirror.com/@babel/preset-env@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==, tarball: http://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.23.9.tgz} + id: registry.npmmirror.com/@babel/preset-env/7.23.9 + name: '@babel/preset-env' + version: 7.23.9 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.5 + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.23.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9) + '@babel/plugin-proposal-private-property-in-object': registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-class-static-block': registry.npmmirror.com/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-dynamic-import': registry.npmmirror.com/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-export-namespace-from': registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-assertions': registry.npmmirror.com/@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-attributes': registry.npmmirror.com/@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-private-property-in-object': registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-unicode-sets-regex': registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9) + '@babel/plugin-transform-arrow-functions': registry.npmmirror.com/@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-generator-functions': registry.npmmirror.com/@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-async-to-generator': registry.npmmirror.com/@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoped-functions': registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoping': registry.npmmirror.com/@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': registry.npmmirror.com/@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-static-block': registry.npmmirror.com/@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-classes': registry.npmmirror.com/@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9) + '@babel/plugin-transform-computed-properties': registry.npmmirror.com/@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-destructuring': registry.npmmirror.com/@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dotall-regex': registry.npmmirror.com/@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-duplicate-keys': registry.npmmirror.com/@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dynamic-import': registry.npmmirror.com/@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-exponentiation-operator': registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-export-namespace-from': registry.npmmirror.com/@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-for-of': registry.npmmirror.com/@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9) + '@babel/plugin-transform-function-name': registry.npmmirror.com/@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-json-strings': registry.npmmirror.com/@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-literals': registry.npmmirror.com/@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-member-expression-literals': registry.npmmirror.com/@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-amd': registry.npmmirror.com/@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-systemjs': registry.npmmirror.com/@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-modules-umd': registry.npmmirror.com/@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-named-capturing-groups-regex': registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-new-target': registry.npmmirror.com/@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-numeric-separator': registry.npmmirror.com/@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-rest-spread': registry.npmmirror.com/@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-super': registry.npmmirror.com/@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-catch-binding': registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': registry.npmmirror.com/@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': registry.npmmirror.com/@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': registry.npmmirror.com/@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-property-in-object': registry.npmmirror.com/@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-property-literals': registry.npmmirror.com/@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-regenerator': registry.npmmirror.com/@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-reserved-words': registry.npmmirror.com/@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-shorthand-properties': registry.npmmirror.com/@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-spread': registry.npmmirror.com/@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-sticky-regex': registry.npmmirror.com/@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-template-literals': registry.npmmirror.com/@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typeof-symbol': registry.npmmirror.com/@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-escapes': registry.npmmirror.com/@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-property-regex': registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-regex': registry.npmmirror.com/@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-sets-regex': registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9) + '@babel/preset-modules': registry.npmmirror.com/@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9) + babel-plugin-polyfill-corejs2: registry.npmmirror.com/babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9) + babel-plugin-polyfill-corejs3: registry.npmmirror.com/babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9) + babel-plugin-polyfill-regenerator: registry.npmmirror.com/babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9) + core-js-compat: registry.npmmirror.com/core-js-compat@3.35.1 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, tarball: http://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz} + id: registry.npmmirror.com/@babel/preset-modules/0.1.6-no-external-plugins + name: '@babel/preset-modules' + version: 0.1.6-no-external-plugins + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + esutils: registry.npmmirror.com/esutils@2.0.3 + dev: true + + registry.npmmirror.com/@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, tarball: http://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz} + name: '@babel/regjsgen' + version: 0.8.0 + dev: true + + registry.npmmirror.com/@babel/runtime@7.23.9: + resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==, tarball: http://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.9.tgz} + name: '@babel/runtime' + version: 7.23.9 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.1 + dev: true + + registry.npmmirror.com/@babel/standalone@7.23.10: + resolution: {integrity: sha512-xqWviI/pt1Zb/d+6ilWa5IDL2mkDzsBnlHbreqnfyP3/QB/ofQ1bNVcHj8YQX154Rf/xZKR6y0s1ydVF3nAS8g==, tarball: http://registry.npmmirror.com/@babel/standalone/-/standalone-7.23.10.tgz} + name: '@babel/standalone' + version: 7.23.10 + engines: {node: '>=6.9.0'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==, tarball: http://registry.npmmirror.com/@babel/template/-/template-7.23.9.tgz} + name: '@babel/template' + version: 7.23.9 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.5 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.9 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + + registry.npmmirror.com/@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==, tarball: http://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.9.tgz} + name: '@babel/traverse' + version: 7.23.9 + engines: {node: '>=6.9.0'} + requiresBuild: true + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.5 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.9 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + debug: registry.npmmirror.com/debug@4.3.4 + globals: registry.npmmirror.com/globals@11.12.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/@babel/types@7.23.3: + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==, tarball: http://registry.npmmirror.com/@babel/types/-/types-7.23.3.tgz} + name: '@babel/types' + version: 7.23.3 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser@7.23.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + to-fast-properties: registry.npmmirror.com/to-fast-properties@2.0.0 + dev: true + + registry.npmmirror.com/@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==, tarball: http://registry.npmmirror.com/@babel/types/-/types-7.23.9.tgz} + name: '@babel/types' + version: 7.23.9 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser@7.23.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + to-fast-properties: 2.0.0 + + registry.npmmirror.com/@codemirror/state@6.4.0: + resolution: {integrity: sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==, tarball: http://registry.npmmirror.com/@codemirror/state/-/state-6.4.0.tgz} + name: '@codemirror/state' + version: 6.4.0 + dev: false + + registry.npmmirror.com/@codemirror/view@6.23.1: + resolution: {integrity: sha512-J2Xnn5lFYT1ZN/5ewEoMBCmLlL71lZ3mBdb7cUEuHhX2ESoSrNEucpsDXpX22EuTGm9LOgC9v4Z0wx+Ez8QmGA==, tarball: http://registry.npmmirror.com/@codemirror/view/-/view-6.23.1.tgz} + name: '@codemirror/view' + version: 6.23.1 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.4.0 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + w3c-keyname: registry.npmmirror.com/w3c-keyname@2.2.8 + dev: false + + registry.npmmirror.com/@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, tarball: http://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz} + name: '@colors/colors' + version: 1.5.0 + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@css-render/vue3-ssr@0.15.12(vue@3.2.47): + resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==, tarball: http://registry.npmmirror.com/@css-render/vue3-ssr/-/vue3-ssr-0.15.12.tgz} + id: registry.npmmirror.com/@css-render/vue3-ssr/0.15.12 + name: '@css-render/vue3-ssr' + version: 0.15.12 + peerDependencies: + vue: ^3.0.11 + dependencies: + vue: 3.2.47 + dev: false + + registry.npmmirror.com/@dqbd/tiktoken@1.0.7: + resolution: {integrity: sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==, tarball: http://registry.npmmirror.com/@dqbd/tiktoken/-/tiktoken-1.0.7.tgz} + name: '@dqbd/tiktoken' + version: 1.0.7 + dev: false + + registry.npmmirror.com/@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, tarball: http://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz} + name: '@emotion/hash' + version: 0.8.0 + dev: false + + registry.npmmirror.com/@esbuild/android-arm64@0.17.18: + resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==, tarball: http://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz} + name: '@esbuild/android-arm64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.17.18: + resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==, tarball: http://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.18.tgz} + name: '@esbuild/android-arm' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.17.18: + resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==, tarball: http://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.18.tgz} + name: '@esbuild/android-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.18: + resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==, tarball: http://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz} + name: '@esbuild/darwin-arm64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.17.18: + resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==, tarball: http://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz} + name: '@esbuild/darwin-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.18: + resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==, tarball: http://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.18: + resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==, tarball: http://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz} + name: '@esbuild/freebsd-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.17.18: + resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==, tarball: http://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz} + name: '@esbuild/linux-arm64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.17.18: + resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==, tarball: http://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz} + name: '@esbuild/linux-arm' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.17.18: + resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==, tarball: http://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz} + name: '@esbuild/linux-ia32' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, tarball: http://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} + name: '@esbuild/linux-loong64' + version: 0.14.54 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.17.18: + resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==, tarball: http://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz} + name: '@esbuild/linux-loong64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.18: + resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==, tarball: http://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz} + name: '@esbuild/linux-mips64el' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.18: + resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==, tarball: http://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz} + name: '@esbuild/linux-ppc64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.18: + resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==, tarball: http://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz} + name: '@esbuild/linux-riscv64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.17.18: + resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==, tarball: http://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz} + name: '@esbuild/linux-s390x' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.17.18: + resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==, tarball: http://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz} + name: '@esbuild/linux-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.18: + resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==, tarball: http://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz} + name: '@esbuild/netbsd-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.18: + resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==, tarball: http://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz} + name: '@esbuild/openbsd-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.17.18: + resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==, tarball: http://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz} + name: '@esbuild/sunos-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.17.18: + resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==, tarball: http://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz} + name: '@esbuild/win32-arm64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.17.18: + resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==, tarball: http://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz} + name: '@esbuild/win32-ia32' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.17.18: + resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==, tarball: http://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz} + name: '@esbuild/win32-x64' + version: 0.17.18 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.3 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.22 + + registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, tarball: http://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.1 + engines: {node: '>=6.0.0'} + requiresBuild: true + + registry.npmmirror.com/@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, tarball: http://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + requiresBuild: true + + registry.npmmirror.com/@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==, tarball: http://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz} + name: '@jridgewell/source-map' + version: 0.3.5 + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.22 + dev: true + + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, tarball: http://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.15 + requiresBuild: true + + registry.npmmirror.com/@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==, tarball: http://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.22 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + + registry.npmmirror.com/@juggle/resize-observer@3.4.0: + resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==, tarball: http://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz} + name: '@juggle/resize-observer' + version: 3.4.0 + dev: false + + registry.npmmirror.com/@lezer/common@1.2.1: + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==, tarball: http://registry.npmmirror.com/@lezer/common/-/common-1.2.1.tgz} + name: '@lezer/common' + version: 1.2.1 + dev: false + + registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2: + resolution: {integrity: sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==, tarball: http://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz} + name: '@msgpackr-extract/msgpackr-extract-darwin-arm64' + version: 3.0.2 + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2: + resolution: {integrity: sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==, tarball: http://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz} + name: '@msgpackr-extract/msgpackr-extract-darwin-x64' + version: 3.0.2 + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2: + resolution: {integrity: sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==, tarball: http://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz} + name: '@msgpackr-extract/msgpackr-extract-linux-arm64' + version: 3.0.2 + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2: + resolution: {integrity: sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==, tarball: http://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz} + name: '@msgpackr-extract/msgpackr-extract-linux-arm' + version: 3.0.2 + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2: + resolution: {integrity: sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==, tarball: http://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz} + name: '@msgpackr-extract/msgpackr-extract-linux-x64' + version: 3.0.2 + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2: + resolution: {integrity: sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==, tarball: http://registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz} + name: '@msgpackr-extract/msgpackr-extract-win32-x64' + version: 3.0.2 + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: http://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + dev: false + optional: true + + registry.npmmirror.com/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, tarball: http://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: http://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmmirror.com/fastq@1.17.0 + dev: false + optional: true + + registry.npmmirror.com/@nuxt/kit@3.10.0(rollup@2.79.1): + resolution: {integrity: sha512-SNyZqk57kyEvTdFSYhQCYFCwT/EQO13O9SWtY2ULscdhXd2C5D0SQW9E7OM7O/31Fa+KQ9RnSTA8DnwaOFne2g==, tarball: http://registry.npmmirror.com/@nuxt/kit/-/kit-3.10.0.tgz} + id: registry.npmmirror.com/@nuxt/kit/3.10.0 + name: '@nuxt/kit' + version: 3.10.0 + engines: {node: ^14.18.0 || >=16.10.0} + requiresBuild: true + dependencies: + '@nuxt/schema': registry.npmmirror.com/@nuxt/schema@3.10.0(rollup@2.79.1) + c12: registry.npmmirror.com/c12@1.6.1 + consola: 3.2.3 + defu: registry.npmmirror.com/defu@6.1.4 + globby: registry.npmmirror.com/globby@14.0.0 + hash-sum: 2.0.0 + ignore: registry.npmmirror.com/ignore@5.3.1 + jiti: 1.21.0 + knitwork: 1.0.0 + mlly: registry.npmmirror.com/mlly@1.5.0 + pathe: registry.npmmirror.com/pathe@1.1.2 + pkg-types: 1.0.3 + scule: registry.npmmirror.com/scule@1.2.0 + semver: 7.5.4 + ufo: 1.3.2 + unctx: 2.3.1 + unimport: registry.npmmirror.com/unimport@3.7.1(rollup@2.79.1) + untyped: registry.npmmirror.com/untyped@1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: false + optional: true + + registry.npmmirror.com/@nuxt/schema@3.10.0(rollup@2.79.1): + resolution: {integrity: sha512-XwxyoW1DFMpHsoF3LHvwd2e2JFy9bTBfTo2/gH2RH9tU2W3I56A9uPRBftFXTNEDBrO2whYOFsRgjVOmM0ZZHg==, tarball: http://registry.npmmirror.com/@nuxt/schema/-/schema-3.10.0.tgz} + id: registry.npmmirror.com/@nuxt/schema/3.10.0 + name: '@nuxt/schema' + version: 3.10.0 + engines: {node: ^14.18.0 || >=16.10.0} + requiresBuild: true + dependencies: + '@nuxt/ui-templates': registry.npmmirror.com/@nuxt/ui-templates@1.3.1 + consola: registry.npmmirror.com/consola@3.2.3 + defu: registry.npmmirror.com/defu@6.1.4 + hookable: registry.npmmirror.com/hookable@5.5.3 + pathe: registry.npmmirror.com/pathe@1.1.2 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + scule: registry.npmmirror.com/scule@1.2.0 + std-env: registry.npmmirror.com/std-env@3.7.0 + ufo: registry.npmmirror.com/ufo@1.3.2 + unimport: registry.npmmirror.com/unimport@3.7.1(rollup@2.79.1) + untyped: registry.npmmirror.com/untyped@1.4.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: false + optional: true + + registry.npmmirror.com/@nuxt/ui-templates@1.3.1: + resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==, tarball: http://registry.npmmirror.com/@nuxt/ui-templates/-/ui-templates-1.3.1.tgz} + name: '@nuxt/ui-templates' + version: 1.3.1 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: http://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} + name: '@pkgjs/parseargs' + version: 0.11.0 + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/plugin-babel@5.3.1(@babel/core@7.23.9)(rollup@2.79.1): + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==, tarball: http://registry.npmmirror.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz} + id: registry.npmmirror.com/@rollup/plugin-babel/5.3.1 + name: '@rollup/plugin-babel' + version: 5.3.1 + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==, tarball: http://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz} + id: registry.npmmirror.com/@rollup/plugin-node-resolve/11.2.1 + name: '@rollup/plugin-node-resolve' + version: 11.2.1 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + '@types/resolve': registry.npmmirror.com/@types/resolve@1.17.1 + builtin-modules: registry.npmmirror.com/builtin-modules@3.3.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + is-module: registry.npmmirror.com/is-module@1.0.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/plugin-replace@2.4.2(rollup@2.79.1): + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==, tarball: http://registry.npmmirror.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz} + id: registry.npmmirror.com/@rollup/plugin-replace/2.4.2 + name: '@rollup/plugin-replace' + version: 2.4.2 + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1) + magic-string: registry.npmmirror.com/magic-string@0.25.9 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@2.79.1): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, tarball: http://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/3.1.0 + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@0.0.39 + estree-walker: registry.npmmirror.com/estree-walker@1.0.1 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: true + + registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@2.79.1): + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==, tarball: http://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/5.1.0 + name: '@rollup/pluginutils' + version: 5.1.0 + engines: {node: '>=14.0.0'} + requiresBuild: true + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@2.79.1 + dev: false + optional: true + + registry.npmmirror.com/@sindresorhus/merge-streams@1.0.0: + resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==, tarball: http://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz} + name: '@sindresorhus/merge-streams' + version: 1.0.0 + engines: {node: '>=18'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@surma/rollup-plugin-off-main-thread@2.2.3: + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==, tarball: http://registry.npmmirror.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz} + name: '@surma/rollup-plugin-off-main-thread' + version: 2.2.3 + dependencies: + ejs: registry.npmmirror.com/ejs@3.1.9 + json5: registry.npmmirror.com/json5@2.2.3 + magic-string: registry.npmmirror.com/magic-string@0.25.9 + string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.10 + dev: true + + registry.npmmirror.com/@sxzz/popperjs-es@2.11.7: + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==, tarball: http://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz} + name: '@sxzz/popperjs-es' + version: 2.11.7 + dev: false + + registry.npmmirror.com/@types/ejs@3.1.5: + resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==, tarball: http://registry.npmmirror.com/@types/ejs/-/ejs-3.1.5.tgz} + name: '@types/ejs' + version: 3.1.5 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, tarball: http://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} + name: '@types/eslint-scope' + version: 3.7.7 + dependencies: + '@types/eslint': registry.npmmirror.com/@types/eslint@8.56.2 + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: true + + registry.npmmirror.com/@types/eslint@8.56.2: + resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==, tarball: http://registry.npmmirror.com/@types/eslint/-/eslint-8.56.2.tgz} + name: '@types/eslint' + version: 8.56.2 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + dev: true + + registry.npmmirror.com/@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, tarball: http://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: true + + registry.npmmirror.com/@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, tarball: http://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz} + name: '@types/estree' + version: 1.0.5 + + registry.npmmirror.com/@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, tarball: http://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz} + name: '@types/json-schema' + version: 7.0.15 + dev: true + + registry.npmmirror.com/@types/katex@0.16.7: + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==, tarball: http://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz} + name: '@types/katex' + version: 0.16.7 + dev: false + + registry.npmmirror.com/@types/lodash-es@4.17.12: + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==, tarball: http://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz} + name: '@types/lodash-es' + version: 4.17.12 + dependencies: + '@types/lodash': registry.npmmirror.com/@types/lodash@4.14.202 + dev: false + + registry.npmmirror.com/@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==, tarball: http://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz} + name: '@types/lodash' + version: 4.14.202 + dev: false + + registry.npmmirror.com/@types/node@18.19.14: + resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==, tarball: http://registry.npmmirror.com/@types/node/-/node-18.19.14.tgz} + name: '@types/node' + version: 18.19.14 + dependencies: + undici-types: registry.npmmirror.com/undici-types@5.26.5 + dev: true + + registry.npmmirror.com/@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, tarball: http://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz} + name: '@types/normalize-package-data' + version: 2.4.1 + dev: false + + registry.npmmirror.com/@types/pug@2.0.6: + resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==, tarball: http://registry.npmmirror.com/@types/pug/-/pug-2.0.6.tgz} + name: '@types/pug' + version: 2.0.6 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, tarball: http://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz} + name: '@types/resolve' + version: 1.17.1 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.19.14 + dev: true + + registry.npmmirror.com/@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, tarball: http://registry.npmmirror.com/@types/trusted-types/-/trusted-types-2.0.7.tgz} + name: '@types/trusted-types' + version: 2.0.7 + dev: true + + registry.npmmirror.com/@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==, tarball: http://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.3.tgz} + name: '@types/yauzl' + version: 2.10.3 + requiresBuild: true + dependencies: + '@types/node': 18.16.3 + optional: true + + registry.npmmirror.com/@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==, tarball: http://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz} + name: '@webassemblyjs/ast' + version: 1.11.6 + dependencies: + '@webassemblyjs/helper-numbers': registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, tarball: http://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz} + name: '@webassemblyjs/floating-point-hex-parser' + version: 1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, tarball: http://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz} + name: '@webassemblyjs/helper-api-error' + version: 1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==, tarball: http://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz} + name: '@webassemblyjs/helper-buffer' + version: 1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, tarball: http://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz} + name: '@webassemblyjs/helper-numbers' + version: 1.11.6 + dependencies: + '@webassemblyjs/floating-point-hex-parser': registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6 + '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: true + + registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, tarball: http://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz} + name: '@webassemblyjs/helper-wasm-bytecode' + version: 1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==, tarball: http://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz} + name: '@webassemblyjs/helper-wasm-section' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, tarball: http://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz} + name: '@webassemblyjs/ieee754' + version: 1.11.6 + dependencies: + '@xtuc/ieee754': registry.npmmirror.com/@xtuc/ieee754@1.2.0 + dev: true + + registry.npmmirror.com/@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, tarball: http://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz} + name: '@webassemblyjs/leb128' + version: 1.11.6 + dependencies: + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: true + + registry.npmmirror.com/@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, tarball: http://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz} + name: '@webassemblyjs/utf8' + version: 1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==, tarball: http://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz} + name: '@webassemblyjs/wasm-edit' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/helper-wasm-section': registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + '@webassemblyjs/wasm-opt': registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + '@webassemblyjs/wast-printer': registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==, tarball: http://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz} + name: '@webassemblyjs/wasm-gen' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 + '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 + '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==, tarball: http://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz} + name: '@webassemblyjs/wasm-opt' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==, tarball: http://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz} + name: '@webassemblyjs/wasm-parser' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 + '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 + '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 + dev: true + + registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==, tarball: http://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz} + name: '@webassemblyjs/wast-printer' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: true + + registry.npmmirror.com/@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, tarball: http://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + name: '@xtuc/ieee754' + version: 1.2.0 + dev: true + + registry.npmmirror.com/@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, tarball: http://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz} + name: '@xtuc/long' + version: 4.2.2 + dev: true + + registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==, tarball: http://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz} + id: registry.npmmirror.com/acorn-import-assertions/1.9.0 + name: acorn-import-assertions + version: 1.9.0 + peerDependencies: + acorn: ^8 + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.3 + dev: true + + registry.npmmirror.com/acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, tarball: http://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + requiresBuild: true + dev: false + + registry.npmmirror.com/acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==, tarball: http://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz} + name: acorn + version: 8.11.3 + engines: {node: '>=0.4.0'} + hasBin: true + + registry.npmmirror.com/ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, tarball: http://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz} + id: registry.npmmirror.com/ajv-formats/2.1.1 + name: ajv-formats + version: 2.1.1 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: registry.npmmirror.com/ajv@8.12.0 + dev: false + + registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, tarball: http://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + id: registry.npmmirror.com/ajv-keywords/3.5.2 + name: ajv-keywords + version: 3.5.2 + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: registry.npmmirror.com/ajv@6.12.6 + dev: true + + registry.npmmirror.com/ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, tarball: http://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: true + + registry.npmmirror.com/ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, tarball: http://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} + name: ajv + version: 8.12.0 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@1.0.0 + require-from-string: registry.npmmirror.com/require-from-string@2.0.2 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + + registry.npmmirror.com/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: http://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + + registry.npmmirror.com/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@2.0.1 + dev: true + + registry.npmmirror.com/ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz} + name: ansi-styles + version: 6.2.1 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: http://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + name: anymatch + version: 3.1.3 + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + optional: true + + registry.npmmirror.com/array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, tarball: http://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz} + name: array-buffer-byte-length + version: 1.0.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.4 + dev: true + + registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, tarball: http://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz} + name: arraybuffer.prototype.slice + version: 1.0.2 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.1 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + dev: true + + registry.npmmirror.com/at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, tarball: http://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz} + name: at-least-node + version: 1.0.0 + engines: {node: '>= 4.0.0'} + dev: true + + registry.npmmirror.com/atomically@2.0.1: + resolution: {integrity: sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==, tarball: http://registry.npmmirror.com/atomically/-/atomically-2.0.1.tgz} + name: atomically + version: 2.0.1 + dependencies: + stubborn-fs: registry.npmmirror.com/stubborn-fs@1.2.4 + when-exit: registry.npmmirror.com/when-exit@2.1.0 + dev: false + + registry.npmmirror.com/available-typed-arrays@1.0.6: + resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==, tarball: http://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz} + name: available-typed-arrays + version: 1.0.6 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): + resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==, tarball: http://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz} + id: registry.npmmirror.com/babel-plugin-polyfill-corejs2/0.4.8 + name: babel-plugin-polyfill-corejs2 + version: 0.4.8 + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.5 + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9) + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): + resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==, tarball: http://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz} + id: registry.npmmirror.com/babel-plugin-polyfill-corejs3/0.9.0 + name: babel-plugin-polyfill-corejs3 + version: 0.9.0 + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9) + core-js-compat: registry.npmmirror.com/core-js-compat@3.35.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): + resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==, tarball: http://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz} + id: registry.npmmirror.com/babel-plugin-polyfill-regenerator/0.5.5 + name: babel-plugin-polyfill-regenerator + version: 0.5.5 + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/helper-define-polyfill-provider': registry.npmmirror.com/@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: http://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: true + + registry.npmmirror.com/binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, tarball: http://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + name: binary-extensions + version: 2.2.0 + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: registry.npmmirror.com/concat-map@0.0.1 + dev: true + + registry.npmmirror.com/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, tarball: http://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + requiresBuild: true + dependencies: + fill-range: registry.npmmirror.com/fill-range@7.0.1 + dev: false + optional: true + + registry.npmmirror.com/browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==, tarball: http://registry.npmmirror.com/browserslist/-/browserslist-4.22.3.tgz} + name: browserslist + version: 4.22.3 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001583 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.656 + node-releases: registry.npmmirror.com/node-releases@2.0.14 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.3) + + registry.npmmirror.com/buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, tarball: http://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + dev: true + + registry.npmmirror.com/builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, tarball: http://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz} + name: builtin-modules + version: 3.3.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/c12@1.6.1: + resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==, tarball: http://registry.npmmirror.com/c12/-/c12-1.6.1.tgz} + name: c12 + version: 1.6.1 + requiresBuild: true + dependencies: + chokidar: registry.npmmirror.com/chokidar@3.5.3 + defu: registry.npmmirror.com/defu@6.1.4 + dotenv: registry.npmmirror.com/dotenv@16.4.1 + giget: registry.npmmirror.com/giget@1.2.1 + jiti: registry.npmmirror.com/jiti@1.21.0 + mlly: registry.npmmirror.com/mlly@1.5.0 + ohash: registry.npmmirror.com/ohash@1.1.3 + pathe: registry.npmmirror.com/pathe@1.1.2 + perfect-debounce: registry.npmmirror.com/perfect-debounce@1.0.0 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + rc9: registry.npmmirror.com/rc9@2.1.1 + dev: false + optional: true + + registry.npmmirror.com/cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, tarball: http://registry.npmmirror.com/cac/-/cac-6.7.14.tgz} + name: cac + version: 6.7.14 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, tarball: http://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz} + name: call-bind + version: 1.0.5 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + set-function-length: registry.npmmirror.com/set-function-length@1.2.0 + dev: true + + registry.npmmirror.com/caniuse-lite@1.0.30001583: + resolution: {integrity: sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==, tarball: http://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz} + name: caniuse-lite + version: 1.0.30001583 + requiresBuild: true + + registry.npmmirror.com/chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, tarball: http://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@3.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + supports-color: registry.npmmirror.com/supports-color@5.5.0 + + registry.npmmirror.com/chatgpt-ai-web@1.0.0: + resolution: {integrity: sha512-AXgwlEtnlB4aqpINgWC8cnjD2KexNI6Oy9aFBjXaCBIcZIh+45NZ4rZe7oDSbpN+Sb5ghWAXVP28TBo5hyv2CA==, tarball: http://registry.npmmirror.com/chatgpt-ai-web/-/chatgpt-ai-web-1.0.0.tgz} + name: chatgpt-ai-web + version: 1.0.0 + engines: {node: '>=14'} + hasBin: true + dependencies: + '@dqbd/tiktoken': registry.npmmirror.com/@dqbd/tiktoken@1.0.7 + cac: registry.npmmirror.com/cac@6.7.14 + conf: registry.npmmirror.com/conf@11.0.1 + eventsource-parser: registry.npmmirror.com/eventsource-parser@1.0.0 + keyv: registry.npmmirror.com/keyv@4.5.2 + p-timeout: registry.npmmirror.com/p-timeout@6.1.2 + quick-lru: registry.npmmirror.com/quick-lru@6.1.1 + read-pkg-up: registry.npmmirror.com/read-pkg-up@9.1.0 + uuid: registry.npmmirror.com/uuid@9.0.0 + dev: false + + registry.npmmirror.com/chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, tarball: http://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + requiresBuild: true + dependencies: + anymatch: registry.npmmirror.com/anymatch@3.1.3 + braces: registry.npmmirror.com/braces@3.0.2 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path@2.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + readdirp: registry.npmmirror.com/readdirp@3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + optional: true + + registry.npmmirror.com/chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, tarball: http://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz} + name: chownr + version: 2.0.0 + engines: {node: '>=10'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, tarball: http://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} + name: chrome-trace-event + version: 1.0.3 + engines: {node: '>=6.0'} + dev: true + + registry.npmmirror.com/citty@0.1.5: + resolution: {integrity: sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ==, tarball: http://registry.npmmirror.com/citty/-/citty-0.1.5.tgz} + name: citty + version: 0.1.5 + requiresBuild: true + dependencies: + consola: registry.npmmirror.com/consola@3.2.3 + dev: false + optional: true + + registry.npmmirror.com/color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, tarball: http://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + + registry.npmmirror.com/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: http://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + dev: true + + registry.npmmirror.com/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmmirror.com/commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, tarball: http://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + dev: true + + registry.npmmirror.com/common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, tarball: http://registry.npmmirror.com/common-tags/-/common-tags-1.8.2.tgz} + name: common-tags + version: 1.8.2 + engines: {node: '>=4.0.0'} + dev: true + + registry.npmmirror.com/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: http://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: true + + registry.npmmirror.com/conf@11.0.1: + resolution: {integrity: sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==, tarball: http://registry.npmmirror.com/conf/-/conf-11.0.1.tgz} + name: conf + version: 11.0.1 + engines: {node: '>=14.16'} + dependencies: + ajv: registry.npmmirror.com/ajv@8.12.0 + ajv-formats: registry.npmmirror.com/ajv-formats@2.1.1(ajv@8.12.0) + atomically: registry.npmmirror.com/atomically@2.0.1 + debounce-fn: registry.npmmirror.com/debounce-fn@5.1.2 + dot-prop: registry.npmmirror.com/dot-prop@7.2.0 + env-paths: registry.npmmirror.com/env-paths@3.0.0 + json-schema-typed: registry.npmmirror.com/json-schema-typed@8.0.1 + semver: registry.npmmirror.com/semver@7.5.4 + dev: false + + registry.npmmirror.com/consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==, tarball: http://registry.npmmirror.com/consola/-/consola-3.2.3.tgz} + name: consola + version: 3.2.3 + engines: {node: ^14.18.0 || >=16.10.0} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, tarball: http://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} + name: convert-source-map + version: 2.0.0 + requiresBuild: true + + registry.npmmirror.com/core-js-compat@3.35.1: + resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==, tarball: http://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.35.1.tgz} + name: core-js-compat + version: 3.35.1 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.3 + dev: true + + registry.npmmirror.com/cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, tarball: http://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + path-key: registry.npmmirror.com/path-key@3.1.1 + shebang-command: registry.npmmirror.com/shebang-command@2.0.0 + which: registry.npmmirror.com/which@2.0.2 + dev: false + optional: true + + registry.npmmirror.com/crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, tarball: http://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz} + name: crypto-random-string + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/css-render@0.15.12: + resolution: {integrity: sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw==, tarball: http://registry.npmmirror.com/css-render/-/css-render-0.15.12.tgz} + name: css-render + version: 0.15.12 + dependencies: + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.8.0 + csstype: registry.npmmirror.com/csstype@3.0.11 + dev: false + + registry.npmmirror.com/csstype@3.0.11: + resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==, tarball: http://registry.npmmirror.com/csstype/-/csstype-3.0.11.tgz} + name: csstype + version: 3.0.11 + dev: false + + registry.npmmirror.com/csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, tarball: http://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz} + name: csstype + version: 3.1.3 + dev: false + + registry.npmmirror.com/date-fns-tz@2.0.0(date-fns@2.30.0): + resolution: {integrity: sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==, tarball: http://registry.npmmirror.com/date-fns-tz/-/date-fns-tz-2.0.0.tgz} + id: registry.npmmirror.com/date-fns-tz/2.0.0 + name: date-fns-tz + version: 2.0.0 + peerDependencies: + date-fns: '>=2.0.0' + dependencies: + date-fns: 2.30.0 + dev: false + + registry.npmmirror.com/dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, tarball: http://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} + name: dayjs + version: 1.11.10 + dev: false + + registry.npmmirror.com/debounce-fn@5.1.2: + resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==, tarball: http://registry.npmmirror.com/debounce-fn/-/debounce-fn-5.1.2.tgz} + name: debounce-fn + version: 5.1.2 + engines: {node: '>=12'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@4.0.0 + dev: false + + registry.npmmirror.com/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, tarball: http://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.2 + + registry.npmmirror.com/deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, tarball: http://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz} + name: deepmerge + version: 4.3.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, tarball: http://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz} + name: define-data-property + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: true + + registry.npmmirror.com/define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, tarball: http://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz} + name: define-properties + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + registry.npmmirror.com/defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==, tarball: http://registry.npmmirror.com/defu/-/defu-6.1.4.tgz} + name: defu + version: 6.1.4 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/destr@2.0.2: + resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==, tarball: http://registry.npmmirror.com/destr/-/destr-2.0.2.tgz} + name: destr + version: 2.0.2 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==, tarball: http://registry.npmmirror.com/dmg-license/-/dmg-license-1.0.11.tgz} + name: dmg-license + version: 1.0.11 + engines: {node: '>=8'} + os: [darwin] + hasBin: true + requiresBuild: true + dependencies: + '@types/plist': 3.0.2 + '@types/verror': 1.10.6 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.0 + dev: true + optional: true + + registry.npmmirror.com/dot-prop@7.2.0: + resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==, tarball: http://registry.npmmirror.com/dot-prop/-/dot-prop-7.2.0.tgz} + name: dot-prop + version: 7.2.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + type-fest: registry.npmmirror.com/type-fest@2.19.0 + dev: false + + registry.npmmirror.com/dotenv@16.4.1: + resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==, tarball: http://registry.npmmirror.com/dotenv/-/dotenv-16.4.1.tgz} + name: dotenv + version: 16.4.1 + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==, tarball: http://registry.npmmirror.com/ejs/-/ejs-3.1.9.tgz} + name: ejs + version: 3.1.9 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dependencies: + jake: 10.8.5 + + registry.npmmirror.com/electron-to-chromium@1.4.656: + resolution: {integrity: sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==, tarball: http://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz} + name: electron-to-chromium + version: 1.4.656 + requiresBuild: true + + registry.npmmirror.com/emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: http://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + name: emoji-regex + version: 8.0.0 + dev: true + + registry.npmmirror.com/encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, tarball: http://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} + name: encoding + version: 0.1.13 + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + dev: true + optional: true + + registry.npmmirror.com/enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, tarball: http://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz} + name: enhanced-resolve + version: 5.15.0 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + tapable: registry.npmmirror.com/tapable@2.2.1 + dev: true + + registry.npmmirror.com/env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==, tarball: http://registry.npmmirror.com/env-paths/-/env-paths-3.0.0.tgz} + name: env-paths + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, tarball: http://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} + name: errno + version: 0.1.8 + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + dev: true + optional: true + + registry.npmmirror.com/error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, tarball: http://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} + name: error-ex + version: 1.3.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.2.1 + dev: false + + registry.npmmirror.com/es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, tarball: http://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz} + name: es-abstract + version: 1.22.3 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.1 + arraybuffer.prototype.slice: registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2 + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.6 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.4 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.13 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.5 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.1.0 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.2 + string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.8 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.7 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.7 + typed-array-buffer: registry.npmmirror.com/typed-array-buffer@1.0.0 + typed-array-byte-length: registry.npmmirror.com/typed-array-byte-length@1.0.0 + typed-array-byte-offset: registry.npmmirror.com/typed-array-byte-offset@1.0.0 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.14 + dev: true + + registry.npmmirror.com/es-errors@1.0.0: + resolution: {integrity: sha512-yHV74THqMJUyFKkHyN7hyENcEZM3Dj2a2IrdClY+IT4BFQHkIVwlh8s6uZfjsFydMdNHv0F5mWgAA3ajFbsvVQ==, tarball: http://registry.npmmirror.com/es-errors/-/es-errors-1.0.0.tgz} + name: es-errors + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==, tarball: http://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz} + name: es-module-lexer + version: 1.4.1 + dev: true + + registry.npmmirror.com/es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, tarball: http://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz} + name: es-set-tostringtag + version: 2.0.2 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: true + + registry.npmmirror.com/es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, tarball: http://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + name: es-to-primitive + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: true + + registry.npmmirror.com/esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, tarball: http://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} + name: esbuild-android-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, tarball: http://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} + name: esbuild-android-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, tarball: http://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} + name: esbuild-darwin-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, tarball: http://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} + name: esbuild-darwin-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, tarball: http://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} + name: esbuild-freebsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, tarball: http://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, tarball: http://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} + name: esbuild-linux-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, tarball: http://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} + name: esbuild-linux-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, tarball: http://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} + name: esbuild-linux-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, tarball: http://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} + name: esbuild-linux-arm + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, tarball: http://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} + name: esbuild-linux-mips64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, tarball: http://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} + name: esbuild-linux-ppc64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, tarball: http://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} + name: esbuild-linux-riscv64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, tarball: http://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} + name: esbuild-linux-s390x + version: 0.14.54 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, tarball: http://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} + name: esbuild-netbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, tarball: http://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} + name: esbuild-openbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, tarball: http://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} + name: esbuild-sunos-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, tarball: http://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} + name: esbuild-windows-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, tarball: http://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} + name: esbuild-windows-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, tarball: http://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} + name: esbuild-windows-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, tarball: http://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + requiresBuild: true + + registry.npmmirror.com/escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + + registry.npmmirror.com/escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz} + name: escape-string-regexp + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} + name: escape-string-regexp + version: 5.0.0 + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, tarball: http://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse@4.3.0 + estraverse: registry.npmmirror.com/estraverse@4.3.0 + dev: true + + registry.npmmirror.com/esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, tarball: http://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: true + + registry.npmmirror.com/estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, tarball: http://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, tarball: http://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, tarball: http://registry.npmmirror.com/estree-walker/-/estree-walker-1.0.1.tgz} + name: estree-walker + version: 1.0.1 + dev: true + + registry.npmmirror.com/estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, tarball: http://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, tarball: http://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz} + name: estree-walker + version: 3.0.3 + requiresBuild: true + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + optional: true + + registry.npmmirror.com/esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, tarball: http://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, tarball: http://registry.npmmirror.com/events/-/events-3.3.0.tgz} + name: events + version: 3.3.0 + engines: {node: '>=0.8.x'} + dev: true + + registry.npmmirror.com/eventsource-parser@1.0.0: + resolution: {integrity: sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==, tarball: http://registry.npmmirror.com/eventsource-parser/-/eventsource-parser-1.0.0.tgz} + name: eventsource-parser + version: 1.0.0 + engines: {node: '>=14.18'} + dev: false + + registry.npmmirror.com/evtd@0.2.4: + resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==, tarball: http://registry.npmmirror.com/evtd/-/evtd-0.2.4.tgz} + name: evtd + version: 0.2.4 + dev: false + + registry.npmmirror.com/execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, tarball: http://registry.npmmirror.com/execa/-/execa-8.0.1.tgz} + name: execa + version: 8.0.1 + engines: {node: '>=16.17'} + requiresBuild: true + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + get-stream: registry.npmmirror.com/get-stream@8.0.1 + human-signals: registry.npmmirror.com/human-signals@5.0.0 + is-stream: registry.npmmirror.com/is-stream@3.0.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path@5.2.0 + onetime: registry.npmmirror.com/onetime@6.0.0 + signal-exit: registry.npmmirror.com/signal-exit@4.1.0 + strip-final-newline: registry.npmmirror.com/strip-final-newline@3.0.0 + dev: false + optional: true + + registry.npmmirror.com/fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: http://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + + registry.npmmirror.com/fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, tarball: http://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz} + name: fast-glob + version: 3.3.2 + engines: {node: '>=8.6.0'} + requiresBuild: true + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: false + optional: true + + registry.npmmirror.com/fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: http://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: true + + registry.npmmirror.com/fastq@1.17.0: + resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==, tarball: http://registry.npmmirror.com/fastq/-/fastq-1.17.0.tgz} + name: fastq + version: 1.17.0 + requiresBuild: true + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + dev: false + optional: true + + registry.npmmirror.com/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, tarball: http://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + requiresBuild: true + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 + dev: false + optional: true + + registry.npmmirror.com/find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==, tarball: http://registry.npmmirror.com/find-up/-/find-up-6.3.0.tgz} + name: find-up + version: 6.3.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: registry.npmmirror.com/locate-path@7.2.0 + path-exists: registry.npmmirror.com/path-exists@5.0.0 + dev: false + + registry.npmmirror.com/flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==, tarball: http://registry.npmmirror.com/flat/-/flat-5.0.2.tgz} + name: flat + version: 5.0.2 + hasBin: true + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, tarball: http://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: true + + registry.npmmirror.com/fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, tarball: http://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz} + name: fs-extra + version: 9.1.0 + engines: {node: '>=10'} + dependencies: + at-least-node: registry.npmmirror.com/at-least-node@1.0.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.1 + dev: true + + registry.npmmirror.com/fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, tarball: http://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz} + name: fs-minipass + version: 2.1.0 + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + minipass: registry.npmmirror.com/minipass@3.3.6 + dev: false + optional: true + + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: http://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: true + + registry.npmmirror.com/fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: http://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz} + name: fsevents + version: 2.3.3 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, tarball: http://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: false + + registry.npmmirror.com/function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: http://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} + name: function-bind + version: 1.1.2 + dev: true + + registry.npmmirror.com/function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, tarball: http://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz} + name: function.prototype.name + version: 1.1.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: true + + registry.npmmirror.com/functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, tarball: http://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: true + + registry.npmmirror.com/gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, tarball: http://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + name: gensync + version: 1.0.0-beta.2 + engines: {node: '>=6.9.0'} + requiresBuild: true + + registry.npmmirror.com/get-intrinsic@1.2.3: + resolution: {integrity: sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ==, tarball: http://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.3.tgz} + name: get-intrinsic + version: 1.2.3 + engines: {node: '>= 0.4'} + dependencies: + es-errors: registry.npmmirror.com/es-errors@1.0.0 + function-bind: registry.npmmirror.com/function-bind@1.1.2 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: true + + registry.npmmirror.com/get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==, tarball: http://registry.npmmirror.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz} + name: get-own-enumerable-property-symbols + version: 3.0.2 + dev: true + + registry.npmmirror.com/get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, tarball: http://registry.npmmirror.com/get-stream/-/get-stream-8.0.1.tgz} + name: get-stream + version: 8.0.1 + engines: {node: '>=16'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, tarball: http://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + name: get-symbol-description + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + dev: true + + registry.npmmirror.com/giget@1.2.1: + resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==, tarball: http://registry.npmmirror.com/giget/-/giget-1.2.1.tgz} + name: giget + version: 1.2.1 + hasBin: true + requiresBuild: true + dependencies: + citty: registry.npmmirror.com/citty@0.1.5 + consola: registry.npmmirror.com/consola@3.2.3 + defu: registry.npmmirror.com/defu@6.1.4 + node-fetch-native: registry.npmmirror.com/node-fetch-native@1.6.1 + nypm: registry.npmmirror.com/nypm@0.3.6 + ohash: registry.npmmirror.com/ohash@1.1.3 + pathe: registry.npmmirror.com/pathe@1.1.2 + tar: registry.npmmirror.com/tar@6.2.0 + dev: false + optional: true + + registry.npmmirror.com/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: http://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + requiresBuild: true + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: false + optional: true + + registry.npmmirror.com/glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, tarball: http://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + name: glob-to-regexp + version: 0.4.1 + dev: true + + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: http://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: true + + registry.npmmirror.com/global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==, tarball: http://registry.npmmirror.com/global-agent/-/global-agent-3.0.0.tgz} + name: global-agent + version: 3.0.0 + engines: {node: '>=10.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.5.4 + serialize-error: 7.0.1 + optional: true + + registry.npmmirror.com/globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, tarball: http://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + + registry.npmmirror.com/globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, tarball: http://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + name: globalthis + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + dev: true + + registry.npmmirror.com/globby@14.0.0: + resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==, tarball: http://registry.npmmirror.com/globby/-/globby-14.0.0.tgz} + name: globby + version: 14.0.0 + engines: {node: '>=18'} + requiresBuild: true + dependencies: + '@sindresorhus/merge-streams': registry.npmmirror.com/@sindresorhus/merge-streams@1.0.0 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + ignore: registry.npmmirror.com/ignore@5.3.1 + path-type: registry.npmmirror.com/path-type@5.0.0 + slash: registry.npmmirror.com/slash@5.1.0 + unicorn-magic: registry.npmmirror.com/unicorn-magic@0.1.0 + dev: false + optional: true + + registry.npmmirror.com/gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, tarball: http://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + dev: true + + registry.npmmirror.com/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, tarball: http://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + + registry.npmmirror.com/handlebars@4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==, tarball: http://registry.npmmirror.com/handlebars/-/handlebars-4.7.7.tgz} + name: handlebars + version: 4.7.7 + engines: {node: '>=0.4.7'} + hasBin: true + requiresBuild: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: registry.npmmirror.com/uglify-js@3.17.4 + dev: true + + registry.npmmirror.com/handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, tarball: http://registry.npmmirror.com/handlebars/-/handlebars-4.7.8.tgz} + name: handlebars + version: 4.7.8 + engines: {node: '>=0.4.7'} + hasBin: true + requiresBuild: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: registry.npmmirror.com/uglify-js@3.17.4 + dev: false + optional: true + + registry.npmmirror.com/has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, tarball: http://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: true + + registry.npmmirror.com/has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, tarball: http://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + + registry.npmmirror.com/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, tarball: http://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, tarball: http://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz} + name: has-property-descriptors + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + dev: true + + registry.npmmirror.com/has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, tarball: http://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + name: has-proto + version: 1.0.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, tarball: http://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, tarball: http://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz} + name: has-tostringtag + version: 1.0.2 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, tarball: http://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.1 + dev: false + + registry.npmmirror.com/hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, tarball: http://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz} + name: hasown + version: 2.0.0 + engines: {node: '>= 0.4'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + dev: true + + registry.npmmirror.com/hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==, tarball: http://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz} + name: hookable + version: 5.5.3 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, tarball: http://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + name: hosted-git-info + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: false + + registry.npmmirror.com/human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, tarball: http://registry.npmmirror.com/human-signals/-/human-signals-5.0.0.tgz} + name: human-signals + version: 5.0.0 + engines: {node: '>=16.17.0'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==, tarball: http://registry.npmmirror.com/idb/-/idb-7.1.1.tgz} + name: idb + version: 7.1.1 + dev: true + + registry.npmmirror.com/ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, tarball: http://registry.npmmirror.com/ignore/-/ignore-5.3.1.tgz} + name: ignore + version: 5.3.1 + engines: {node: '>= 4'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, tarball: http://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} + name: image-size + version: 0.5.5 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dev: true + + registry.npmmirror.com/image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==, tarball: http://registry.npmmirror.com/image-size/-/image-size-1.1.1.tgz} + name: image-size + version: 1.1.1 + engines: {node: '>=16.x'} + hasBin: true + dependencies: + queue: registry.npmmirror.com/queue@6.0.2 + dev: false + + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: http://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: http://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + + registry.npmmirror.com/internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, tarball: http://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz} + name: internal-slot + version: 1.0.6 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: true + + registry.npmmirror.com/is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, tarball: http://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz} + name: is-array-buffer + version: 3.0.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + dev: true + + registry.npmmirror.com/is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, tarball: http://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} + name: is-arrayish + version: 0.2.1 + dev: false + + registry.npmmirror.com/is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, tarball: http://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + dev: true + + registry.npmmirror.com/is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: http://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + name: is-binary-path + version: 2.1.0 + engines: {node: '>=8'} + requiresBuild: true + dependencies: + binary-extensions: registry.npmmirror.com/binary-extensions@2.2.0 + dev: false + optional: true + + registry.npmmirror.com/is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, tarball: http://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + dev: true + + registry.npmmirror.com/is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, tarball: http://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==, tarball: http://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.0.tgz} + name: is-core-module + version: 2.12.0 + dependencies: + has: registry.npmmirror.com/has@1.0.3 + dev: false + + registry.npmmirror.com/is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, tarball: http://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz} + name: is-core-module + version: 2.13.1 + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: true + + registry.npmmirror.com/is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, tarball: http://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + dev: true + + registry.npmmirror.com/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: http://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: http://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + name: is-fullwidth-code-point + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: http://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + is-extglob: registry.npmmirror.com/is-extglob@2.1.1 + dev: false + optional: true + + registry.npmmirror.com/is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, tarball: http://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz} + name: is-module + version: 1.0.0 + dev: true + + registry.npmmirror.com/is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, tarball: http://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + name: is-negative-zero + version: 2.0.2 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, tarball: http://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + dev: true + + registry.npmmirror.com/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: http://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==, tarball: http://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz} + name: is-obj + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, tarball: http://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + dev: true + + registry.npmmirror.com/is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==, tarball: http://registry.npmmirror.com/is-regexp/-/is-regexp-1.0.0.tgz} + name: is-regexp + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, tarball: http://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: true + + registry.npmmirror.com/is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, tarball: http://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, tarball: http://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz} + name: is-stream + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, tarball: http://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + dev: true + + registry.npmmirror.com/is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, tarball: http://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: true + + registry.npmmirror.com/is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, tarball: http://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.13.tgz} + name: is-typed-array + version: 1.1.13 + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.14 + dev: true + + registry.npmmirror.com/is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, tarball: http://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + name: is-weakref + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: true + + registry.npmmirror.com/isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, tarball: http://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} + name: isarray + version: 2.0.5 + dev: true + + registry.npmmirror.com/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, tarball: http://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==, tarball: http://registry.npmmirror.com/jest-worker/-/jest-worker-26.6.2.tgz} + name: jest-worker + version: 26.6.2 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.19.14 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: true + + registry.npmmirror.com/jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, tarball: http://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} + name: jest-worker + version: 27.5.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.19.14 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: true + + registry.npmmirror.com/jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==, tarball: http://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz} + name: jiti + version: 1.21.0 + hasBin: true + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: http://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + + registry.npmmirror.com/jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, tarball: http://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz} + name: jsesc + version: 0.5.0 + hasBin: true + dev: true + + registry.npmmirror.com/jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, tarball: http://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + name: jsesc + version: 2.5.2 + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + + registry.npmmirror.com/json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, tarball: http://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} + name: json-buffer + version: 3.0.1 + + registry.npmmirror.com/json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, tarball: http://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + + registry.npmmirror.com/json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, tarball: http://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: true + + registry.npmmirror.com/json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: http://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + name: json-schema-traverse + version: 1.0.0 + + registry.npmmirror.com/json-schema-typed@8.0.1: + resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==, tarball: http://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-8.0.1.tgz} + name: json-schema-typed + version: 8.0.1 + dev: false + + registry.npmmirror.com/json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, tarball: http://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz} + name: json-schema + version: 0.4.0 + dev: true + + registry.npmmirror.com/json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, tarball: http://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} + name: json5 + version: 2.2.3 + engines: {node: '>=6'} + hasBin: true + + registry.npmmirror.com/jsonc-parser@3.2.1: + resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==, tarball: http://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz} + name: jsonc-parser + version: 3.2.1 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, tarball: http://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify@2.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + registry.npmmirror.com/jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==, tarball: http://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz} + name: jsonpointer + version: 5.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/keyv@4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==, tarball: http://registry.npmmirror.com/keyv/-/keyv-4.5.2.tgz} + name: keyv + version: 4.5.2 + dependencies: + json-buffer: registry.npmmirror.com/json-buffer@3.0.1 + + registry.npmmirror.com/leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, tarball: http://registry.npmmirror.com/leven/-/leven-3.1.0.tgz} + name: leven + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, tarball: http://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + dev: false + + registry.npmmirror.com/loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, tarball: http://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz} + name: loader-runner + version: 4.3.0 + engines: {node: '>=6.11.5'} + dev: true + + registry.npmmirror.com/local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, tarball: http://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz} + name: local-pkg + version: 0.5.0 + engines: {node: '>=14'} + requiresBuild: true + dependencies: + mlly: registry.npmmirror.com/mlly@1.5.0 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + dev: false + optional: true + + registry.npmmirror.com/locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-7.2.0.tgz} + name: locate-path + version: 7.2.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: registry.npmmirror.com/p-locate@6.0.0 + dev: false + + registry.npmmirror.com/lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, tarball: http://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} + name: lodash.debounce + version: 4.0.8 + dev: true + + registry.npmmirror.com/lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, tarball: http://registry.npmmirror.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz} + name: lodash.sortby + version: 4.7.0 + dev: true + + registry.npmmirror.com/lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, tarball: http://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: true + + registry.npmmirror.com/lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + name: lru-cache + version: 5.1.1 + requiresBuild: true + dependencies: + yallist: registry.npmmirror.com/yallist@3.1.1 + + registry.npmmirror.com/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: false + + registry.npmmirror.com/magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, tarball: http://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz} + name: magic-string + version: 0.25.9 + dependencies: + sourcemap-codec: registry.npmmirror.com/sourcemap-codec@1.4.8 + dev: true + + registry.npmmirror.com/magic-string@0.30.6: + resolution: {integrity: sha512-n62qCLbPjNjyo+owKtveQxZFZTBm+Ms6YoGD23Wew6Vw337PElFNifQpknPruVRQV57kVShPnLGo9vWxVhpPvA==, tarball: http://registry.npmmirror.com/magic-string/-/magic-string-0.30.6.tgz} + name: magic-string + version: 0.30.6 + engines: {node: '>=12'} + requiresBuild: true + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: false + optional: true + + registry.npmmirror.com/make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: http://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} + name: make-dir + version: 2.1.0 + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.1 + dev: true + optional: true + + registry.npmmirror.com/make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, tarball: http://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz} + name: make-dir + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + dev: true + + registry.npmmirror.com/merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: http://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + + registry.npmmirror.com/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: http://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, tarball: http://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + requiresBuild: true + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + optional: true + + registry.npmmirror.com/mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: http://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} + name: mime-db + version: 1.52.0 + engines: {node: '>= 0.6'} + dev: true + + registry.npmmirror.com/mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: http://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} + name: mime-types + version: 2.1.35 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.npmmirror.com/mime-db@1.52.0 + dev: true + + registry.npmmirror.com/mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, tarball: http://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + name: mime + version: 1.6.0 + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + + registry.npmmirror.com/mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, tarball: http://registry.npmmirror.com/mime/-/mime-2.6.0.tgz} + name: mime + version: 2.6.0 + engines: {node: '>=4.0.0'} + hasBin: true + + registry.npmmirror.com/mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, tarball: http://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} + name: mimic-fn + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: true + + registry.npmmirror.com/minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, tarball: http://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz} + name: minipass + version: 3.3.6 + engines: {node: '>=8'} + dependencies: + yallist: registry.npmmirror.com/yallist@4.0.0 + + registry.npmmirror.com/minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, tarball: http://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz} + name: minipass + version: 5.0.0 + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, tarball: http://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz} + name: minizlib + version: 2.1.2 + engines: {node: '>= 8'} + requiresBuild: true + dependencies: + minipass: registry.npmmirror.com/minipass@3.3.6 + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: false + optional: true + + registry.npmmirror.com/mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, tarball: http://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz} + name: mkdirp + version: 1.0.4 + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/mlly@1.5.0: + resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==, tarball: http://registry.npmmirror.com/mlly/-/mlly-1.5.0.tgz} + name: mlly + version: 1.5.0 + requiresBuild: true + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.3 + pathe: registry.npmmirror.com/pathe@1.1.2 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + ufo: registry.npmmirror.com/ufo@1.3.2 + dev: false + optional: true + + registry.npmmirror.com/mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, tarball: http://registry.npmmirror.com/mri/-/mri-1.2.0.tgz} + name: mri + version: 1.2.0 + engines: {node: '>=4'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, tarball: http://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + requiresBuild: true + + registry.npmmirror.com/msgpackr-extract@3.0.2: + resolution: {integrity: sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==, tarball: http://registry.npmmirror.com/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz} + name: msgpackr-extract + version: 3.0.2 + hasBin: true + requiresBuild: true + dependencies: + node-gyp-build-optional-packages: 5.0.7 + optionalDependencies: + '@msgpackr-extract/msgpackr-extract-darwin-arm64': registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2 + '@msgpackr-extract/msgpackr-extract-darwin-x64': registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.2 + '@msgpackr-extract/msgpackr-extract-linux-arm': registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm@3.0.2 + '@msgpackr-extract/msgpackr-extract-linux-arm64': registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.2 + '@msgpackr-extract/msgpackr-extract-linux-x64': registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-linux-x64@3.0.2 + '@msgpackr-extract/msgpackr-extract-win32-x64': registry.npmmirror.com/@msgpackr-extract/msgpackr-extract-win32-x64@3.0.2 + dev: false + optional: true + + registry.npmmirror.com/naive-ui@2.37.3(vue@3.2.47): + resolution: {integrity: sha512-aUkHFXVIluSi8Me+npbcsdv1NYhVMj5t9YaruoCESlqmfqspj+R2QHEVXkTtUI1kQwVrABMCtAGq/wountqjZA==, tarball: http://registry.npmmirror.com/naive-ui/-/naive-ui-2.37.3.tgz} + id: registry.npmmirror.com/naive-ui/2.37.3 + name: naive-ui + version: 2.37.3 + peerDependencies: + vue: ^3.0.0 + dependencies: + '@css-render/plugin-bem': 0.15.12(css-render@0.15.12) + '@css-render/vue3-ssr': 0.15.12(vue@3.2.47) + '@types/katex': registry.npmmirror.com/@types/katex@0.16.7 + '@types/lodash': registry.npmmirror.com/@types/lodash@4.14.202 + '@types/lodash-es': registry.npmmirror.com/@types/lodash-es@4.17.12 + async-validator: 4.2.5 + css-render: 0.15.12 + csstype: registry.npmmirror.com/csstype@3.1.3 + date-fns: 2.30.0 + date-fns-tz: registry.npmmirror.com/date-fns-tz@2.0.0(date-fns@2.30.0) + evtd: 0.2.4 + highlight.js: 11.8.0 + lodash: 4.17.21 + lodash-es: 4.17.21 + seemly: registry.npmmirror.com/seemly@0.3.8 + treemate: 0.3.11 + vdirs: 0.1.8(vue@3.2.47) + vooks: 0.2.12(vue@3.2.47) + vue: 3.2.47 + vueuc: registry.npmmirror.com/vueuc@0.4.58(vue@3.2.47) + dev: false + + registry.npmmirror.com/needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==, tarball: http://registry.npmmirror.com/needle/-/needle-3.3.1.tgz} + name: needle + version: 3.3.1 + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + sax: 1.2.4 + dev: true + optional: true + + registry.npmmirror.com/neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, tarball: http://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + dev: true + + registry.npmmirror.com/node-fetch-native@1.6.1: + resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==, tarball: http://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz} + name: node-fetch-native + version: 1.6.1 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, tarball: http://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz} + name: node-releases + version: 2.0.14 + requiresBuild: true + + registry.npmmirror.com/normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, tarball: http://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + name: normalize-package-data + version: 3.0.3 + engines: {node: '>=10'} + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@4.1.0 + is-core-module: registry.npmmirror.com/is-core-module@2.12.0 + semver: registry.npmmirror.com/semver@7.5.4 + validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 + dev: false + + registry.npmmirror.com/normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: http://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + name: normalize-path + version: 3.0.0 + engines: {node: '>=0.10.0'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==, tarball: http://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.2.0.tgz} + name: npm-run-path + version: 5.2.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + requiresBuild: true + dependencies: + path-key: registry.npmmirror.com/path-key@4.0.0 + dev: false + optional: true + + registry.npmmirror.com/nypm@0.3.6: + resolution: {integrity: sha512-2CATJh3pd6CyNfU5VZM7qSwFu0ieyabkEdnogE30Obn1czrmOYiZ8DOZLe1yBdLKWoyD3Mcy2maUs+0MR3yVjQ==, tarball: http://registry.npmmirror.com/nypm/-/nypm-0.3.6.tgz} + name: nypm + version: 0.3.6 + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + requiresBuild: true + dependencies: + citty: registry.npmmirror.com/citty@0.1.5 + execa: registry.npmmirror.com/execa@8.0.1 + pathe: registry.npmmirror.com/pathe@1.1.2 + ufo: registry.npmmirror.com/ufo@1.3.2 + dev: false + optional: true + + registry.npmmirror.com/object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, tarball: http://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz} + name: object-inspect + version: 1.13.1 + dev: true + + registry.npmmirror.com/object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, tarball: http://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, tarball: http://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz} + name: object.assign + version: 4.1.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: true + + registry.npmmirror.com/ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==, tarball: http://registry.npmmirror.com/ohash/-/ohash-1.1.3.tgz} + name: ohash + version: 1.1.3 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: http://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true + + registry.npmmirror.com/onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, tarball: http://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz} + name: onetime + version: 6.0.0 + engines: {node: '>=12'} + requiresBuild: true + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@4.0.0 + dev: false + optional: true + + registry.npmmirror.com/p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, tarball: http://registry.npmmirror.com/p-limit/-/p-limit-4.0.0.tgz} + name: p-limit + version: 4.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue@1.0.0 + dev: false + + registry.npmmirror.com/p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-6.0.0.tgz} + name: p-locate + version: 6.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: registry.npmmirror.com/p-limit@4.0.0 + dev: false + + registry.npmmirror.com/p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==, tarball: http://registry.npmmirror.com/p-timeout/-/p-timeout-6.1.2.tgz} + name: p-timeout + version: 6.1.2 + engines: {node: '>=14.16'} + dev: false + + registry.npmmirror.com/parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: http://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} + name: parse-json + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.22.13 + error-ex: registry.npmmirror.com/error-ex@1.3.2 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 + dev: false + + registry.npmmirror.com/path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, tarball: http://registry.npmmirror.com/path-exists/-/path-exists-5.0.0.tgz} + name: path-exists + version: 5.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: http://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, tarball: http://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, tarball: http://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz} + name: path-key + version: 4.0.0 + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, tarball: http://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmmirror.com/path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==, tarball: http://registry.npmmirror.com/path-type/-/path-type-5.0.0.tgz} + name: path-type + version: 5.0.0 + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, tarball: http://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz} + name: pathe + version: 1.1.2 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==, tarball: http://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz} + name: perfect-debounce + version: 1.0.0 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, tarball: http://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + requiresBuild: true + + registry.npmmirror.com/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: http://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + + registry.npmmirror.com/pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==, tarball: http://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz} + name: pkg-types + version: 1.0.3 + requiresBuild: true + dependencies: + jsonc-parser: registry.npmmirror.com/jsonc-parser@3.2.1 + mlly: registry.npmmirror.com/mlly@1.5.0 + pathe: registry.npmmirror.com/pathe@1.1.2 + dev: false + optional: true + + registry.npmmirror.com/pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, tarball: http://registry.npmmirror.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz} + name: pretty-bytes + version: 5.6.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/pug@3.0.2: + resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==, tarball: http://registry.npmmirror.com/pug/-/pug-3.0.2.tgz} + name: pug + version: 3.0.2 + dependencies: + pug-code-gen: 3.0.2 + pug-filters: 4.0.0 + pug-lexer: 5.0.1 + pug-linker: 4.0.0 + pug-load: 3.0.0 + pug-parser: 6.0.0 + pug-runtime: 3.0.1 + pug-strip-comments: 2.0.0 + dev: false + + registry.npmmirror.com/punycode@2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, tarball: http://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz} + name: punycode + version: 2.3.0 + engines: {node: '>=6'} + + registry.npmmirror.com/punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, tarball: http://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz} + name: punycode + version: 2.3.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: http://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==, tarball: http://registry.npmmirror.com/queue/-/queue-6.0.2.tgz} + name: queue + version: 6.0.2 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + dev: false + + registry.npmmirror.com/quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} + name: quick-lru + version: 4.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz} + name: quick-lru + version: 5.1.1 + engines: {node: '>=10'} + + registry.npmmirror.com/quick-lru@6.1.1: + resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-6.1.1.tgz} + name: quick-lru + version: 6.1.1 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, tarball: http://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} + name: randombytes + version: 2.1.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: true + + registry.npmmirror.com/rc9@2.1.1: + resolution: {integrity: sha512-lNeOl38Ws0eNxpO3+wD1I9rkHGQyj1NU1jlzv4go2CtEnEQEUfqnIvZG7W+bC/aXdJ27n5x/yUjb6RoT9tko+Q==, tarball: http://registry.npmmirror.com/rc9/-/rc9-2.1.1.tgz} + name: rc9 + version: 2.1.1 + requiresBuild: true + dependencies: + defu: registry.npmmirror.com/defu@6.1.4 + destr: registry.npmmirror.com/destr@2.0.2 + flat: registry.npmmirror.com/flat@5.0.2 + dev: false + optional: true + + registry.npmmirror.com/read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, tarball: http://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + name: read-pkg-up + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + registry.npmmirror.com/read-pkg-up@9.1.0: + resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==, tarball: http://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz} + name: read-pkg-up + version: 9.1.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: registry.npmmirror.com/find-up@6.3.0 + read-pkg: registry.npmmirror.com/read-pkg@7.1.0 + type-fest: registry.npmmirror.com/type-fest@2.19.0 + dev: false + + registry.npmmirror.com/read-pkg@7.1.0: + resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==, tarball: http://registry.npmmirror.com/read-pkg/-/read-pkg-7.1.0.tgz} + name: read-pkg + version: 7.1.0 + engines: {node: '>=12.20'} + dependencies: + '@types/normalize-package-data': registry.npmmirror.com/@types/normalize-package-data@2.4.1 + normalize-package-data: registry.npmmirror.com/normalize-package-data@3.0.3 + parse-json: registry.npmmirror.com/parse-json@5.2.0 + type-fest: registry.npmmirror.com/type-fest@2.19.0 + dev: false + + registry.npmmirror.com/readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: http://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + name: readdirp + version: 3.6.0 + engines: {node: '>=8.10.0'} + requiresBuild: true + dependencies: + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + optional: true + + registry.npmmirror.com/regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, tarball: http://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz} + name: regenerate-unicode-properties + version: 10.1.1 + engines: {node: '>=4'} + dependencies: + regenerate: registry.npmmirror.com/regenerate@1.4.2 + dev: true + + registry.npmmirror.com/regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, tarball: http://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz} + name: regenerate + version: 1.4.2 + dev: true + + registry.npmmirror.com/regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, tarball: http://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz} + name: regenerator-runtime + version: 0.14.1 + dev: true + + registry.npmmirror.com/regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, tarball: http://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz} + name: regenerator-transform + version: 0.15.2 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.9 + dev: true + + registry.npmmirror.com/regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, tarball: http://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} + name: regexp.prototype.flags + version: 1.5.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + dev: true + + registry.npmmirror.com/regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==, tarball: http://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz} + name: regexpu-core + version: 5.3.2 + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': registry.npmmirror.com/@babel/regjsgen@0.8.0 + regenerate: registry.npmmirror.com/regenerate@1.4.2 + regenerate-unicode-properties: registry.npmmirror.com/regenerate-unicode-properties@10.1.1 + regjsparser: registry.npmmirror.com/regjsparser@0.9.1 + unicode-match-property-ecmascript: registry.npmmirror.com/unicode-match-property-ecmascript@2.0.0 + unicode-match-property-value-ecmascript: registry.npmmirror.com/unicode-match-property-value-ecmascript@2.1.0 + dev: true + + registry.npmmirror.com/regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, tarball: http://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz} + name: regjsparser + version: 0.9.1 + hasBin: true + dependencies: + jsesc: registry.npmmirror.com/jsesc@0.5.0 + dev: true + + registry.npmmirror.com/require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, tarball: http://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} + name: require-from-string + version: 2.0.2 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, tarball: http://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz} + name: resolve + version: 1.22.8 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: true + + registry.npmmirror.com/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: http://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/rollup-plugin-terser@7.0.2(rollup@2.79.1): + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==, tarball: http://registry.npmmirror.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz} + id: registry.npmmirror.com/rollup-plugin-terser/7.0.2 + name: rollup-plugin-terser + version: 7.0.2 + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.5 + jest-worker: registry.npmmirror.com/jest-worker@26.6.2 + rollup: registry.npmmirror.com/rollup@2.79.1 + serialize-javascript: registry.npmmirror.com/serialize-javascript@4.0.0 + terser: registry.npmmirror.com/terser@5.27.0 + dev: true + + registry.npmmirror.com/rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, tarball: http://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} + name: rollup + version: 2.79.1 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + + registry.npmmirror.com/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: http://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + requiresBuild: true + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 + dev: false + optional: true + + registry.npmmirror.com/safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==, tarball: http://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz} + name: safe-array-concat + version: 1.1.0 + engines: {node: '>=0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + isarray: registry.npmmirror.com/isarray@2.0.5 + dev: true + + registry.npmmirror.com/safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: http://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + name: safe-buffer + version: 5.2.1 + dev: true + + registry.npmmirror.com/safe-regex-test@1.0.2: + resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==, tarball: http://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz} + name: safe-regex-test + version: 1.0.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + dev: true + + registry.npmmirror.com/schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, tarball: http://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz} + name: schema-utils + version: 3.3.0 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + ajv: registry.npmmirror.com/ajv@6.12.6 + ajv-keywords: registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6) + dev: true + + registry.npmmirror.com/scule@1.2.0: + resolution: {integrity: sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==, tarball: http://registry.npmmirror.com/scule/-/scule-1.2.0.tgz} + name: scule + version: 1.2.0 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/seemly@0.3.8: + resolution: {integrity: sha512-MW8Qs6vbzo0pHmDpFSYPna+lwpZ6Zk1ancbajw/7E8TKtHdV+1DfZZD+kKJEhG/cAoB/i+LiT+5msZOqj0DwRA==, tarball: http://registry.npmmirror.com/seemly/-/seemly-0.3.8.tgz} + name: seemly + version: 0.3.8 + dev: false + + registry.npmmirror.com/semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, tarball: http://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} + name: semver + version: 6.3.1 + hasBin: true + + registry.npmmirror.com/semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, tarball: http://registry.npmmirror.com/semver/-/semver-7.5.4.tgz} + name: semver + version: 7.5.4 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: false + + registry.npmmirror.com/serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==, tarball: http://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz} + name: serialize-javascript + version: 4.0.0 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: true + + registry.npmmirror.com/serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, tarball: http://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz} + name: serialize-javascript + version: 6.0.2 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: true + + registry.npmmirror.com/set-function-length@1.2.0: + resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==, tarball: http://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.0.tgz} + name: set-function-length + version: 1.2.0 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: true + + registry.npmmirror.com/set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, tarball: http://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz} + name: set-function-name + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: true + + registry.npmmirror.com/shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, tarball: http://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + requiresBuild: true + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex@3.0.0 + dev: false + optional: true + + registry.npmmirror.com/shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, tarball: http://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, tarball: http://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + dev: true + + registry.npmmirror.com/signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, tarball: http://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz} + name: signal-exit + version: 4.1.0 + engines: {node: '>=14'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, tarball: http://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==, tarball: http://registry.npmmirror.com/slash/-/slash-5.1.0.tgz} + name: slash + version: 5.1.0 + engines: {node: '>=14.16'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, tarball: http://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@1.1.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + registry.npmmirror.com/source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} + name: source-map + version: 0.5.7 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.8.0-beta.0.tgz} + name: source-map + version: 0.8.0-beta.0 + engines: {node: '>= 8'} + dependencies: + whatwg-url: registry.npmmirror.com/whatwg-url@7.1.0 + dev: true + + registry.npmmirror.com/sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, tarball: http://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + name: sourcemap-codec + version: 1.4.8 + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + registry.npmmirror.com/spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, tarball: http://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} + name: spdx-correct + version: 3.2.0 + dependencies: + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.13 + dev: false + + registry.npmmirror.com/spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, tarball: http://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} + name: spdx-exceptions + version: 2.3.0 + dev: false + + registry.npmmirror.com/spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, tarball: http://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + name: spdx-expression-parse + version: 3.0.1 + dependencies: + spdx-exceptions: registry.npmmirror.com/spdx-exceptions@2.3.0 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.13 + dev: false + + registry.npmmirror.com/spdx-license-ids@3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==, tarball: http://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz} + name: spdx-license-ids + version: 3.0.13 + dev: false + + registry.npmmirror.com/std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, tarball: http://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz} + name: std-env + version: 3.7.0 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: http://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + name: string-width + version: 4.2.3 + engines: {node: '>=8'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex@8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: true + + registry.npmmirror.com/string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, tarball: http://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz} + name: string.prototype.matchall + version: 4.0.10 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: true + + registry.npmmirror.com/string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, tarball: http://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz} + name: string.prototype.trim + version: 1.2.8 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: true + + registry.npmmirror.com/string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, tarball: http://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz} + name: string.prototype.trimend + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: true + + registry.npmmirror.com/string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, tarball: http://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz} + name: string.prototype.trimstart + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: true + + registry.npmmirror.com/stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==, tarball: http://registry.npmmirror.com/stringify-object/-/stringify-object-3.3.0.tgz} + name: stringify-object + version: 3.3.0 + engines: {node: '>=4'} + dependencies: + get-own-enumerable-property-symbols: registry.npmmirror.com/get-own-enumerable-property-symbols@3.0.2 + is-obj: registry.npmmirror.com/is-obj@1.0.1 + is-regexp: registry.npmmirror.com/is-regexp@1.0.0 + dev: true + + registry.npmmirror.com/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: http://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + dev: true + + registry.npmmirror.com/strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==, tarball: http://registry.npmmirror.com/strip-comments/-/strip-comments-2.0.1.tgz} + name: strip-comments + version: 2.0.1 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, tarball: http://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} + name: strip-final-newline + version: 3.0.0 + engines: {node: '>=12'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==, tarball: http://registry.npmmirror.com/strip-literal/-/strip-literal-1.3.0.tgz} + name: strip-literal + version: 1.3.0 + requiresBuild: true + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.3 + dev: false + optional: true + + registry.npmmirror.com/stubborn-fs@1.2.4: + resolution: {integrity: sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==, tarball: http://registry.npmmirror.com/stubborn-fs/-/stubborn-fs-1.2.4.tgz} + name: stubborn-fs + version: 1.2.4 + dev: false + + registry.npmmirror.com/style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==, tarball: http://registry.npmmirror.com/style-mod/-/style-mod-4.1.0.tgz} + name: style-mod + version: 4.1.0 + dev: false + + registry.npmmirror.com/supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@3.0.0 + + registry.npmmirror.com/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: true + + registry.npmmirror.com/supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} + name: supports-color + version: 8.1.1 + engines: {node: '>=10'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: true + + registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: http://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: http://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==, tarball: http://registry.npmmirror.com/tar/-/tar-6.2.0.tgz} + name: tar + version: 6.2.0 + engines: {node: '>=10'} + requiresBuild: true + dependencies: + chownr: registry.npmmirror.com/chownr@2.0.0 + fs-minipass: registry.npmmirror.com/fs-minipass@2.1.0 + minipass: registry.npmmirror.com/minipass@5.0.0 + minizlib: registry.npmmirror.com/minizlib@2.1.2 + mkdirp: registry.npmmirror.com/mkdirp@1.0.4 + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: false + optional: true + + registry.npmmirror.com/temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==, tarball: http://registry.npmmirror.com/temp-dir/-/temp-dir-2.0.0.tgz} + name: temp-dir + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==, tarball: http://registry.npmmirror.com/tempy/-/tempy-0.6.0.tgz} + name: tempy + version: 0.6.0 + engines: {node: '>=10'} + dependencies: + is-stream: registry.npmmirror.com/is-stream@2.0.1 + temp-dir: registry.npmmirror.com/temp-dir@2.0.0 + type-fest: registry.npmmirror.com/type-fest@0.16.0 + unique-string: registry.npmmirror.com/unique-string@2.0.0 + dev: true + + registry.npmmirror.com/terser-webpack-plugin@5.3.10(webpack@5.90.1): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==, tarball: http://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz} + id: registry.npmmirror.com/terser-webpack-plugin/5.3.10 + name: terser-webpack-plugin + version: 5.3.10 + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.22 + jest-worker: registry.npmmirror.com/jest-worker@27.5.1 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + serialize-javascript: registry.npmmirror.com/serialize-javascript@6.0.2 + terser: registry.npmmirror.com/terser@5.27.0 + webpack: registry.npmmirror.com/webpack@5.90.1 + dev: true + + registry.npmmirror.com/terser@5.27.0: + resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==, tarball: http://registry.npmmirror.com/terser/-/terser-5.27.0.tgz} + name: terser + version: 5.27.0 + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': registry.npmmirror.com/@jridgewell/source-map@0.3.5 + acorn: registry.npmmirror.com/acorn@8.11.3 + commander: registry.npmmirror.com/commander@2.20.3 + source-map-support: registry.npmmirror.com/source-map-support@0.5.21 + dev: true + + registry.npmmirror.com/to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, tarball: http://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: http://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + requiresBuild: true + dependencies: + is-number: registry.npmmirror.com/is-number@7.0.0 + dev: false + optional: true + + registry.npmmirror.com/tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, tarball: http://registry.npmmirror.com/tr46/-/tr46-1.0.1.tgz} + name: tr46 + version: 1.0.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.1 + dev: true + + registry.npmmirror.com/type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.16.0.tgz} + name: type-fest + version: 0.16.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz} + name: type-fest + version: 2.19.0 + engines: {node: '>=12.20'} + dev: false + + registry.npmmirror.com/typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, tarball: http://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} + name: typed-array-buffer + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.13 + dev: true + + registry.npmmirror.com/typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, tarball: http://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} + name: typed-array-byte-length + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.13 + dev: true + + registry.npmmirror.com/typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, tarball: http://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} + name: typed-array-byte-offset + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.6 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.13 + dev: true + + registry.npmmirror.com/typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, tarball: http://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + name: typed-array-length + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.13 + dev: true + + registry.npmmirror.com/typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, tarball: http://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz} + name: typescript + version: 4.9.5 + engines: {node: '>=4.2.0'} + hasBin: true + + registry.npmmirror.com/ufo@1.3.2: + resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==, tarball: http://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz} + name: ufo + version: 1.3.2 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, tarball: http://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz} + name: uglify-js + version: 3.17.4 + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + + registry.npmmirror.com/unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, tarball: http://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + name: unbox-primitive + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + dev: true + + registry.npmmirror.com/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: http://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + dev: true + + registry.npmmirror.com/unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, tarball: http://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz} + name: unicode-canonical-property-names-ecmascript + version: 2.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, tarball: http://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz} + name: unicode-match-property-ecmascript + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: registry.npmmirror.com/unicode-canonical-property-names-ecmascript@2.0.0 + unicode-property-aliases-ecmascript: registry.npmmirror.com/unicode-property-aliases-ecmascript@2.1.0 + dev: true + + registry.npmmirror.com/unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, tarball: http://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz} + name: unicode-match-property-value-ecmascript + version: 2.1.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, tarball: http://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz} + name: unicode-property-aliases-ecmascript + version: 2.1.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, tarball: http://registry.npmmirror.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz} + name: unicorn-magic + version: 0.1.0 + engines: {node: '>=18'} + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/unimport@3.7.1(rollup@2.79.1): + resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==, tarball: http://registry.npmmirror.com/unimport/-/unimport-3.7.1.tgz} + id: registry.npmmirror.com/unimport/3.7.1 + name: unimport + version: 3.7.1 + requiresBuild: true + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@5.1.0(rollup@2.79.1) + acorn: registry.npmmirror.com/acorn@8.11.3 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@5.0.0 + estree-walker: registry.npmmirror.com/estree-walker@3.0.3 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + local-pkg: registry.npmmirror.com/local-pkg@0.5.0 + magic-string: registry.npmmirror.com/magic-string@0.30.6 + mlly: registry.npmmirror.com/mlly@1.5.0 + pathe: registry.npmmirror.com/pathe@1.1.2 + pkg-types: registry.npmmirror.com/pkg-types@1.0.3 + scule: registry.npmmirror.com/scule@1.2.0 + strip-literal: registry.npmmirror.com/strip-literal@1.3.0 + unplugin: registry.npmmirror.com/unplugin@1.6.0 + transitivePeerDependencies: + - rollup + dev: false + optional: true + + registry.npmmirror.com/unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, tarball: http://registry.npmmirror.com/unique-string/-/unique-string-2.0.0.tgz} + name: unique-string + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + crypto-random-string: registry.npmmirror.com/crypto-random-string@2.0.0 + dev: true + + registry.npmmirror.com/universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, tarball: http://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz} + name: universalify + version: 2.0.1 + engines: {node: '>= 10.0.0'} + dev: true + + registry.npmmirror.com/unplugin@1.6.0: + resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==, tarball: http://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz} + name: unplugin + version: 1.6.0 + requiresBuild: true + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.3 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + webpack-sources: registry.npmmirror.com/webpack-sources@3.2.3 + webpack-virtual-modules: registry.npmmirror.com/webpack-virtual-modules@0.6.1 + dev: false + optional: true + + registry.npmmirror.com/untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==, tarball: http://registry.npmmirror.com/untyped/-/untyped-1.4.2.tgz} + name: untyped + version: 1.4.2 + hasBin: true + requiresBuild: true + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/standalone': registry.npmmirror.com/@babel/standalone@7.23.10 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.9 + defu: registry.npmmirror.com/defu@6.1.4 + jiti: registry.npmmirror.com/jiti@1.21.0 + mri: registry.npmmirror.com/mri@1.2.0 + scule: registry.npmmirror.com/scule@1.2.0 + transitivePeerDependencies: + - supports-color + dev: false + optional: true + + registry.npmmirror.com/upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==, tarball: http://registry.npmmirror.com/upath/-/upath-1.2.0.tgz} + name: upath + version: 1.2.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, tarball: http://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.13 + name: update-browserslist-db + version: 1.0.13 + hasBin: true + requiresBuild: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.3 + escalade: registry.npmmirror.com/escalade@3.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + + registry.npmmirror.com/uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: http://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.0 + + registry.npmmirror.com/uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, tarball: http://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} + name: uuid + version: 8.3.2 + hasBin: true + dev: false + + registry.npmmirror.com/uuid@9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==, tarball: http://registry.npmmirror.com/uuid/-/uuid-9.0.0.tgz} + name: uuid + version: 9.0.0 + hasBin: true + dev: false + + registry.npmmirror.com/validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, tarball: http://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + name: validate-npm-package-license + version: 3.0.4 + dependencies: + spdx-correct: registry.npmmirror.com/spdx-correct@3.2.0 + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 + dev: false + + registry.npmmirror.com/vdirs@0.1.8(vue@3.2.47): + resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==, tarball: http://registry.npmmirror.com/vdirs/-/vdirs-0.1.8.tgz} + id: registry.npmmirror.com/vdirs/0.1.8 + name: vdirs + version: 0.1.8 + peerDependencies: + vue: ^3.0.11 + dependencies: + evtd: registry.npmmirror.com/evtd@0.2.4 + vue: 3.2.47 + dev: false + + registry.npmmirror.com/vooks@0.2.12(vue@3.2.47): + resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==, tarball: http://registry.npmmirror.com/vooks/-/vooks-0.2.12.tgz} + id: registry.npmmirror.com/vooks/0.2.12 + name: vooks + version: 0.2.12 + peerDependencies: + vue: ^3.0.0 + dependencies: + evtd: registry.npmmirror.com/evtd@0.2.4 + vue: 3.2.47 + dev: false + + registry.npmmirror.com/vueuc@0.4.58(vue@3.2.47): + resolution: {integrity: sha512-Wnj/N8WbPRSxSt+9ji1jtDHPzda5h2OH/0sFBhvdxDRuyCZbjGg3/cKMaKqEoe+dErTexG2R+i6Q8S/Toq1MYg==, tarball: http://registry.npmmirror.com/vueuc/-/vueuc-0.4.58.tgz} + id: registry.npmmirror.com/vueuc/0.4.58 + name: vueuc + version: 0.4.58 + peerDependencies: + vue: ^3.0.11 + dependencies: + '@css-render/vue3-ssr': registry.npmmirror.com/@css-render/vue3-ssr@0.15.12(vue@3.2.47) + '@juggle/resize-observer': registry.npmmirror.com/@juggle/resize-observer@3.4.0 + css-render: registry.npmmirror.com/css-render@0.15.12 + evtd: registry.npmmirror.com/evtd@0.2.4 + seemly: registry.npmmirror.com/seemly@0.3.8 + vdirs: registry.npmmirror.com/vdirs@0.1.8(vue@3.2.47) + vooks: registry.npmmirror.com/vooks@0.2.12(vue@3.2.47) + vue: 3.2.47 + dev: false + + registry.npmmirror.com/w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, tarball: http://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} + name: w3c-keyname + version: 2.2.8 + dev: false + + registry.npmmirror.com/watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, tarball: http://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz} + name: watchpack + version: 2.4.0 + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + registry.npmmirror.com/webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, tarball: http://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz} + name: webidl-conversions + version: 4.0.2 + dev: true + + registry.npmmirror.com/webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, tarball: http://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} + name: webpack-sources + version: 3.2.3 + engines: {node: '>=10.13.0'} + + registry.npmmirror.com/webpack-virtual-modules@0.6.1: + resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==, tarball: http://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz} + name: webpack-virtual-modules + version: 0.6.1 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/webpack@5.90.1: + resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==, tarball: http://registry.npmmirror.com/webpack/-/webpack-5.90.1.tgz} + name: webpack + version: 5.90.1 + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': registry.npmmirror.com/@types/eslint-scope@3.7.7 + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/wasm-edit': registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + acorn: registry.npmmirror.com/acorn@8.11.3 + acorn-import-assertions: registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.3) + browserslist: registry.npmmirror.com/browserslist@4.22.3 + chrome-trace-event: registry.npmmirror.com/chrome-trace-event@1.0.3 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + es-module-lexer: registry.npmmirror.com/es-module-lexer@1.4.1 + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + events: registry.npmmirror.com/events@3.3.0 + glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + loader-runner: registry.npmmirror.com/loader-runner@4.3.0 + mime-types: registry.npmmirror.com/mime-types@2.1.35 + neo-async: registry.npmmirror.com/neo-async@2.6.2 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + tapable: registry.npmmirror.com/tapable@2.2.1 + terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin@5.3.10(webpack@5.90.1) + watchpack: registry.npmmirror.com/watchpack@2.4.0 + webpack-sources: registry.npmmirror.com/webpack-sources@3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + registry.npmmirror.com/whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, tarball: http://registry.npmmirror.com/whatwg-url/-/whatwg-url-7.1.0.tgz} + name: whatwg-url + version: 7.1.0 + dependencies: + lodash.sortby: registry.npmmirror.com/lodash.sortby@4.7.0 + tr46: registry.npmmirror.com/tr46@1.0.1 + webidl-conversions: registry.npmmirror.com/webidl-conversions@4.0.2 + dev: true + + registry.npmmirror.com/when-exit@2.1.0: + resolution: {integrity: sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==, tarball: http://registry.npmmirror.com/when-exit/-/when-exit-2.1.0.tgz} + name: when-exit + version: 2.1.0 + dev: false + + registry.npmmirror.com/which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, tarball: http://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: true + + registry.npmmirror.com/which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==, tarball: http://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.14.tgz} + name: which-typed-array + version: 1.1.14 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.6 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.2 + dev: true + + registry.npmmirror.com/which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, tarball: http://registry.npmmirror.com/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + requiresBuild: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: false + optional: true + + registry.npmmirror.com/workbox-background-sync@6.6.0: + resolution: {integrity: sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==, tarball: http://registry.npmmirror.com/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz} + name: workbox-background-sync + version: 6.6.0 + dependencies: + idb: registry.npmmirror.com/idb@7.1.1 + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-broadcast-update@6.6.0: + resolution: {integrity: sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==, tarball: http://registry.npmmirror.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz} + name: workbox-broadcast-update + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-build@6.6.0: + resolution: {integrity: sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==, tarball: http://registry.npmmirror.com/workbox-build/-/workbox-build-6.6.0.tgz} + name: workbox-build + version: 6.6.0 + engines: {node: '>=10.0.0'} + dependencies: + '@apideck/better-ajv-errors': registry.npmmirror.com/@apideck/better-ajv-errors@0.3.6(ajv@8.12.0) + '@babel/core': registry.npmmirror.com/@babel/core@7.23.9 + '@babel/preset-env': registry.npmmirror.com/@babel/preset-env@7.23.9(@babel/core@7.23.9) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.9 + '@rollup/plugin-babel': registry.npmmirror.com/@rollup/plugin-babel@5.3.1(@babel/core@7.23.9)(rollup@2.79.1) + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1) + '@rollup/plugin-replace': registry.npmmirror.com/@rollup/plugin-replace@2.4.2(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': registry.npmmirror.com/@surma/rollup-plugin-off-main-thread@2.2.3 + ajv: registry.npmmirror.com/ajv@8.12.0 + common-tags: registry.npmmirror.com/common-tags@1.8.2 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + fs-extra: registry.npmmirror.com/fs-extra@9.1.0 + glob: registry.npmmirror.com/glob@7.2.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + pretty-bytes: registry.npmmirror.com/pretty-bytes@5.6.0 + rollup: registry.npmmirror.com/rollup@2.79.1 + rollup-plugin-terser: registry.npmmirror.com/rollup-plugin-terser@7.0.2(rollup@2.79.1) + source-map: registry.npmmirror.com/source-map@0.8.0-beta.0 + stringify-object: registry.npmmirror.com/stringify-object@3.3.0 + strip-comments: registry.npmmirror.com/strip-comments@2.0.1 + tempy: registry.npmmirror.com/tempy@0.6.0 + upath: registry.npmmirror.com/upath@1.2.0 + workbox-background-sync: registry.npmmirror.com/workbox-background-sync@6.6.0 + workbox-broadcast-update: registry.npmmirror.com/workbox-broadcast-update@6.6.0 + workbox-cacheable-response: registry.npmmirror.com/workbox-cacheable-response@6.6.0 + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + workbox-expiration: registry.npmmirror.com/workbox-expiration@6.6.0 + workbox-google-analytics: registry.npmmirror.com/workbox-google-analytics@6.6.0 + workbox-navigation-preload: registry.npmmirror.com/workbox-navigation-preload@6.6.0 + workbox-precaching: registry.npmmirror.com/workbox-precaching@6.6.0 + workbox-range-requests: registry.npmmirror.com/workbox-range-requests@6.6.0 + workbox-recipes: registry.npmmirror.com/workbox-recipes@6.6.0 + workbox-routing: registry.npmmirror.com/workbox-routing@6.6.0 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.6.0 + workbox-streams: registry.npmmirror.com/workbox-streams@6.6.0 + workbox-sw: registry.npmmirror.com/workbox-sw@6.6.0 + workbox-window: registry.npmmirror.com/workbox-window@6.6.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + dev: true + + registry.npmmirror.com/workbox-cacheable-response@6.6.0: + resolution: {integrity: sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==, tarball: http://registry.npmmirror.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz} + name: workbox-cacheable-response + version: 6.6.0 + deprecated: workbox-background-sync@6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-core@6.6.0: + resolution: {integrity: sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==, tarball: http://registry.npmmirror.com/workbox-core/-/workbox-core-6.6.0.tgz} + name: workbox-core + version: 6.6.0 + dev: true + + registry.npmmirror.com/workbox-expiration@6.6.0: + resolution: {integrity: sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==, tarball: http://registry.npmmirror.com/workbox-expiration/-/workbox-expiration-6.6.0.tgz} + name: workbox-expiration + version: 6.6.0 + dependencies: + idb: registry.npmmirror.com/idb@7.1.1 + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-google-analytics@6.6.0: + resolution: {integrity: sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==, tarball: http://registry.npmmirror.com/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz} + name: workbox-google-analytics + version: 6.6.0 + dependencies: + workbox-background-sync: registry.npmmirror.com/workbox-background-sync@6.6.0 + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + workbox-routing: registry.npmmirror.com/workbox-routing@6.6.0 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.6.0 + dev: true + + registry.npmmirror.com/workbox-navigation-preload@6.6.0: + resolution: {integrity: sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==, tarball: http://registry.npmmirror.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz} + name: workbox-navigation-preload + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-precaching@6.6.0: + resolution: {integrity: sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==, tarball: http://registry.npmmirror.com/workbox-precaching/-/workbox-precaching-6.6.0.tgz} + name: workbox-precaching + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + workbox-routing: registry.npmmirror.com/workbox-routing@6.6.0 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.6.0 + dev: true + + registry.npmmirror.com/workbox-range-requests@6.6.0: + resolution: {integrity: sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==, tarball: http://registry.npmmirror.com/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz} + name: workbox-range-requests + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-recipes@6.6.0: + resolution: {integrity: sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==, tarball: http://registry.npmmirror.com/workbox-recipes/-/workbox-recipes-6.6.0.tgz} + name: workbox-recipes + version: 6.6.0 + dependencies: + workbox-cacheable-response: registry.npmmirror.com/workbox-cacheable-response@6.6.0 + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + workbox-expiration: registry.npmmirror.com/workbox-expiration@6.6.0 + workbox-precaching: registry.npmmirror.com/workbox-precaching@6.6.0 + workbox-routing: registry.npmmirror.com/workbox-routing@6.6.0 + workbox-strategies: registry.npmmirror.com/workbox-strategies@6.6.0 + dev: true + + registry.npmmirror.com/workbox-routing@6.6.0: + resolution: {integrity: sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==, tarball: http://registry.npmmirror.com/workbox-routing/-/workbox-routing-6.6.0.tgz} + name: workbox-routing + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-strategies@6.6.0: + resolution: {integrity: sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==, tarball: http://registry.npmmirror.com/workbox-strategies/-/workbox-strategies-6.6.0.tgz} + name: workbox-strategies + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/workbox-streams@6.6.0: + resolution: {integrity: sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==, tarball: http://registry.npmmirror.com/workbox-streams/-/workbox-streams-6.6.0.tgz} + name: workbox-streams + version: 6.6.0 + dependencies: + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + workbox-routing: registry.npmmirror.com/workbox-routing@6.6.0 + dev: true + + registry.npmmirror.com/workbox-sw@6.6.0: + resolution: {integrity: sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==, tarball: http://registry.npmmirror.com/workbox-sw/-/workbox-sw-6.6.0.tgz} + name: workbox-sw + version: 6.6.0 + dev: true + + registry.npmmirror.com/workbox-window@6.6.0: + resolution: {integrity: sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==, tarball: http://registry.npmmirror.com/workbox-window/-/workbox-window-6.6.0.tgz} + name: workbox-window + version: 6.6.0 + dependencies: + '@types/trusted-types': registry.npmmirror.com/@types/trusted-types@2.0.7 + workbox-core: registry.npmmirror.com/workbox-core@6.6.0 + dev: true + + registry.npmmirror.com/wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: http://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + name: wrap-ansi + version: 7.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: true + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: http://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: true + + registry.npmmirror.com/yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, tarball: http://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} + name: yallist + version: 3.1.1 + requiresBuild: true + + registry.npmmirror.com/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: http://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + + registry.npmmirror.com/yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, tarball: http://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz} + name: yocto-queue + version: 1.0.0 + engines: {node: '>=12.20'} + dev: false diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..df49d87 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - chat + - admin + - service diff --git a/service/.env b/service/.env new file mode 100644 index 0000000..c0a246d --- /dev/null +++ b/service/.env @@ -0,0 +1,33 @@ +# 服务器ip +NINE_AI_HOST= +# 授权码 +NINE_AI_KEY= + +# mysql +DB_HOST=43.136.19.159 +DB_PORT=3399 +DB_USER=root +DB_PASS=xiaozhu123 +DB_DATABASE=yiai + +# mailer 邮件服务 +MAILER_HOST=smtp.qq.com +MAILER_PORT=587 +MAILER_USER=FZ AI +MAILER_PASS=mowrtwwfschkbhhb +MAILER_FROM=1978127466@qq.com + +# Redis +REDIS_PORT=6379 +REDIS_HOST=43.136.19.159 +REDIS_PASSWORD=xiaozhu123 + +# mj并发数 +CONCURRENCY=3 + +# jwt token +JWT_SECRET=chat-cooper +# jwt token 过期时间 +JWT_EXPIRESIN=7d +# 自定义端口 +PORT=9520 diff --git a/service/.env.example b/service/.env.example new file mode 100644 index 0000000..e69de29 diff --git a/service/.eslintrc.js b/service/.eslintrc.js new file mode 100644 index 0000000..259de13 --- /dev/null +++ b/service/.eslintrc.js @@ -0,0 +1,25 @@ +module.exports = { + parser: '@typescript-eslint/parser', + parserOptions: { + project: 'tsconfig.json', + tsconfigRootDir: __dirname, + sourceType: 'module', + }, + plugins: ['@typescript-eslint/eslint-plugin'], + extends: [ + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + ], + root: true, + env: { + node: true, + jest: true, + }, + ignorePatterns: ['.eslintrc.js'], + rules: { + '@typescript-eslint/interface-name-prefix': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, +}; diff --git a/service/.gitignore b/service/.gitignore new file mode 100644 index 0000000..bf9fab6 --- /dev/null +++ b/service/.gitignore @@ -0,0 +1,25 @@ +# chat +node_modules +node_modules/** +node_modules/* +./node_modules/* +./*.zip/* +/dist/ +/chat/build/* +/chat/build + +# admin +node_modules/ +/dist/ + +# service +node_modules/ +/service/.env +service/**/.env +/dist/ + + +.idea/ +*.log +*.iml +node_modules/ \ No newline at end of file diff --git a/service/.prettierrc b/service/.prettierrc new file mode 100644 index 0000000..6bcd5c2 --- /dev/null +++ b/service/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "printWidth": 150 +} \ No newline at end of file diff --git a/service/.vscode/settings.json b/service/.vscode/settings.json new file mode 100644 index 0000000..9dd2a9a --- /dev/null +++ b/service/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "eslint.validate": ["html", "vue", "javascript", "jsx"], + "emmet.syntaxProfiles": { + "vue-html": "html", + "vue": "html" + }, + "editor.tabSize": 2, + "eslint.alwaysShowStatus": true, + "eslint.quiet": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.fixAll": "explicit", + "source.fixAll.stylelint": "explicit" + }, + "stylelint.customSyntax": "postcss-less", + "stylelint.validate": [ + "css", + "less" + ] +} diff --git a/service/README.md b/service/README.md new file mode 100644 index 0000000..f5aa86c --- /dev/null +++ b/service/README.md @@ -0,0 +1,73 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Node.js framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. + +## Installation + +```bash +$ pnpm install +``` + +## Running the app + +```bash +# development +$ pnpm run start + +# watch mode +$ pnpm run start:dev + +# production mode +$ pnpm run start:prod +``` + +## Test + +```bash +# unit tests +$ pnpm run test + +# e2e tests +$ pnpm run test:e2e + +# test coverage +$ pnpm run test:cov +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/service/encrypt.js b/service/encrypt.js new file mode 100644 index 0000000..1f9233f --- /dev/null +++ b/service/encrypt.js @@ -0,0 +1,29 @@ +const { join } = require('path'); +const { readdirSync, statSync } = require('fs'); +const JavaScriptObfuscator = require('javascript-obfuscator'); +const fs = require('fs'); + +const distDirectory = './dist'; + +function obfuscateFile(filePath) { + const fileContents = fs.readFileSync(filePath, 'utf8'); + const obfuscationResult = JavaScriptObfuscator.obfuscate(fileContents); + + fs.writeFileSync(filePath, obfuscationResult.getObfuscatedCode(), 'utf8'); +} + +function traverseDirectory(currentPath) { + const files = readdirSync(currentPath).map(file => join(currentPath, file)); + files.forEach((file) => { + console.log('encry =======> ', file); + if (statSync(file).isDirectory()) { + traverseDirectory(file); + } else if (file.endsWith('.js')) { + obfuscateFile(file); + } + }); +} + +traverseDirectory(distDirectory); + +console.log('JavaScript obfuscation complete!'); diff --git a/service/nest-cli.json b/service/nest-cli.json new file mode 100644 index 0000000..56e2d23 --- /dev/null +++ b/service/nest-cli.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "packageManager": "pnpm", + "compilerOptions": { + "deleteOutDir": true, + "assets": ["src/common/mailTemplates/**/*","src/views/**/*","src/rpc/*"] + }, + "defaults": { + "path": "modules" + } +} diff --git a/service/package-lock.json b/service/package-lock.json new file mode 100644 index 0000000..ae4b28b --- /dev/null +++ b/service/package-lock.json @@ -0,0 +1,18127 @@ +{ + "name": "service", + "version": "2.6.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "service", + "version": "2.6.0", + "license": "UNLICENSED", + "dependencies": { + "@alicloud/pop-core": "^1.7.13", + "@dqbd/tiktoken": "^1.0.7", + "@keyv/redis": "^2.6.1", + "@nestjs-modules/mailer": "^1.8.1", + "@nestjs/bull": "^0.6.3", + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/jwt": "^10.0.3", + "@nestjs/passport": "^9.0.3", + "@nestjs/platform-express": "^9.4.0", + "@nestjs/schedule": "^2.2.2", + "@nestjs/serve-static": "^4.0.0", + "@nestjs/swagger": "^6.2.1", + "@nestjs/typeorm": "^9.0.1", + "@types/cache-manager-redis-store": "^2.0.1", + "abort-controller": "^3.0.0", + "ali-oss": "^6.17.1", + "axios": "^1.3.4", + "bcryptjs": "^2.4.3", + "body-parser": "^1.20.2", + "bull": "^4.10.4", + "cache-manager-redis-store": "^3.0.1", + "chatgpt-ai-web": "^1.0.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.0", + "compression": "^1.7.4", + "cos-nodejs-sdk-v5": "^2.11.19", + "dayjs": "^1.11.7", + "decimal.js": "^10.4.3", + "dotenv": "^16.0.3", + "eventsource": "^2.0.2", + "exceljs": "^4.3.0", + "express": "^4.18.2", + "express-xml-bodyparser": "^0.3.0", + "form-data": "^4.0.0", + "guid-typescript": "^1.0.9", + "hbs": "^4.2.0", + "image-size": "^1.1.1", + "ioredis": "^5.3.2", + "isomorphic-fetch": "^3.0.0", + "javascript-obfuscator": "^4.0.2", + "jimp": "^0.22.7", + "jsonwebtoken": "^9.0.0", + "keyv": "^4.5.2", + "lodash": "^4.17.21", + "mysql2": "^3.2.0", + "nestjs-config": "^1.4.10", + "nestjs-rate-limiter": "^3.1.0", + "nestjs-redis": "^1.3.3", + "node-fetch": "^3.3.1", + "nodemailer": "^6.9.1", + "passport": "^0.6.0", + "passport-jwt": "^4.0.1", + "redis": "^4.6.5", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.2.0", + "stream-to-buffer": "^0.1.0", + "svg-captcha": "^1.4.0", + "swagger-ui-express": "^4.6.2", + "typeorm": "^0.3.12", + "uuid": "^9.0.0", + "wechatpay-node-v3": "^2.1.5" + }, + "bin": { + "service": "dist/main.js" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "29.2.4", + "@types/node": "18.11.18", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "29.3.1", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "29.0.3", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.1", + "typescript": "^4.7.4" + } + }, + "node_modules/@alicloud/pop-core": { + "version": "1.7.13", + "resolved": "https://registry.npmjs.org/@alicloud/pop-core/-/pop-core-1.7.13.tgz", + "integrity": "sha512-agzr4DU+aAGW7/2mp2hP1JcNJkn/zBS0jUGQt5etIASN0MVq1tMdudVqvWbExUG0mUouo/n2VgdnjOHjswvrlA==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "httpx": "^2.1.2", + "json-bigint": "^1.0.0", + "kitx": "^1.2.1", + "xml2js": "^0.5.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.0.1.tgz", + "integrity": "sha512-2uz98IqkKJlgnHbWQ7VeL4pb+snGAZXIama2KXi+k9GsRntdcw+udX8rL3G9SdUGUF+m6+147Y1oRBMHsO/v4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.0.1.tgz", + "integrity": "sha512-A9D0LTYmiqiBa90GKcSuWb7hUouGIbm/AHbJbjL85WLLRbQA2PwKl7P5Mpd6nS/ZC0kfG4VQY3VOaDvb3qpI9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "16.0.1", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.0", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-16.0.1.tgz", + "integrity": "sha512-6KLA125dpgd6oJGtiO2JpZAb92uOG3njQGIt7NFcuQGW/5GO7J41vMXH9cBAfdtbV8SIggSmR/cIEE9ijfj6YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "16.0.1", + "@angular-devkit/schematics": "16.0.1", + "ansi-colors": "4.1.3", + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.1.1" + }, + "bin": { + "schematics": "bin/schematics.js" + }, + "engines": { + "node": "^16.14.0 || >=18.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@css-inline/css-inline": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline/-/css-inline-0.13.0.tgz", + "integrity": "sha512-ZozAXBiW1I8hf6eW5eTNqhxUdNOBxrNNxxUnQRiKQpWcs5ORuGaiWwV5focMBTJ5WXGN+Z8VLP93BOwWFPzCJw==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@css-inline/css-inline-darwin-arm64": "0.13.0", + "@css-inline/css-inline-darwin-x64": "0.13.0", + "@css-inline/css-inline-linux-arm-gnueabihf": "0.13.0", + "@css-inline/css-inline-linux-arm64-gnu": "0.13.0", + "@css-inline/css-inline-linux-arm64-musl": "0.13.0", + "@css-inline/css-inline-linux-x64-gnu": "0.13.0", + "@css-inline/css-inline-linux-x64-musl": "0.13.0", + "@css-inline/css-inline-win32-x64-msvc": "0.13.0" + } + }, + "node_modules/@css-inline/css-inline-darwin-arm64": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-darwin-arm64/-/css-inline-darwin-arm64-0.13.0.tgz", + "integrity": "sha512-A4QvlZdhp8v+3IHKF/UftRf5GrAVUMEHCGRuk2Dx594xn/UR4ieh+B70aMm5rfONh2hv5mlR9UcoYAkVpEQ99g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-darwin-x64": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-darwin-x64/-/css-inline-darwin-x64-0.13.0.tgz", + "integrity": "sha512-px9z4ypzeECMyBEtlrNzTMpA1tnw5MmMIiMkBRhb8UGRr2pOBZY3yd/eEIxWzVVSPt0aIjVDwUOJ3+d0Z+BskA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-linux-arm-gnueabihf": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-linux-arm-gnueabihf/-/css-inline-linux-arm-gnueabihf-0.13.0.tgz", + "integrity": "sha512-+uo0coLQNgk/AKeOB8mXSRd8VIlUg38zRSB9B9q0ior9oBCDPtEdn1HuCSvWxHoOSJ8QNNk+uwbz0zW4CETzFw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-linux-arm64-gnu": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-linux-arm64-gnu/-/css-inline-linux-arm64-gnu-0.13.0.tgz", + "integrity": "sha512-GVrsFbY5l0Hxyzxsm5S5JPGObvHm/Ybf2wZgnWBsQigxqGtr1FL535HaTwEnq6aHOpH3f08gR5Vx33gB7jG4pw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-linux-arm64-musl": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-linux-arm64-musl/-/css-inline-linux-arm64-musl-0.13.0.tgz", + "integrity": "sha512-V5h5+CRnE01EgoafI/kyjEcM8zvN+sKLnp17Aq9LqQfsut7mO3i72d8g/xeVC37DCLoGQFLvDCzbze2NbF2dIQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-linux-x64-gnu": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-linux-x64-gnu/-/css-inline-linux-x64-gnu-0.13.0.tgz", + "integrity": "sha512-vbRV++73MW7dvz/AIbozkv4R68/k/sEp57hno/L6lx034VYxpCwdfqtGN4D0W1TOTzdr2b6qBOGNZ1oLKQZOQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-linux-x64-musl": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-linux-x64-musl/-/css-inline-linux-x64-musl-0.13.0.tgz", + "integrity": "sha512-2tCnwU23W/yMs9cGc2/i2jd9y2pjuntx0a5OytqX7s9fvUtmI3nc0Od6wuf51LnmdU+XAU8HLT9pZppsQiwPfQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@css-inline/css-inline-win32-x64-msvc": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@css-inline/css-inline-win32-x64-msvc/-/css-inline-win32-x64-msvc-0.13.0.tgz", + "integrity": "sha512-6VFhFSXp4FH+NzJhLd6fFi7jKCPvIRW+vq0tV+CPuiQ3zPzMfC9nIk8sB/1VJR8EcvBAjMV53YnacuDjRFRT9g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@dqbd/tiktoken": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@dqbd/tiktoken/-/tiktoken-1.0.15.tgz", + "integrity": "sha512-a6I67K1xUkuqcuwulobIJiLikkoE7egMaviI1Jg5bxSn2V7QGqXsGE3jTKr8UIOU/o74mAAd5TkeXFNBtaKF4A==", + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "license": "MIT", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "node_modules/@fast-csv/format/node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "license": "MIT" + }, + "node_modules/@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "license": "MIT", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/@fast-csv/parse/node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "license": "MIT" + }, + "node_modules/@fidm/asn1": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@fidm/asn1/-/asn1-1.0.4.tgz", + "integrity": "sha512-esd1jyNvRb2HVaQGq2Gg8Z0kbQPXzV9Tq5Z14KNIov6KfFD6PTaRIO8UpcsYiTNzOqJpmyzWgVTrUwFV3UF4TQ==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@fidm/x509": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@fidm/x509/-/x509-1.2.1.tgz", + "integrity": "sha512-nwc2iesjyc9hkuzcrMCBXQRn653XuAUKorfWM8PZyJawiy1QzLj4vahwzaI25+pfpwOLvMzbJ0uKpWLDNmo16w==", + "license": "MIT", + "dependencies": { + "@fidm/asn1": "^1.0.4", + "tweetnacl": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@fidm/x509/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@javascript-obfuscator/escodegen": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.0.tgz", + "integrity": "sha512-QVXwMIKqYMl3KwtTirYIA6gOCiJ0ZDtptXqAv/8KWLG9uQU2fZqTVy7a/A5RvcoZhbDoFfveTxuGxJ5ibzQtkw==", + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/estraverse": "^5.3.0", + "esprima": "^4.0.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@javascript-obfuscator/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@javascript-obfuscator/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@javascript-obfuscator/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@javascript-obfuscator/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@javascript-obfuscator/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@javascript-obfuscator/estraverse": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz", + "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.22.12.tgz", + "integrity": "sha512-aeI64HD0npropd+AR76MCcvvRaa+Qck6loCOS03CkkxGHN5/r336qTM5HPUdHKMDOGzqknuVPA8+kK1t03z12g==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "bmp-js": "^0.1.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.12.tgz", + "integrity": "sha512-l0RR0dOPyzMKfjUW1uebzueFEDtCOj9fN6pyTYWWOM/VS4BciXQ1VVrJs8pO3kycGYZxncRKhCoygbNr8eEZQA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^16.5.4", + "isomorphic-fetch": "^3.0.0", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.6.0" + } + }, + "node_modules/@jimp/custom": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", + "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", + "license": "MIT", + "dependencies": { + "@jimp/core": "^0.22.12" + } + }, + "node_modules/@jimp/gif": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.22.12.tgz", + "integrity": "sha512-y6BFTJgch9mbor2H234VSjd9iwAhaNf/t3US5qpYIs0TSbAvM02Fbc28IaDETj9+4YB4676sz4RcN/zwhfu1pg==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "gifwrap": "^0.10.1", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.22.12.tgz", + "integrity": "sha512-Rq26XC/uQWaQKyb/5lksCTCxXhtY01NJeBN+dQv5yNYedN0i7iYu+fXEoRsfaJ8xZzjoANH8sns7rVP4GE7d/Q==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "jpeg-js": "^0.4.4" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz", + "integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz", + "integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.22.12.tgz", + "integrity": "sha512-SWVXx1yiuj5jZtMijqUfvVOJBwOifFn0918ou4ftoHgegc5aHWW5dZbYPjvC9fLpvz7oSlptNl2Sxr1zwofjTg==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz", + "integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "tinycolor2": "^1.6.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.22.12.tgz", + "integrity": "sha512-Eo3DmfixJw3N79lWk8q/0SDYbqmKt1xSTJ69yy8XLYQj9svoBbyRpSnHR+n9hOw5pKXytHwUW6nU4u1wegHNoQ==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.22.12.tgz", + "integrity": "sha512-z0w/1xH/v/knZkpTNx+E8a7fnasQ2wHG5ze6y5oL2dhH1UufNua8gLQXlv8/W56+4nJ1brhSd233HBJCo01BXA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz", + "integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.22.12.tgz", + "integrity": "sha512-qpRM8JRicxfK6aPPqKZA6+GzBwUIitiHaZw0QrJ64Ygd3+AsTc7BXr+37k2x7QcyCvmKXY4haUrSIsBug4S3CA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.22.12.tgz", + "integrity": "sha512-jYgGdSdSKl1UUEanX8A85v4+QUm+PE8vHFwlamaKk89s+PXQe7eVE3eNeSZX4inCq63EHL7cX580dMqkoC3ZLw==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.12.tgz", + "integrity": "sha512-LGuUTsFg+fOp6KBKrmLkX4LfyCy8IIsROwoUvsUPKzutSqMJnsm3JGDW2eOmWIS/jJpPaeaishjlxvczjgII+Q==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.22.12.tgz", + "integrity": "sha512-m251Rop7GN8W0Yo/rF9LWk6kNclngyjIJs/VXHToGQ6EGveOSTSQaX2Isi9f9lCDLxt+inBIb7nlaLLxnvHX8Q==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.12.tgz", + "integrity": "sha512-sBfbzoOmJ6FczfG2PquiK84NtVGeScw97JsCC3rpQv1PHVWyW+uqWFF53+n3c8Y0P2HWlUjflEla2h/vWShvhg==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.22.12.tgz", + "integrity": "sha512-N+6rwxdB+7OCR6PYijaA/iizXXodpxOGvT/smd/lxeXsZ/empHmFFFJ/FaXcYh19Tm04dGDaXcNF/dN5nm6+xQ==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.22.12.tgz", + "integrity": "sha512-4AWZg+DomtpUA099jRV8IEZUfn1wLv6+nem4NRJC7L/82vxzLCgXKTxvNvBcNmJjT9yS1LAAmiJGdWKXG63/NA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.22.12.tgz", + "integrity": "sha512-0So0rexQivnWgnhacX4cfkM2223YdExnJTTy6d06WbkfZk5alHUx8MM3yEzwoCN0ErO7oyqEWRnEkGC+As1FtA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.22.12.tgz", + "integrity": "sha512-c7TnhHlxm87DJeSnwr/XOLjJU/whoiKYY7r21SbuJ5nuH+7a78EW1teOaj5gEr2wYEd7QtkFqGlmyGXY/YclyQ==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "load-bmfont": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz", + "integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz", + "integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz", + "integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-shadow": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.22.12.tgz", + "integrity": "sha512-FX8mTJuCt7/3zXVoeD/qHlm4YH2bVqBuWQHXSuBK054e7wFRnRnbSLPUqAwSeYP3lWqpuQzJtgiiBxV3+WWwTg==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.22.12.tgz", + "integrity": "sha512-4x5GrQr1a/9L0paBC/MZZJjjgjxLYrqSmWd+e+QfAEPvmRxdRoQ5uKEuNgXnm9/weHQBTnQBQsOY2iFja+XGAw==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.22.12.tgz", + "integrity": "sha512-yBJ8vQrDkBbTgQZLty9k4+KtUQdRjsIDJSPjuI21YdVeqZxYywifHl4/XWILoTZsjTUASQcGoH0TuC0N7xm3ww==", + "license": "MIT", + "dependencies": { + "@jimp/plugin-blit": "^0.22.12", + "@jimp/plugin-blur": "^0.22.12", + "@jimp/plugin-circle": "^0.22.12", + "@jimp/plugin-color": "^0.22.12", + "@jimp/plugin-contain": "^0.22.12", + "@jimp/plugin-cover": "^0.22.12", + "@jimp/plugin-crop": "^0.22.12", + "@jimp/plugin-displace": "^0.22.12", + "@jimp/plugin-dither": "^0.22.12", + "@jimp/plugin-fisheye": "^0.22.12", + "@jimp/plugin-flip": "^0.22.12", + "@jimp/plugin-gaussian": "^0.22.12", + "@jimp/plugin-invert": "^0.22.12", + "@jimp/plugin-mask": "^0.22.12", + "@jimp/plugin-normalize": "^0.22.12", + "@jimp/plugin-print": "^0.22.12", + "@jimp/plugin-resize": "^0.22.12", + "@jimp/plugin-rotate": "^0.22.12", + "@jimp/plugin-scale": "^0.22.12", + "@jimp/plugin-shadow": "^0.22.12", + "@jimp/plugin-threshold": "^0.22.12", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.22.12.tgz", + "integrity": "sha512-Mrp6dr3UTn+aLK8ty/dSKELz+Otdz1v4aAXzV5q53UDD2rbB5joKVJ/ChY310B+eRzNxIovbUF1KVrUsYdE8Hg==", + "license": "MIT", + "dependencies": { + "@jimp/utils": "^0.22.12", + "pngjs": "^6.0.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.22.12.tgz", + "integrity": "sha512-E1LtMh4RyJsoCAfAkBRVSYyZDTtLq9p9LUiiYP0vPtXyxX4BiYBUYihTLSBlCQg5nF2e4OpQg7SPrLdJ66u7jg==", + "license": "MIT", + "dependencies": { + "utif2": "^4.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.22.12.tgz", + "integrity": "sha512-wwKYzRdElE1MBXFREvCto5s699izFHNVvALUv79GXNbsOVqlwlOxlWJ8DuyOGIXoLP4JW/m30YyuTtfUJgMRMA==", + "license": "MIT", + "dependencies": { + "@jimp/bmp": "^0.22.12", + "@jimp/gif": "^0.22.12", + "@jimp/jpeg": "^0.22.12", + "@jimp/png": "^0.22.12", + "@jimp/tiff": "^0.22.12", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.22.12.tgz", + "integrity": "sha512-yJ5cWUknGnilBq97ZXOyOS0HhsHOyAyjHwYfHxGbSyMTohgQI6sVyE8KPgDwH8HHW/nMKXk8TrSwAE71zt716Q==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@keyv/redis": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.8.5.tgz", + "integrity": "sha512-e9W1faN32A1Wy5726qtorAvPu1Xffh75ngfQQtETQ0hIN/FQtK0RcBTz/OH/vwDvLX8zrzdu0sWq/KoSHDYfVw==", + "license": "MIT", + "dependencies": { + "ioredis": "^5.4.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@nestjs-modules/mailer": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@nestjs-modules/mailer/-/mailer-1.11.2.tgz", + "integrity": "sha512-k07wyKbtCzxWMm6IqGwcGIisnXD/6sneGvUR8rBBZbxtLn1HE1FLGyiaXBrPui/0K7W41aS9x9jAIhfTawtlUg==", + "license": "MIT", + "dependencies": { + "@css-inline/css-inline": "0.13.0", + "glob": "10.3.10", + "mjml": "4.15.3", + "preview-email": "3.0.19" + }, + "optionalDependencies": { + "@types/ejs": "^3.1.5", + "@types/pug": "^2.0.10", + "ejs": "^3.1.9", + "handlebars": "^4.7.8", + "pug": "^3.0.2" + }, + "peerDependencies": { + "@nestjs/common": ">=7.0.9", + "@nestjs/core": ">=7.0.9", + "@types/ejs": ">=3.0.3", + "@types/pug": ">=2.0.6", + "ejs": ">=3.1.2", + "handlebars": ">=4.7.6", + "nodemailer": ">=6.4.6", + "pug": ">=3.0.1" + } + }, + "node_modules/@nestjs/bull": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nestjs/bull/-/bull-0.6.3.tgz", + "integrity": "sha512-CckH9O3t9qSiO4RCzdYvtFSaaMfIhTXMYagV/rtmVvI1SX5XNnxEaQXvtjxDBXF9DB1JE/5AejIl6ICym+MJIw==", + "license": "MIT", + "dependencies": { + "@nestjs/bull-shared": "^0.1.3", + "tslib": "2.5.0" + }, + "peerDependencies": { + "@nestjs/common": "^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "@nestjs/core": "^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "bull": "^3.3 || ^4.0.0" + } + }, + "node_modules/@nestjs/bull-shared": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@nestjs/bull-shared/-/bull-shared-0.1.3.tgz", + "integrity": "sha512-K0a1ERpnl/ZnTmm0UtYSSClDlDkQwNNwJYM6PogzpeflD64oqwVIn8Pj8rdS+BOYUxqdDy55q3p67ytO5oaVDA==", + "license": "MIT", + "dependencies": { + "tslib": "2.5.0" + }, + "peerDependencies": { + "@nestjs/common": "^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "@nestjs/core": "^6.10.11 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@nestjs/cli": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-9.5.0.tgz", + "integrity": "sha512-Z7q+3vNsQSG2d2r2Hl/OOj5EpfjVx3OfnJ9+KuAsOdw1sKLm7+Zc6KbhMFTd/eIvfx82ww3Nk72xdmfPYCulWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "16.0.1", + "@angular-devkit/schematics": "16.0.1", + "@angular-devkit/schematics-cli": "16.0.1", + "@nestjs/schematics": "^9.0.4", + "chalk": "4.1.2", + "chokidar": "3.5.3", + "cli-table3": "0.6.3", + "commander": "4.1.1", + "fork-ts-checker-webpack-plugin": "8.0.0", + "inquirer": "8.2.5", + "node-emoji": "1.11.0", + "ora": "5.4.1", + "os-name": "4.0.1", + "rimraf": "4.4.1", + "shelljs": "0.8.5", + "source-map-support": "0.5.21", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.2.0", + "tsconfig-paths-webpack-plugin": "4.0.1", + "typescript": "4.9.5", + "webpack": "5.82.1", + "webpack-node-externals": "3.0.0" + }, + "bin": { + "nest": "bin/nest.js" + }, + "engines": { + "node": ">= 12.9.0" + } + }, + "node_modules/@nestjs/cli/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@nestjs/cli/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@nestjs/cli/node_modules/webpack": { + "version": "5.82.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.82.1.tgz", + "integrity": "sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.14.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/@nestjs/common": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-9.4.3.tgz", + "integrity": "sha512-Gd6D4IaYj01o14Bwv81ukidn4w3bPHCblMUq+SmUmWLyosK+XQmInCS09SbDDZyL8jy86PngtBLTdhJ2bXSUig==", + "license": "MIT", + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.5.3", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "<=5", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/common/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "license": "0BSD" + }, + "node_modules/@nestjs/core": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-9.4.3.tgz", + "integrity": "sha512-Qi63+wi55Jh4sDyaj5Hhx2jOpKqT386aeo+VOKsxnd+Ql9VvkO/FjmuwBGUyzkJt29ENYc+P0Sx/k5LtstNpPQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.2.0", + "tslib": "2.5.3", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0", + "@nestjs/websockets": "^9.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@nestjs/core/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "license": "0BSD" + }, + "node_modules/@nestjs/jwt": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/jwt/-/jwt-10.2.0.tgz", + "integrity": "sha512-x8cG90SURkEiLOehNaN2aRlotxT0KZESUliOPKKnjWiyJOcWurkF3w345WOX0P4MgFzUjGoZ1Sy0aZnxeihT0g==", + "license": "MIT", + "dependencies": { + "@types/jsonwebtoken": "9.0.5", + "jsonwebtoken": "9.0.2" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/@nestjs/mapped-types": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-1.2.2.tgz", + "integrity": "sha512-3dHxLXs3M0GPiriAcCFFJQHoDFUuzTD5w6JDhE7TyfT89YKpe6tcCCIqOZWdXmt9AZjjK30RkHRSFF+QEnWFQg==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^7.0.8 || ^8.0.0 || ^9.0.0", + "class-transformer": "^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0", + "class-validator": "^0.11.1 || ^0.12.0 || ^0.13.0 || ^0.14.0", + "reflect-metadata": "^0.1.12" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/passport": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@nestjs/passport/-/passport-9.0.3.tgz", + "integrity": "sha512-HplSJaimEAz1IOZEu+pdJHHJhQyBOPAYWXYHfAPQvRqWtw4FJF1VXl1Qtk9dcXQX1eKytDtH+qBzNQc19GWNEg==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0", + "passport": "^0.4.0 || ^0.5.0 || ^0.6.0" + } + }, + "node_modules/@nestjs/platform-express": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-9.4.3.tgz", + "integrity": "sha512-FpdczWoRSC0zz2dNL9u2AQLXKXRVtq4HgHklAhbL59X0uy+mcxhlSThG7DHzDMkoSnuuHY8ojDVf7mDxk+GtCw==", + "license": "MIT", + "dependencies": { + "body-parser": "1.20.2", + "cors": "2.8.5", + "express": "4.18.2", + "multer": "1.4.4-lts.1", + "tslib": "2.5.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@nestjs/platform-express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/@nestjs/platform-express/node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/@nestjs/platform-express/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@nestjs/platform-express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@nestjs/platform-express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/@nestjs/platform-express/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "license": "0BSD" + }, + "node_modules/@nestjs/schedule": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@nestjs/schedule/-/schedule-2.2.3.tgz", + "integrity": "sha512-PxoGdoBwZQ6SzGfFcERTk7mDxrmesNt2cfqKgtLsFpjYNpV6ZYlKw9Ku8C0ZIjdhy0tBbysj+Fsi3sYua6o6Eg==", + "license": "MIT", + "dependencies": { + "cron": "2.3.1", + "uuid": "9.0.0" + }, + "peerDependencies": { + "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0", + "@nestjs/core": "^7.0.0 || ^8.0.0 || ^9.0.0", + "reflect-metadata": "^0.1.12" + } + }, + "node_modules/@nestjs/schedule/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@nestjs/schematics": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-9.2.0.tgz", + "integrity": "sha512-wHpNJDPzM6XtZUOB3gW0J6mkFCSJilzCM3XrHI1o0C8vZmFE1snbmkIXNyoi1eV0Nxh1BMymcgz5vIMJgQtTqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@angular-devkit/core": "16.0.1", + "@angular-devkit/schematics": "16.0.1", + "jsonc-parser": "3.2.0", + "pluralize": "8.0.0" + }, + "peerDependencies": { + "typescript": ">=4.3.5" + } + }, + "node_modules/@nestjs/serve-static": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@nestjs/serve-static/-/serve-static-4.0.2.tgz", + "integrity": "sha512-cT0vdWN5ar7jDI2NKbhf4LcwJzU4vS5sVpMkVrHuyLcltbrz6JdGi1TfIMMatP2pNiq5Ie/uUdPSFDVaZX/URQ==", + "license": "MIT", + "dependencies": { + "path-to-regexp": "0.2.5" + }, + "peerDependencies": { + "@fastify/static": "^6.5.0 || ^7.0.0", + "@nestjs/common": "^9.0.0 || ^10.0.0", + "@nestjs/core": "^9.0.0 || ^10.0.0", + "express": "^4.18.1", + "fastify": "^4.7.0" + }, + "peerDependenciesMeta": { + "@fastify/static": { + "optional": true + }, + "express": { + "optional": true + }, + "fastify": { + "optional": true + } + } + }, + "node_modules/@nestjs/serve-static/node_modules/path-to-regexp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.2.5.tgz", + "integrity": "sha512-l6qtdDPIkmAmzEO6egquYDfqQGPMRNGjYtrU13HAXb3YSRrt7HSb1sJY0pKp6o2bAa86tSB6iwaW2JbthPKr7Q==", + "license": "MIT" + }, + "node_modules/@nestjs/swagger": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-6.3.0.tgz", + "integrity": "sha512-Gnig189oa1tD+h0BYIfUwhp/wvvmTn6iO3csR2E4rQrDTgCxSxZDlNdfZo3AC+Rmf8u0KX4ZAX1RZN1qXTtC7A==", + "license": "MIT", + "dependencies": { + "@nestjs/mapped-types": "1.2.2", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "path-to-regexp": "3.2.0", + "swagger-ui-dist": "4.18.2" + }, + "peerDependencies": { + "@fastify/static": "^6.0.0", + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12" + }, + "peerDependenciesMeta": { + "@fastify/static": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/testing": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-9.4.3.tgz", + "integrity": "sha512-LDT8Ai2eKnTzvnPaJwWOK03qTaFap5uHHsJCv6dL0uKWk6hyF9jms8DjyVaGsaujCaXDG8izl1mDEER0OmxaZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "2.5.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/microservices": "^9.0.0", + "@nestjs/platform-express": "^9.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + } + } + }, + "node_modules/@nestjs/testing/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@nestjs/typeorm": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-9.0.1.tgz", + "integrity": "sha512-A2BgLIPsMtmMI0bPKEf4bmzgFPsnvHqNBx3KkvaJ7hJrBQy0OqYOb+Rr06ifblKWDWS2tUPNrAFQbZjtk3PI+g==", + "license": "MIT", + "dependencies": { + "uuid": "8.3.2" + }, + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0", + "@nestjs/core": "^8.0.0 || ^9.0.0", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.2.0", + "typeorm": "^0.3.0" + } + }, + "node_modules/@nestjs/typeorm/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "license": "MIT" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@redis/client/-/client-1.6.0.tgz", + "integrity": "sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==", + "license": "MIT", + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/client/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/@redis/graph": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@redis/graph/-/graph-1.1.1.tgz", + "integrity": "sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@redis/json/-/json-1.0.7.tgz", + "integrity": "sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@redis/search/-/search-1.2.0.tgz", + "integrity": "sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@redis/time-series/-/time-series-1.1.0.tgz", + "integrity": "sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==", + "license": "MIT", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@selderee/plugin-htmlparser2": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz", + "integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "selderee": "^0.11.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", + "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==", + "license": "MIT" + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "license": "MIT" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cache-manager": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/cache-manager/-/cache-manager-4.0.6.tgz", + "integrity": "sha512-8qL93MF05/xrzFm/LSPtzNEOE1eQF3VwGHAcQEylgp5hDSTe41jtFwbSYAPfyYcVa28y1vYSjIt0c1fLLUiC/Q==", + "license": "MIT" + }, + "node_modules/@types/cache-manager-redis-store": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/cache-manager-redis-store/-/cache-manager-redis-store-2.0.4.tgz", + "integrity": "sha512-EG4ac1KsUr07uv6N/O0X1OaQBNVKShVUxn+GwJQQpUkTEi4+KJl6yvqfwc4uTPT1+pwfKRgQhCoHQQCd/ObkZQ==", + "license": "MIT", + "dependencies": { + "@types/cache-manager": "*", + "@types/redis": "^2.8.0" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cookiejar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz", + "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/eslint": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ioredis": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-5.0.0.tgz", + "integrity": "sha512-zJbJ3FVE17CNl5KXzdeSPtdltc4tMT3TzC6fxQS0sQngkbFZ6h+0uTafsRqu+eSLIugf6Yb0Ea0SUuRr42Nk9g==", + "deprecated": "This is a stub types definition. ioredis provides its own type definitions, so you do not need this installed.", + "license": "MIT", + "dependencies": { + "ioredis": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.2.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.2.4.tgz", + "integrity": "sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonwebtoken": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz", + "integrity": "sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/methods": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz", + "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "license": "MIT" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/pug": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/redis": { + "version": "2.8.32", + "resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz", + "integrity": "sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/superagent": { + "version": "8.1.8", + "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.8.tgz", + "integrity": "sha512-nTqHJ2OTa7PFEpLahzSEEeFeqbMpmcN7OeayiOc7v+xk+/vyTKljRe+o4MPqSnPeRCMvtxuLG+5QqluUVQJOnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/cookiejar": "^2.1.5", + "@types/methods": "^1.1.4", + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/supertest": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.16.tgz", + "integrity": "sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/superagent": "*" + } + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "devOptional": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.3.tgz", + "integrity": "sha512-yqXL+k5rr8+ZRpOAntkaaRgWgE5o8ESAj5DyRmVTCSoZxXmqemb9Dd7T4i5UzwuERdLAJUy6XzR9zFVuf0kzkw==", + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/alce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/alce/-/alce-1.2.0.tgz", + "integrity": "sha512-XppPf2S42nO2WhvKzlwzlfcApcXHzjlod30pKmcWjRgLOtqoe5DMuqdiYoM6AgyXksc6A6pV4v1L/WW217e57w==", + "license": "MIT", + "dependencies": { + "esprima": "^1.2.0", + "estraverse": "^1.5.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/alce/node_modules/esprima": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz", + "integrity": "sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/alce/node_modules/estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ali-oss": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/ali-oss/-/ali-oss-6.20.0.tgz", + "integrity": "sha512-TzFXgGlw81sy2JvcCveSYsa2b2+6kv+HA6WTc+cXg6bu8nUAmVPfncRGbn3x2getSOniOFA+TyGy3V4l3Fks+Q==", + "license": "MIT", + "dependencies": { + "address": "^1.2.2", + "agentkeepalive": "^3.4.1", + "bowser": "^1.6.0", + "copy-to": "^2.0.1", + "dateformat": "^2.0.0", + "debug": "^4.3.4", + "destroy": "^1.0.4", + "end-or-error": "^1.0.1", + "get-ready": "^1.0.0", + "humanize-ms": "^1.2.0", + "is-type-of": "^1.4.0", + "js-base64": "^2.5.2", + "jstoxml": "^2.0.0", + "lodash": "^4.17.21", + "merge-descriptors": "^1.0.1", + "mime": "^2.4.5", + "platform": "^1.3.1", + "pump": "^3.0.0", + "qs": "^6.4.0", + "sdk-base": "^2.0.1", + "stream-http": "2.8.2", + "stream-wormhole": "^1.0.4", + "urllib": "2.41.0", + "utility": "^1.18.0", + "xml2js": "^0.6.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ali-oss/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/ali-oss/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/ali-oss/node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", + "license": "MIT" + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" + }, + "node_modules/archiver": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", + "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.4", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "license": "MIT", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "license": "MIT", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/assert-never": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.3.0.tgz", + "integrity": "sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ==", + "license": "MIT" + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atomically": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.0.3.tgz", + "integrity": "sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==", + "dependencies": { + "stubborn-fs": "^1.2.5", + "when-exit": "^2.1.1" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.1.tgz", + "integrity": "sha512-+H+kuK34PfMaI9PNU/NSjBKL5hh/KDM9J72kwYeYEm0A8B1AC4fuCy3qsjnA7lxklgyXsB68yn8Z2xoZEjgwCQ==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aws4": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "license": "MIT", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", + "license": "MIT" + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "license": "MIT" + }, + "node_modules/bull": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/bull/-/bull-4.16.0.tgz", + "integrity": "sha512-dgHRLULPexLkpm9wP/7F7Vlf2fdvmffdwhv3Bqu5lFhO+XDDJ4yGqlTPE61Jj1zM8CgchLmJEgIfe7y69jtuOg==", + "license": "MIT", + "dependencies": { + "cron-parser": "^4.2.1", + "get-port": "^5.1.1", + "ioredis": "^5.3.2", + "lodash": "^4.17.21", + "msgpackr": "^1.10.1", + "semver": "^7.5.2", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/bull/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-manager-redis-store": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cache-manager-redis-store/-/cache-manager-redis-store-3.0.1.tgz", + "integrity": "sha512-o560kw+dFqusC9lQJhcm6L2F2fMKobJ5af+FoR2PdnMVdpQ3f3Bz6qzvObTGyvoazQJxjQNWgMQeChP4vRTuXQ==", + "license": "MIT", + "dependencies": { + "redis": "^4.3.1" + }, + "engines": { + "node": ">= 16.18.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001650", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", + "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" + }, + "node_modules/centra": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/centra/-/centra-2.7.0.tgz", + "integrity": "sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6" + } + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "license": "MIT/X11", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chance": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.9.tgz", + "integrity": "sha512-TfxnA/DcZXRTA4OekA2zL9GH8qscbbl6X0ZqU4tXhGveVY/mXWvEQLt5GwZcYXTEyEFflVtj+pG8nc8EwSm1RQ==", + "license": "MIT" + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "license": "MIT", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/chatgpt-ai-web": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chatgpt-ai-web/-/chatgpt-ai-web-1.0.0.tgz", + "integrity": "sha512-AXgwlEtnlB4aqpINgWC8cnjD2KexNI6Oy9aFBjXaCBIcZIh+45NZ4rZe7oDSbpN+Sb5ghWAXVP28TBo5hyv2CA==", + "license": "MIT", + "dependencies": { + "@dqbd/tiktoken": "^1.0.7", + "cac": "^6.7.14", + "conf": "^11.0.1", + "eventsource-parser": "^1.0.0", + "keyv": "^4.5.2", + "p-timeout": "^6.1.1", + "quick-lru": "^6.1.1", + "read-pkg-up": "^9.1.0", + "uuid": "^9.0.0" + }, + "bin": { + "chatgpt-ai-web": "bin/cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", + "license": "MIT" + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "license": "MIT", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "license": "MIT" + }, + "node_modules/cli-highlight/node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "license": "MIT", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/cli-highlight/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compress-commons": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", + "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/conf": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/conf/-/conf-11.0.2.tgz", + "integrity": "sha512-jjyhlQ0ew/iwmtwsS2RaB6s8DBifcE2GYBEaw2SJDUY/slJJbNfY4GlDVzOs/ff8cM/Wua5CikqXgbFl5eu85A==", + "license": "MIT", + "dependencies": { + "ajv": "^8.12.0", + "ajv-formats": "^2.1.1", + "atomically": "^2.0.0", + "debounce-fn": "^5.1.2", + "dot-prop": "^7.2.0", + "env-paths": "^3.0.0", + "json-schema-typed": "^8.0.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "license": "MIT" + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "license": "MIT" + }, + "node_modules/copy-to": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz", + "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==", + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cos-nodejs-sdk-v5": { + "version": "2.14.4", + "resolved": "https://registry.npmjs.org/cos-nodejs-sdk-v5/-/cos-nodejs-sdk-v5-2.14.4.tgz", + "integrity": "sha512-PNsk8wdHI2ij6ybBjU5ZKMieo0cqriMNDsKScoKeFEY8IxUaSd1oyFCs0uS1Rt7wPSQRSm/OONjNOJbd5OqZbg==", + "license": "ISC", + "dependencies": { + "conf": "^9.0.0", + "fast-xml-parser": "4.2.5", + "mime-types": "^2.1.24", + "request": "^2.88.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/ajv": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz", + "integrity": "sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/ajv-formats": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-1.6.1.tgz", + "integrity": "sha512-4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==", + "license": "MIT", + "dependencies": { + "ajv": "^7.0.0" + }, + "peerDependencies": { + "ajv": "^7.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "license": "MIT", + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/conf": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/conf/-/conf-9.0.2.tgz", + "integrity": "sha512-rLSiilO85qHgaTBIIHQpsv8z+NnVfZq3cKuYNCXN1AOqPzced0GWZEe/A517VldRLyQYXUMyV+vszavE2jSAqw==", + "license": "MIT", + "dependencies": { + "ajv": "^7.0.3", + "ajv-formats": "^1.5.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.0", + "json-schema-typed": "^7.0.3", + "make-dir": "^3.1.0", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", + "license": "BSD-2-Clause" + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/cos-nodejs-sdk-v5/node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", + "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/cron": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/cron/-/cron-2.3.1.tgz", + "integrity": "sha512-1eRRlIT0UfIqauwbG9pkg3J6CX9A6My2ytJWqAXoK0T9oJnUZTzGBNPxao0zjodIbPgf8UQWjE62BMb9eVllSQ==", + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" + } + }, + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha512-GODcnWq3YGoTnygPfi02ygEiRxqUxpJwuRHjdhJYuxpcZmDq4rjBiXYmbCCzStxo176ixfLT6i4NPwQooRySnw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/dayjs": { + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", + "license": "MIT" + }, + "node_modules/debounce-fn": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-5.1.2.tgz", + "integrity": "sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-user-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz", + "integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==", + "license": "MIT", + "dependencies": { + "os-name": "~1.0.3" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/default-user-agent/node_modules/os-name": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz", + "integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==", + "license": "MIT", + "dependencies": { + "osx-release": "^1.0.0", + "win-release": "^1.0.0" + }, + "bin": { + "os-name": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==", + "optional": true, + "peer": true, + "dependencies": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/dicer/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/dicer/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/dicer/node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/dicer/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/digest-header": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/digest-header/-/digest-header-1.1.0.tgz", + "integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg==", + "license": "MIT", + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/display-notification": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/display-notification/-/display-notification-2.0.0.tgz", + "integrity": "sha512-TdmtlAcdqy1NU+j7zlkDdMnCL878zriLaBmoD9quOoq1ySSSGv03l0hXK5CvIFZlIfFI/hizqdQuW+Num7xuhw==", + "license": "MIT", + "dependencies": { + "escape-string-applescript": "^1.0.0", + "run-applescript": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz", + "integrity": "sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==", + "license": "MIT", + "dependencies": { + "type-fest": "^2.11.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding-japanese": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.1.0.tgz", + "integrity": "sha512-58XySVxUgVlBikBTbQ8WdDxBDHIdXucB16LO5PBHR8t75D54wQrNo4cg+58+R1CtJfKnsVsvt9XlteRaR8xw1w==", + "license": "MIT", + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/end-or-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/end-or-error/-/end-or-error-1.0.1.tgz", + "integrity": "sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ==", + "license": "MIT", + "engines": { + "node": ">= 0.11.14" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz", + "integrity": "sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-applescript": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/escape-string-applescript/-/escape-string-applescript-1.0.0.tgz", + "integrity": "sha512-4/hFwoYaC6TkpDn9A3pTC52zQPArFeXuIfhUtCGYdauTzXVP9H3BDr3oO/QzQehMpLDC7srvYgfwvImPFGfvBA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz", + "integrity": "sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==", + "license": "MIT", + "engines": { + "node": ">=14.18" + } + }, + "node_modules/exceljs": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.4.0.tgz", + "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", + "license": "MIT", + "dependencies": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.10.1", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/exceljs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==" + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-xml-bodyparser": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/express-xml-bodyparser/-/express-xml-bodyparser-0.3.0.tgz", + "integrity": "sha512-biHFKaZsPZQaf6H+xB8f8aawqe4c671JIF2RN8f3k9iOtPe8TVBb4H8tQkURFWFpGic53TCD5+uno9u52hdYoA==", + "license": "MIT", + "dependencies": { + "xml2js": "^0.4.11" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/express-xml-bodyparser/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/extend-object/-/extend-object-1.0.0.tgz", + "integrity": "sha512-0dHDIXC7y7LDmCh/lp1oYkmv73K25AMugQI07r8eFopkW6f7Ufn1q+ETMsJjnV9Am14SlElkqy3O92r6xEaxPw==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "license": "MIT", + "dependencies": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, + "node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "16.5.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", + "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", + "license": "MIT", + "dependencies": { + "readable-web-to-node-stream": "^3.0.0", + "strtok3": "^6.2.4", + "token-types": "^4.1.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fixpack": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fixpack/-/fixpack-4.0.0.tgz", + "integrity": "sha512-5SM1+H2CcuJ3gGEwTiVo/+nd/hYpNj9Ch3iMDOQ58ndY+VGQ2QdvaUTkd3otjZvYnd/8LF/HkJ5cx7PBq0orCQ==", + "license": "MIT", + "dependencies": { + "alce": "1.2.0", + "chalk": "^3.0.0", + "detect-indent": "^6.0.0", + "detect-newline": "^3.1.0", + "extend-object": "^1.0.0", + "rc": "^1.2.8" + }, + "bin": { + "fixpack": "bin/fixpack" + } + }, + "node_modules/fixpack/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==", + "license": "Apache2" + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", + "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/formidable": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", + "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "license": "MIT", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0", + "qs": "^6.11.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/formstream": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/formstream/-/formstream-1.5.1.tgz", + "integrity": "sha512-q7ORzFqotpwn3Y/GBK2lK7PjtZZwJHz9QE9Phv8zb5IrL9ftGLyi2zjGURON3voK8TaZ+mqJKERYN4lrHYTkUQ==", + "license": "MIT", + "dependencies": { + "destroy": "^1.0.4", + "mime": "^2.5.2", + "node-hex": "^1.0.1", + "pause-stream": "~0.0.11" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "dev": true, + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fstream/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "license": "MIT", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-ready": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz", + "integrity": "sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw==", + "license": "MIT" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gifwrap": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.10.1.tgz", + "integrity": "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw==", + "license": "MIT", + "dependencies": { + "image-q": "^4.0.0", + "omggif": "^1.0.10" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/guid-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==", + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hbs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.2.0.tgz", + "integrity": "sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==", + "license": "MIT", + "dependencies": { + "handlebars": "4.7.7", + "walk": "2.3.15" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/hbs/node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hbs/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-minifier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "license": "MIT", + "dependencies": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/html-to-text": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz", + "integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==", + "license": "MIT", + "dependencies": { + "@selderee/plugin-htmlparser2": "^0.11.0", + "deepmerge": "^4.3.1", + "dom-serializer": "^2.0.0", + "htmlparser2": "^8.0.2", + "selderee": "^0.11.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/httpx": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/httpx/-/httpx-2.3.2.tgz", + "integrity": "sha512-ZG7QArW/BB/opy+XVp/zSJYdiPD9FTmPb3VfMnPdAknKFJq2OiIXS9D4oBeDJvWnZnJAzXDy9J/JKATXkJ7qlw==", + "license": "MIT", + "dependencies": { + "@types/node": "^20", + "debug": "^4.1.1" + } + }, + "node_modules/httpx/node_modules/@types/node": { + "version": "20.14.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz", + "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/httpx/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/httpx/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-q": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz", + "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==", + "license": "MIT", + "dependencies": { + "@types/node": "16.9.1" + } + }, + "node_modules/image-q/node_modules/@types/node": { + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz", + "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", + "license": "MIT" + }, + "node_modules/image-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/inversify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.0.1.tgz", + "integrity": "sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==", + "license": "MIT" + }, + "node_modules/ioredis": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.1.tgz", + "integrity": "sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==", + "license": "MIT", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ioredis/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/ioredis/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "license": "MIT" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-class-hotfix": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz", + "integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "license": "MIT" + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-type-of": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/is-type-of/-/is-type-of-1.4.0.tgz", + "integrity": "sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==", + "license": "MIT", + "dependencies": { + "core-util-is": "^1.0.2", + "is-class-hotfix": "~0.0.6", + "isstream": "~0.1.2" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isomorphic-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "license": "ISC", + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/javascript-obfuscator": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.1.1.tgz", + "integrity": "sha512-gt+KZpIIrrxXHEQGD8xZrL8mTRwRY0U76/xz/YX0gZdPrSqQhT/c7dYLASlLlecT3r+FxE7je/+C0oLnTDCx4A==", + "hasInstallScript": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/escodegen": "2.3.0", + "@javascript-obfuscator/estraverse": "5.4.0", + "acorn": "8.8.2", + "assert": "2.0.0", + "chalk": "4.1.2", + "chance": "1.1.9", + "class-validator": "0.14.1", + "commander": "10.0.0", + "eslint-scope": "7.1.1", + "eslint-visitor-keys": "3.3.0", + "fast-deep-equal": "3.1.3", + "inversify": "6.0.1", + "js-string-escape": "1.0.1", + "md5": "2.3.0", + "mkdirp": "2.1.3", + "multimatch": "5.0.0", + "opencollective-postinstall": "2.0.3", + "process": "0.11.10", + "reflect-metadata": "0.1.13", + "source-map-support": "0.5.21", + "string-template": "1.0.0", + "stringz": "2.1.0", + "tslib": "2.5.0" + }, + "bin": { + "javascript-obfuscator": "bin/javascript-obfuscator" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/javascript-obfuscator" + } + }, + "node_modules/javascript-obfuscator/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/commander": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", + "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/javascript-obfuscator/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "license": "Apache-2.0" + }, + "node_modules/jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", + "import-local": "^3.0.2", + "jest-cli": "^29.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jimp": { + "version": "0.22.12", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.22.12.tgz", + "integrity": "sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==", + "license": "MIT", + "dependencies": { + "@jimp/custom": "^0.22.12", + "@jimp/plugins": "^0.22.12", + "@jimp/types": "^0.22.12", + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/jpeg-js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", + "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==", + "license": "BSD-3-Clause" + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "license": "BSD-3-Clause" + }, + "node_modules/js-beautify": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz", + "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==", + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.3.3", + "js-cookie": "^3.0.5", + "nopt": "^7.2.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json-schema-typed": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.1.tgz", + "integrity": "sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==", + "license": "BSD-2-Clause" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jstoxml": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/jstoxml/-/jstoxml-2.2.9.tgz", + "integrity": "sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw==", + "license": "MIT" + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "license": "MIT", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/juice": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/juice/-/juice-10.0.0.tgz", + "integrity": "sha512-9f68xmhGrnIi6DBkiiP3rUrQN33SEuaKu1+njX6VgMP+jwZAsnT33WIzlrWICL9matkhYu3OyrqSUP55YTIdGg==", + "license": "MIT", + "dependencies": { + "cheerio": "^1.0.0-rc.12", + "commander": "^6.1.0", + "mensch": "^0.3.4", + "slick": "^1.12.2", + "web-resource-inliner": "^6.0.1" + }, + "bin": { + "juice": "bin/juice" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/juice/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kitx": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/kitx/-/kitx-1.3.0.tgz", + "integrity": "sha512-fhBqFlXd0GkKTB+8ayLfpzPUw+LHxZlPAukPNBD1Om7JMeInT+/PxCAf1yLagvD+VKoyWhXtJR68xQkX/a0wOQ==", + "license": "MIT" + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/leac": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz", + "integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libbase64": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.3.0.tgz", + "integrity": "sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==", + "license": "MIT" + }, + "node_modules/libmime": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.3.5.tgz", + "integrity": "sha512-nSlR1yRZ43L3cZCiWEw7ali3jY29Hz9CQQ96Oy+sSspYnIP5N54ucOPHqooBsXzwrX1pwn13VUE05q4WmzfaLg==", + "license": "MIT", + "dependencies": { + "encoding-japanese": "2.1.0", + "iconv-lite": "0.6.3", + "libbase64": "1.3.0", + "libqp": "2.1.0" + } + }, + "node_modules/libmime/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.5.tgz", + "integrity": "sha512-TwHR5BZxGRODtAfz03szucAkjT5OArXr+94SMtAM2pYXIlQNVMrxvb6uSCbnaJJV6QXEyICk7+l6QPgn72WHhg==", + "license": "MIT" + }, + "node_modules/libqp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-2.1.0.tgz", + "integrity": "sha512-O6O6/fsG5jiUVbvdgT7YX3xY3uIadR6wEZ7+vy9u7PKHAlSEB6blvC1o5pHBjgsi95Uo0aiBBdkyFecj6jtb7A==", + "license": "MIT" + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", + "license": "ISC" + }, + "node_modules/load-bmfont": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.2.tgz", + "integrity": "sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==", + "license": "MIT", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^3.7.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-bmfont/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "license": "MIT" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "license": "MIT" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "license": "MIT" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "license": "MIT" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "license": "MIT" + }, + "node_modules/lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "license": "MIT" + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", + "license": "MIT" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "license": "Apache-2.0" + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/macos-release": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", + "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mailparser": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-3.7.1.tgz", + "integrity": "sha512-RCnBhy5q8XtB3mXzxcAfT1huNqN93HTYYyL6XawlIKycfxM/rXPg9tXoZ7D46+SgCS1zxKzw+BayDQSvncSTTw==", + "license": "MIT", + "dependencies": { + "encoding-japanese": "2.1.0", + "he": "1.2.0", + "html-to-text": "9.0.5", + "iconv-lite": "0.6.3", + "libmime": "5.3.5", + "linkify-it": "5.0.0", + "mailsplit": "5.4.0", + "nodemailer": "6.9.13", + "punycode.js": "2.3.1", + "tlds": "1.252.0" + } + }, + "node_modules/mailparser/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mailparser/node_modules/nodemailer": { + "version": "6.9.13", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.13.tgz", + "integrity": "sha512-7o38Yogx6krdoBf3jCAqnIN4oSQFx+fMa0I7dK1D+me9kBxx12D+/33wSb+fhOCtIxvYJ+4x4IMEhmhCKfAiOA==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/mailsplit": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-5.4.0.tgz", + "integrity": "sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==", + "license": "(MIT OR EUPL-1.1+)", + "dependencies": { + "libbase64": "1.2.1", + "libmime": "5.2.0", + "libqp": "2.0.1" + } + }, + "node_modules/mailsplit/node_modules/encoding-japanese": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-2.0.0.tgz", + "integrity": "sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==", + "license": "MIT", + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/mailsplit/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mailsplit/node_modules/libbase64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.2.1.tgz", + "integrity": "sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==", + "license": "MIT" + }, + "node_modules/mailsplit/node_modules/libmime": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-5.2.0.tgz", + "integrity": "sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw==", + "license": "MIT", + "dependencies": { + "encoding-japanese": "2.0.0", + "iconv-lite": "0.6.3", + "libbase64": "1.2.1", + "libqp": "2.0.1" + } + }, + "node_modules/mailsplit/node_modules/libqp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-2.0.1.tgz", + "integrity": "sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==", + "license": "MIT" + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "devOptional": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mensch": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", + "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==", + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mjml": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml/-/mjml-4.15.3.tgz", + "integrity": "sha512-bW2WpJxm6HS+S3Yu6tq1DUPFoTxU9sPviUSmnL7Ua+oVO3WA5ILFWqvujUlz+oeuM+HCwEyMiP5xvKNPENVjYA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "mjml-cli": "4.15.3", + "mjml-core": "4.15.3", + "mjml-migrate": "4.15.3", + "mjml-preset-core": "4.15.3", + "mjml-validator": "4.15.3" + }, + "bin": { + "mjml": "bin/mjml" + } + }, + "node_modules/mjml-accordion": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-accordion/-/mjml-accordion-4.15.3.tgz", + "integrity": "sha512-LPNVSj1LyUVYT9G1gWwSw3GSuDzDsQCu0tPB2uDsq4VesYNnU6v3iLCQidMiR6azmIt13OEozG700ygAUuA6Ng==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-body": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-body/-/mjml-body-4.15.3.tgz", + "integrity": "sha512-7pfUOVPtmb0wC+oUOn4xBsAw4eT5DyD6xqaxj/kssu6RrFXOXgJaVnDPAI9AzIvXJ/5as9QrqRGYAddehwWpHQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-button": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-button/-/mjml-button-4.15.3.tgz", + "integrity": "sha512-79qwn9AgdGjJR1vLnrcm2rq2AsAZkKC5JPwffTMG+Nja6zGYpTDZFZ56ekHWr/r1b5WxkukcPj2PdevUug8c+Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-carousel": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-carousel/-/mjml-carousel-4.15.3.tgz", + "integrity": "sha512-3ju6I4l7uUhPRrJfN3yK9AMsfHvrYbRkcJ1GRphFHzUj37B2J6qJOQUpzA547Y4aeh69TSb7HFVf1t12ejQxVw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-cli": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-cli/-/mjml-cli-4.15.3.tgz", + "integrity": "sha512-+V2TDw3tXUVEptFvLSerz125C2ogYl8klIBRY1m5BHd4JvGVf3yhx8N3PngByCzA6PGcv/eydGQN+wy34SHf0Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "chokidar": "^3.0.0", + "glob": "^10.3.10", + "html-minifier": "^4.0.0", + "js-beautify": "^1.6.14", + "lodash": "^4.17.21", + "minimatch": "^9.0.3", + "mjml-core": "4.15.3", + "mjml-migrate": "4.15.3", + "mjml-parser-xml": "4.15.3", + "mjml-validator": "4.15.3", + "yargs": "^17.7.2" + }, + "bin": { + "mjml-cli": "bin/mjml" + } + }, + "node_modules/mjml-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mjml-cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mjml-column": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-column/-/mjml-column-4.15.3.tgz", + "integrity": "sha512-hYdEFdJGHPbZJSEysykrevEbB07yhJGSwfDZEYDSbhQQFjV2tXrEgYcFD5EneMaowjb55e3divSJxU4c5q4Qgw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-core": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-core/-/mjml-core-4.15.3.tgz", + "integrity": "sha512-Dmwk+2cgSD9L9GmTbEUNd8QxkTZtW9P7FN/ROZW/fGZD6Hq6/4TB0zEspg2Ow9eYjZXO2ofOJ3PaQEEShKV0kQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "cheerio": "1.0.0-rc.12", + "detect-node": "^2.0.4", + "html-minifier": "^4.0.0", + "js-beautify": "^1.6.14", + "juice": "^10.0.0", + "lodash": "^4.17.21", + "mjml-migrate": "4.15.3", + "mjml-parser-xml": "4.15.3", + "mjml-validator": "4.15.3" + } + }, + "node_modules/mjml-divider": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-divider/-/mjml-divider-4.15.3.tgz", + "integrity": "sha512-vh27LQ9FG/01y0b9ntfqm+GT5AjJnDSDY9hilss2ixIUh0FemvfGRfsGVeV5UBVPBKK7Ffhvfqc7Rciob9Spzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-group": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-group/-/mjml-group-4.15.3.tgz", + "integrity": "sha512-HSu/rKnGZVKFq3ciT46vi1EOy+9mkB0HewO4+P6dP/Y0UerWkN6S3UK11Cxsj0cAp0vFwkPDCdOeEzRdpFEkzA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head/-/mjml-head-4.15.3.tgz", + "integrity": "sha512-o3mRuuP/MB5fZycjD3KH/uXsnaPl7Oo8GtdbJTKtH1+O/3pz8GzGMkscTKa97l03DAG2EhGrzzLcU2A6eshwFw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-attributes": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-attributes/-/mjml-head-attributes-4.15.3.tgz", + "integrity": "sha512-2ISo0r5ZKwkrvJgDou9xVPxxtXMaETe2AsAA02L89LnbB2KC0N5myNsHV0sEysTw9+CfCmgjAb0GAI5QGpxKkQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-breakpoint": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-breakpoint/-/mjml-head-breakpoint-4.15.3.tgz", + "integrity": "sha512-Eo56FA5C2v6ucmWQL/JBJ2z641pLOom4k0wP6CMZI2utfyiJ+e2Uuinj1KTrgDcEvW4EtU9HrfAqLK9UosLZlg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-font": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-font/-/mjml-head-font-4.15.3.tgz", + "integrity": "sha512-CzV2aDPpiNIIgGPHNcBhgyedKY4SX3BJoTwOobSwZVIlEA6TAWB4Z9WwFUmQqZOgo1AkkiTHPZQvGcEhFFXH6g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-html-attributes": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-html-attributes/-/mjml-head-html-attributes-4.15.3.tgz", + "integrity": "sha512-MDNDPMBOgXUZYdxhosyrA2kudiGO8aogT0/cODyi2Ed9o/1S7W+je11JUYskQbncqhWKGxNyaP4VWa+6+vUC/g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-preview": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-preview/-/mjml-head-preview-4.15.3.tgz", + "integrity": "sha512-J2PxCefUVeFwsAExhrKo4lwxDevc5aKj888HBl/wN4EuWOoOg06iOGCxz4Omd8dqyFsrqvbBuPqRzQ+VycGmaA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-style": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-style/-/mjml-head-style-4.15.3.tgz", + "integrity": "sha512-9J+JuH+mKrQU65CaJ4KZegACUgNIlYmWQYx3VOBR/tyz+8kDYX7xBhKJCjQ1I4wj2Tvga3bykd89Oc2kFZ5WOw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-head-title": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-head-title/-/mjml-head-title-4.15.3.tgz", + "integrity": "sha512-IM59xRtsxID4DubQ0iLmoCGXguEe+9BFG4z6y2xQDrscIa4QY3KlfqgKGT69ojW+AVbXXJPEVqrAi4/eCsLItQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-hero": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-hero/-/mjml-hero-4.15.3.tgz", + "integrity": "sha512-9cLAPuc69yiuzNrMZIN58j+HMK1UWPaq2i3/Fg2ZpimfcGFKRcPGCbEVh0v+Pb6/J0+kf8yIO0leH20opu3AyQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-image": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-image/-/mjml-image-4.15.3.tgz", + "integrity": "sha512-g1OhSdofIytE9qaOGdTPmRIp7JsCtgO0zbsn1Fk6wQh2gEL55Z40j/VoghslWAWTgT2OHFdBKnMvWtN6U5+d2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-migrate": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-migrate/-/mjml-migrate-4.15.3.tgz", + "integrity": "sha512-sr/+35RdxZroNQVegjpfRHJ5hda9XCgaS4mK2FGO+Mb1IUevKfeEPII3F/cHDpNwFeYH3kAgyqQ22ClhGLWNBA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "js-beautify": "^1.6.14", + "lodash": "^4.17.21", + "mjml-core": "4.15.3", + "mjml-parser-xml": "4.15.3", + "yargs": "^17.7.2" + }, + "bin": { + "migrate": "lib/cli.js" + } + }, + "node_modules/mjml-navbar": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-navbar/-/mjml-navbar-4.15.3.tgz", + "integrity": "sha512-VsKH/Jdlf8Yu3y7GpzQV5n7JMdpqvZvTSpF6UQXL0PWOm7k6+LX+sCZimOfpHJ+wCaaybpxokjWZ71mxOoCWoA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-parser-xml": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-parser-xml/-/mjml-parser-xml-4.15.3.tgz", + "integrity": "sha512-Tz0UX8/JVYICLjT+U8J1f/TFxIYVYjzZHeh4/Oyta0pLpRLeZlxEd71f3u3kdnulCKMP4i37pFRDmyLXAlEuLw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "detect-node": "2.1.0", + "htmlparser2": "^9.1.0", + "lodash": "^4.17.15" + } + }, + "node_modules/mjml-parser-xml/node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/mjml-preset-core": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-preset-core/-/mjml-preset-core-4.15.3.tgz", + "integrity": "sha512-1zZS8P4O0KweWUqNS655+oNnVMPQ1Rq1GaZq5S9JfwT1Vh/m516lSmiTW9oko6gGHytt5s6Yj6oOeu5Zm8FoLw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "mjml-accordion": "4.15.3", + "mjml-body": "4.15.3", + "mjml-button": "4.15.3", + "mjml-carousel": "4.15.3", + "mjml-column": "4.15.3", + "mjml-divider": "4.15.3", + "mjml-group": "4.15.3", + "mjml-head": "4.15.3", + "mjml-head-attributes": "4.15.3", + "mjml-head-breakpoint": "4.15.3", + "mjml-head-font": "4.15.3", + "mjml-head-html-attributes": "4.15.3", + "mjml-head-preview": "4.15.3", + "mjml-head-style": "4.15.3", + "mjml-head-title": "4.15.3", + "mjml-hero": "4.15.3", + "mjml-image": "4.15.3", + "mjml-navbar": "4.15.3", + "mjml-raw": "4.15.3", + "mjml-section": "4.15.3", + "mjml-social": "4.15.3", + "mjml-spacer": "4.15.3", + "mjml-table": "4.15.3", + "mjml-text": "4.15.3", + "mjml-wrapper": "4.15.3" + } + }, + "node_modules/mjml-raw": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-raw/-/mjml-raw-4.15.3.tgz", + "integrity": "sha512-IGyHheOYyRchBLiAEgw3UM11kFNmBSMupu2BDdejC6ZiDhEAdG+tyERlsCwDPYtXanvFpGWULIu3XlsUPc+RZw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-section": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-section/-/mjml-section-4.15.3.tgz", + "integrity": "sha512-JfVPRXH++Hd933gmQfG8JXXCBCR6fIzC3DwiYycvanL/aW1cEQ2EnebUfQkt5QzlYjOkJEH+JpccAsq3ln6FZQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-social": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-social/-/mjml-social-4.15.3.tgz", + "integrity": "sha512-7sD5FXrESOxpT9Z4Oh36bS6u/geuUrMP1aCg2sjyAwbPcF1aWa2k9OcatQfpRf6pJEhUZ18y6/WBBXmMVmSzXg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-spacer": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-spacer/-/mjml-spacer-4.15.3.tgz", + "integrity": "sha512-3B7Qj+17EgDdAtZ3NAdMyOwLTX1jfmJuY7gjyhS2HtcZAmppW+cxqHUBwCKfvSRgTQiccmEvtNxaQK+tfyrZqA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-table": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-table/-/mjml-table-4.15.3.tgz", + "integrity": "sha512-FLx7DcRKTdKdcOCbMyBaeudeHaHpwPveRrBm6WyQe3LXx6FfdmOh59i71/16LFQMgBOD3N4/UJkzxLzlTJzMqQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-text": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-text/-/mjml-text-4.15.3.tgz", + "integrity": "sha512-+C0hxCmw9kg0XzT6vhE5mFkK6y225nC8UEQcN94K0fBCjPKkM+HqZMwGX205fzdGRi+Bxa55b/VhrIVwdv+8vw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3" + } + }, + "node_modules/mjml-validator": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-validator/-/mjml-validator-4.15.3.tgz", + "integrity": "sha512-Xb72KdqRwjv/qM2rJpV22syyP2N3cRQ9VVDrN6u2FSzLq02buFNxmSPJ7CKhat3PrUNdVHU75KZwOf/tz4UEhA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9" + } + }, + "node_modules/mjml-wrapper": { + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/mjml-wrapper/-/mjml-wrapper-4.15.3.tgz", + "integrity": "sha512-ditsCijeHJrmBmObtJmQ18ddLxv5oPyMTdPU8Di8APOnD2zPk7Z4UAuJSl7HXB45oFiivr3MJf4koFzMUSZ6Gg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "lodash": "^4.17.21", + "mjml-core": "4.15.3", + "mjml-section": "4.15.3" + } + }, + "node_modules/mkdirp": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.3.tgz", + "integrity": "sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/msgpackr": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", + "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/multer": { + "version": "1.4.4-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4-lts.1.tgz", + "integrity": "sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==", + "license": "MIT", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/multer/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/mysql2": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.0.tgz", + "integrity": "sha512-J9phbsXGvTOcRVPR95YedzVSxJecpW5A5+cQ57rhHIFXteTP10HCs+VBjS7DHIKfEaI1zQ5tlVrquCd64A6YvA==", + "license": "MIT", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "license": "ISC", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "license": "MIT", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/nestjs-config": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/nestjs-config/-/nestjs-config-1.4.11.tgz", + "integrity": "sha512-iWwN8JtdL4caafB8ek0tBXqz+SbEfJLFgyftdITjsZRT3W4CTCaw6FUiMpeCkxAjSCrNP6ZdTdryfr1n9k+f1A==", + "license": "MIT", + "dependencies": { + "@types/node": "^16.9.6", + "dotenv": "^10.0.0", + "glob": "^7.1.2", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependencies": { + "@nestjs/common": "^5.1.0 || ^6.0.3 || ^7.0.1 || ^8.0.0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/nestjs-config/node_modules/@types/node": { + "version": "16.18.104", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.104.tgz", + "integrity": "sha512-OF3keVCbfPlkzxnnDBUZJn1RiCJzKeadjiW0xTEb0G1SUJ5gDVb3qnzZr2T4uIFvsbKJbXy1v2DN7e2zaEY7jQ==", + "license": "MIT" + }, + "node_modules/nestjs-config/node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/nestjs-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nestjs-rate-limiter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/nestjs-rate-limiter/-/nestjs-rate-limiter-3.1.0.tgz", + "integrity": "sha512-Qwr6daFvNppy038rs0iCQzX/uC3/czCC/2jATcETLIvyFmcBgySOMg7HGEquPKUZDX9lbc06Tn9L6U3QZS13HQ==", + "license": "MIT", + "dependencies": { + "rate-limiter-flexible": "2.1.10" + } + }, + "node_modules/nestjs-redis": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/nestjs-redis/-/nestjs-redis-1.3.3.tgz", + "integrity": "sha512-YLvWtVKP38Uica7pL8T955jPi0MFmJ4+Wj3R/IHbLpsdCJkdA9wtfO9NoUpiZpM1aO1dEGcOBoStvgb0Uy7MGA==", + "license": "MIT", + "dependencies": { + "@nestjs/common": "^7.4.4", + "@nestjs/core": "^7.4.4", + "@types/ioredis": "*", + "@types/uuid": "*", + "ioredis": "^4", + "reflect-metadata": "*", + "rxjs": "^6", + "uuid": "^8" + } + }, + "node_modules/nestjs-redis/node_modules/@nestjs/common": { + "version": "7.6.18", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.18.tgz", + "integrity": "sha512-BUJQHNhWzwWOkS4Ryndzd4HTeRObcAWV2Fh+ermyo3q3xYQQzNoEWclJVL/wZec8AONELwIJ+PSpWI53VP0leg==", + "license": "MIT", + "dependencies": { + "axios": "0.21.1", + "iterare": "1.2.1", + "tslib": "2.2.0", + "uuid": "8.3.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "*", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^6.0.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/nestjs-redis/node_modules/@nestjs/core": { + "version": "7.6.18", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-7.6.18.tgz", + "integrity": "sha512-CGu20OjIxgFDY7RJT5t1TDGL8wSlTSlbZEkn8U5OlICZEB3WIpi98G7ajJpnRWmEgW8S4aDJmRKGjT+Ntj5U4A==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.0.7", + "iterare": "1.2.1", + "object-hash": "2.1.1", + "path-to-regexp": "3.2.0", + "tslib": "2.2.0", + "uuid": "8.3.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^7.0.0", + "@nestjs/microservices": "^7.0.0", + "@nestjs/platform-express": "^7.0.0", + "@nestjs/websockets": "^7.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^6.0.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/nestjs-redis/node_modules/@nestjs/platform-express": { + "version": "7.6.18", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-7.6.18.tgz", + "integrity": "sha512-Dty2bBhsW7EInMRPS1pkXKJ3GBBusEj6fnEpb0UfkaT3E7asay9c64kCmZE+8hU430qQjY+fhBb1RNWWPnUiwQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "body-parser": "1.19.0", + "cors": "2.8.5", + "express": "4.17.1", + "multer": "1.4.2", + "tslib": "2.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^7.0.0", + "@nestjs/core": "^7.0.0" + } + }, + "node_modules/nestjs-redis/node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.10.0" + } + }, + "node_modules/nestjs-redis/node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/nestjs-redis/node_modules/busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==", + "optional": true, + "peer": true, + "dependencies": { + "dicer": "0.2.5", + "readable-stream": "1.1.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nestjs-redis/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/nestjs-redis/node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nestjs-redis/node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nestjs-redis/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/nestjs-redis/node_modules/denque": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/nestjs-redis/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nestjs-redis/node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/nestjs-redis/node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "license": "MIT" + }, + "node_modules/nestjs-redis/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/nestjs-redis/node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nestjs-redis/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/ioredis": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.28.5.tgz", + "integrity": "sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==", + "license": "MIT", + "dependencies": { + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.1", + "denque": "^1.1.0", + "lodash.defaults": "^4.2.0", + "lodash.flatten": "^4.4.0", + "lodash.isarguments": "^3.1.0", + "p-map": "^2.1.0", + "redis-commands": "1.7.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/nestjs-redis/node_modules/ioredis/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nestjs-redis/node_modules/ioredis/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/nestjs-redis/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "optional": true, + "peer": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nestjs-redis/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/nestjs-redis/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "deprecated": "Multer 1.x is affected by CVE-2022-24434. This is fixed in v1.4.4-lts.1 which drops support for versions of Node.js before 6. Please upgrade to at least Node.js 6 and version 1.4.4-lts.1 of Multer. If you need support for older versions of Node.js, we are open to accepting patches that would fix the CVE on the main 1.x release line, whilst maintaining compatibility with Node.js 0.10.", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/nestjs-redis/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/nestjs-redis/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/nestjs-redis/node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/nestjs-redis/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/nestjs-redis/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/nestjs-redis/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/nestjs-redis/node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/nestjs-redis/node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/nestjs-redis/node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "license": "ISC", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nestjs-redis/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/nestjs-redis/node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/nestjs-redis/node_modules/tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "license": "0BSD" + }, + "node_modules/nestjs-redis/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-hex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/node-hex/-/node-hex-1.0.1.tgz", + "integrity": "sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/nodemailer": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.14.tgz", + "integrity": "sha512-Dobp/ebDKBvz91sbtRKhcznLThrKxKt97GI2FAlAyy+fk19j73Uz3sBXolVtmcXjaorivqsbbbjDY+Jkt4/bQA==", + "license": "MIT-0", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz", + "integrity": "sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "license": "MIT", + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/opentype.js": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-0.7.3.tgz", + "integrity": "sha512-Veui5vl2bLonFJ/SjX/WRWJT3SncgiZNnKUyahmXCc2sa1xXW15u3R/3TN5+JFiP7RsjK5ER4HA5eWaEmV9deA==", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.2" + }, + "bin": { + "ot": "bin/ot" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osx-release": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz", + "integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==", + "license": "MIT", + "dependencies": { + "minimist": "^1.1.0" + }, + "bin": { + "osx-release": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-event/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-wait-for": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", + "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", + "license": "MIT", + "dependencies": { + "p-timeout": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-wait-for/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==", + "license": "MIT" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz", + "integrity": "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==", + "license": "MIT", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.5.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseley": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz", + "integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==", + "license": "MIT", + "dependencies": { + "leac": "^0.6.0", + "peberminta": "^0.9.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/passport": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz", + "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==", + "license": "MIT", + "dependencies": { + "passport-strategy": "1.x.x", + "pause": "0.0.1", + "utils-merge": "^1.0.1" + }, + "engines": { + "node": ">= 0.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/jaredhanson" + } + }, + "node_modules/passport-jwt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.1.tgz", + "integrity": "sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==", + "license": "MIT", + "dependencies": { + "jsonwebtoken": "^9.0.0", + "passport-strategy": "^1.0.0" + } + }, + "node_modules/passport-strategy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", + "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pause": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "license": [ + "MIT", + "Apache2" + ], + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/peberminta": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz", + "integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/peek-readable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/phin": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/phin/-/phin-3.7.1.tgz", + "integrity": "sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==", + "license": "MIT", + "dependencies": { + "centra": "^2.7.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==", + "license": "ISC", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pixelmatch/node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", + "license": "MIT" + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pngjs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-6.0.0.tgz", + "integrity": "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==", + "license": "MIT", + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/preview-email": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/preview-email/-/preview-email-3.0.19.tgz", + "integrity": "sha512-DBS3Nir18YtKc8loYCCOGitmiaQ0vTdahPoiXxwNweJDpmVZo+w3tppufOhoK0m8skpRxT56llYLs3VrORnmNQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^3.8.0", + "display-notification": "2.0.0", + "fixpack": "^4.0.0", + "get-port": "5.1.1", + "mailparser": "^3.6.4", + "nodemailer": "^6.9.2", + "open": "7", + "p-event": "4.2.0", + "p-wait-for": "3.2.0", + "pug": "^3.0.2", + "uuid": "^9.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "license": "MIT" + }, + "node_modules/pug": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz", + "integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==", + "license": "MIT", + "dependencies": { + "pug-code-gen": "^3.0.3", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz", + "integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.1.0", + "pug-runtime": "^3.0.1", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "license": "MIT" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "license": "MIT", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "license": "MIT" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", + "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rate-limiter-flexible": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.1.10.tgz", + "integrity": "sha512-Pa+8TPD4xYaiCUB5K4a/+j2FHDUe4HP1g49JmKEmkOkhqPaeVqxJsZuuVaza/svSCOT+V73vtsyBiSFK/e1yXw==", + "license": "ISC" + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-pkg": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz", + "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==", + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.1", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz", + "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0", + "read-pkg": "^7.1.0", + "type-fest": "^2.5.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/read-pkg-up/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "license": "MIT", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redis": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.7.0.tgz", + "integrity": "sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==", + "license": "MIT", + "workspaces": [ + "./packages/*" + ], + "dependencies": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.6.0", + "@redis/graph": "1.1.1", + "@redis/json": "1.0.7", + "@redis/search": "1.2.0", + "@redis/time-series": "1.1.0" + } + }, + "node_modules/redis-commands": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", + "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==", + "license": "MIT" + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "license": "Apache-2.0" + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", + "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^9.2.0" + }, + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-3.2.0.tgz", + "integrity": "sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg==", + "license": "MIT", + "dependencies": { + "execa": "^0.10.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/run-applescript/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/run-applescript/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/run-applescript/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/run-applescript/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/run-applescript/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/run-applescript/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/run-applescript/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sdk-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz", + "integrity": "sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==", + "license": "MIT", + "dependencies": { + "get-ready": "~1.0.0" + } + }, + "node_modules/selderee": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", + "integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==", + "license": "MIT", + "dependencies": { + "parseley": "^0.12.0" + }, + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shelljs/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slick": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", + "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", + "license": "MIT (http://mootools.net/license.txt)", + "engines": { + "node": "*" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "license": "CC0-1.0" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-http": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", + "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-http/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-to": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz", + "integrity": "sha512-Kg1BSDTwgGiVMtTCJNlo7kk/xzL33ZuZveEBRt6rXw+f1WLK/8kmz2NVCT/Qnv0JkV85JOHcLhD82mnXsR3kPw==", + "license": "MIT", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/stream-to-buffer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz", + "integrity": "sha512-Da4WoKaZyu3nf+bIdIifh7IPkFjARBnBK+pYqn0EUJqksjV9afojjaCCHUemH30Jmu7T2qcKvlZm2ykN38uzaw==", + "license": "MIT", + "dependencies": { + "stream-to": "~0.2.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-wormhole": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz", + "integrity": "sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-template": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", + "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stringz": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz", + "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, + "node_modules/strtok3": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/stubborn-fs": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-1.2.5.tgz", + "integrity": "sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==" + }, + "node_modules/superagent": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", + "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "deprecated": "Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net", + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.4", + "debug": "^4.3.4", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.0", + "formidable": "^2.1.2", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=6.4.0 <13 || >=14" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/superagent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/supertest": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", + "integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^8.1.2" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-captcha": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/svg-captcha/-/svg-captcha-1.4.0.tgz", + "integrity": "sha512-/fkkhavXPE57zRRCjNqAP3txRCSncpMx3NnNZL7iEoyAtYwUjPhJxW6FQTQPG5UPEmCrbFoXS10C3YdJlW7PDg==", + "license": "MIT", + "dependencies": { + "opentype.js": "^0.7.3" + }, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/swagger-ui-dist": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.18.2.tgz", + "integrity": "sha512-oVBoBl9Dg+VJw8uRWDxlyUyHoNEDC0c1ysT6+Boy6CTgr2rUcLcfPon4RvxgS2/taNW6O0+US+Z/dlAsWFjOAQ==", + "license": "Apache-2.0" + }, + "node_modules/swagger-ui-express": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.3.tgz", + "integrity": "sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==", + "license": "MIT", + "dependencies": { + "swagger-ui-dist": ">=4.11.0" + }, + "engines": { + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0 || >=5.0.0-beta" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.31.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.4.tgz", + "integrity": "sha512-3OU03GgblDgu0g+sdnsVzhBPxnjV+WJuMmocN1qBBZDQ3ia7jZQSAkePeKbPlYAejGXUTYe1CmSaUeV51mvaIw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", + "license": "MIT" + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/tlds": { + "version": "1.252.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.252.0.tgz", + "integrity": "sha512-GA16+8HXvqtfEnw/DTcwB0UU354QE1n3+wh08oFjr6Znl7ZLAeUgYzCcK+/CCrOyE0vnHR8/pu3XXG3vDijXpQ==", + "license": "MIT", + "bin": { + "tlds": "bin.js" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "license": "MIT" + }, + "node_modules/token-types": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", + "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "license": "MIT/X11", + "engines": { + "node": "*" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "version": "29.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.0.3.tgz", + "integrity": "sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.1", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-loader": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz", + "integrity": "sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths-webpack-plugin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.1.tgz", + "integrity": "sha512-m5//KzLoKmqu2MVix+dgLKq70MnFi8YL8sdzQZ6DblmCdfuq/y3OqvJd5vMndg2KEVCOeNz8Es4WVZhYInteLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.7.0", + "tsconfig-paths": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tsconfig-paths-webpack-plugin/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tsconfig-paths-webpack-plugin/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/typeorm": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", + "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "license": "MIT", + "dependencies": { + "@sqltools/formatter": "^1.2.5", + "app-root-path": "^3.1.0", + "buffer": "^6.0.3", + "chalk": "^4.1.2", + "cli-highlight": "^2.1.11", + "dayjs": "^1.11.9", + "debug": "^4.3.4", + "dotenv": "^16.0.3", + "glob": "^10.3.10", + "mkdirp": "^2.1.3", + "reflect-metadata": "^0.2.1", + "sha.js": "^2.4.11", + "tslib": "^2.5.0", + "uuid": "^9.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0", + "@sap/hana-client": "^2.12.25", + "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", + "hdb-pool": "^0.1.6", + "ioredis": "^5.0.4", + "mongodb": "^5.8.0", + "mssql": "^9.1.1 || ^10.0.1", + "mysql2": "^2.2.5 || ^3.0.1", + "oracledb": "^6.3.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/typeorm/node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, + "node_modules/uglify-js": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.1.tgz", + "integrity": "sha512-y/2wiW+ceTYR2TSSptAhfnEtpLaQ4Ups5zrjB2d3kuVxHj16j/QJwPl5PvuGy9uARb39J0+iKxcRPvtpsx4A4A==", + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "license": "MIT", + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/unescape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz", + "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unzipper": { + "version": "0.10.14", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", + "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", + "license": "MIT", + "dependencies": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urllib": { + "version": "2.41.0", + "resolved": "https://registry.npmjs.org/urllib/-/urllib-2.41.0.tgz", + "integrity": "sha512-pNXdxEv52L67jahLT+/7QE+Fup1y2Gc6EdmrAhQ6OpQIC2rl14oWwv9hvk1GXOZqEnJNwRXHABuwgPOs1CtL7g==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.3.0", + "content-type": "^1.0.2", + "debug": "^2.6.9", + "default-user-agent": "^1.0.0", + "digest-header": "^1.0.0", + "ee-first": "~1.1.1", + "formstream": "^1.1.0", + "humanize-ms": "^1.2.0", + "iconv-lite": "^0.4.15", + "ip": "^1.1.5", + "pump": "^3.0.0", + "qs": "^6.4.0", + "statuses": "^1.3.1", + "utility": "^1.16.1" + }, + "engines": { + "node": ">= 0.10.0" + }, + "peerDependencies": { + "proxy-agent": "^5.0.0" + }, + "peerDependenciesMeta": { + "proxy-agent": { + "optional": true + } + } + }, + "node_modules/urllib/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/urllib/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/urllib/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/utif2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/utif2/-/utif2-4.1.0.tgz", + "integrity": "sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w==", + "license": "MIT", + "dependencies": { + "pako": "^1.0.11" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utility": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/utility/-/utility-1.18.0.tgz", + "integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==", + "license": "MIT", + "dependencies": { + "copy-to": "^2.0.1", + "escape-html": "^1.0.3", + "mkdirp": "^0.5.1", + "mz": "^2.7.0", + "unescape": "^1.0.1" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/utility/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/valid-data-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-3.0.1.tgz", + "integrity": "sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/walk": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.15.tgz", + "integrity": "sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==", + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "foreachasync": "^3.0.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-resource-inliner": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz", + "integrity": "sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==", + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "escape-goat": "^3.0.0", + "htmlparser2": "^5.0.0", + "mime": "^2.4.6", + "node-fetch": "^2.6.0", + "valid-data-url": "^3.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/web-resource-inliner/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/domutils/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + } + }, + "node_modules/web-resource-inliner/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wechatpay-node-v3": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/wechatpay-node-v3/-/wechatpay-node-v3-2.2.0.tgz", + "integrity": "sha512-jG+xl0+bNZK21cDFI5r1dXVDd1RMK+/mocxUSsDLxw1pvz+sNpp+W9SglNd412awXpTw9UgHIQuOA6+3EexsIg==", + "license": "MIT", + "dependencies": { + "@fidm/x509": "^1.2.1", + "superagent": "^8.0.6" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/when-exit": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.3.tgz", + "integrity": "sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/win-release": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", + "integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==", + "license": "MIT", + "dependencies": { + "semver": "^5.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/win-release/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/windows-release/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/windows-release/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "license": "MIT", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==", + "license": "MIT" + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", + "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", + "license": "MIT", + "dependencies": { + "archiver-utils": "^3.0.4", + "compress-commons": "^4.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "license": "MIT", + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + } + } +} diff --git a/service/package.json b/service/package.json new file mode 100644 index 0000000..bd0a54a --- /dev/null +++ b/service/package.json @@ -0,0 +1,133 @@ +{ + "name": "service", + "version": "2.6.0", + "description": "", + "author": "", + "private": true, + "license": "UNLICENSED", + "bin": "./dist/main.js", + "scripts": { + "start": "pm2 start pm2.conf.json", + "build": "nest build && npm run encrypt ", + "build:test": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "encrypt": "node ./encrypt.js", + "start:daemon": "pm2 start pm2.conf.json --no-daemon", + "dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json", + "pkg:win": "pkg . -t node16-win-x64 -o app-win --debug", + "pkg:mac": "pkg . -t node16-mac-x64 -o app-mac --debug", + "pkg:linux": "pkg . -t node16-linux-x64 -o app-linux --debug" + }, + "dependencies": { + "@alicloud/pop-core": "^1.7.13", + "@dqbd/tiktoken": "^1.0.7", + "@keyv/redis": "^2.6.1", + "@nestjs-modules/mailer": "^1.8.1", + "@nestjs/bull": "^0.6.3", + "@nestjs/common": "^9.0.0", + "@nestjs/core": "^9.0.0", + "@nestjs/jwt": "^10.0.3", + "@nestjs/passport": "^9.0.3", + "@nestjs/platform-express": "^9.4.0", + "@nestjs/schedule": "^2.2.2", + "@nestjs/serve-static": "^4.0.0", + "@nestjs/swagger": "^6.2.1", + "@nestjs/typeorm": "^9.0.1", + "@types/cache-manager-redis-store": "^2.0.1", + "abort-controller": "^3.0.0", + "ali-oss": "^6.17.1", + "axios": "^1.3.4", + "bcryptjs": "^2.4.3", + "body-parser": "^1.20.2", + "bull": "^4.10.4", + "cache-manager-redis-store": "^3.0.1", + "chatgpt-ai-web": "^1.0.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.0", + "compression": "^1.7.4", + "cos-nodejs-sdk-v5": "^2.11.19", + "dayjs": "^1.11.7", + "decimal.js": "^10.4.3", + "dotenv": "^16.0.3", + "eventsource": "^2.0.2", + "exceljs": "^4.3.0", + "express": "^4.18.2", + "express-xml-bodyparser": "^0.3.0", + "form-data": "^4.0.0", + "guid-typescript": "^1.0.9", + "hbs": "^4.2.0", + "image-size": "^1.1.1", + "ioredis": "^5.3.2", + "isomorphic-fetch": "^3.0.0", + "javascript-obfuscator": "^4.0.2", + "jimp": "^0.22.7", + "jsonwebtoken": "^9.0.0", + "keyv": "^4.5.2", + "lodash": "^4.17.21", + "mysql2": "^3.2.0", + "nestjs-config": "^1.4.10", + "nestjs-rate-limiter": "^3.1.0", + "nestjs-redis": "^1.3.3", + "node-fetch": "^3.3.1", + "nodemailer": "^6.9.1", + "passport": "^0.6.0", + "passport-jwt": "^4.0.1", + "redis": "^4.6.5", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.2.0", + "stream-to-buffer": "^0.1.0", + "svg-captcha": "^1.4.0", + "swagger-ui-express": "^4.6.2", + "typeorm": "^0.3.12", + "uuid": "^9.0.0", + "wechatpay-node-v3": "^2.1.5" + }, + "devDependencies": { + "@nestjs/cli": "^9.0.0", + "@nestjs/schematics": "^9.0.0", + "@nestjs/testing": "^9.0.0", + "@types/express": "^4.17.13", + "@types/jest": "29.2.4", + "@types/node": "18.11.18", + "@types/supertest": "^2.0.11", + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^8.0.1", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "29.3.1", + "prettier": "^2.3.2", + "source-map-support": "^0.5.20", + "supertest": "^6.1.3", + "ts-jest": "29.0.3", + "ts-loader": "^9.2.3", + "ts-node": "^10.0.0", + "tsconfig-paths": "4.1.1", + "typescript": "^4.7.4" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/service/pm2.conf.json b/service/pm2.conf.json new file mode 100644 index 0000000..4f6b3ca --- /dev/null +++ b/service/pm2.conf.json @@ -0,0 +1,19 @@ +{ + "apps": { + "name": "yiai-v2.5.0", + "script": "./dist/main.js", + "watch": true, + "ignore_watch": [ + "node_modules", + "logs" + ], + "env": { + "TZ": "Asia/Shanghai" + }, + "instances": 1, + "error_file": "logs/err.log", + "out_file": "logs/out.log", + "log_date_format": "YYYY-MM-DD HH:mm:ss", + "max_memory_restart": "2000M" + } +} diff --git a/service/pnpm-lock.yaml b/service/pnpm-lock.yaml new file mode 100644 index 0000000..8b38290 --- /dev/null +++ b/service/pnpm-lock.yaml @@ -0,0 +1,10728 @@ +lockfileVersion: 5.4 + +specifiers: + '@nestjs-modules/mailer': ^1.8.1 + '@nestjs/cli': ^9.0.0 + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + '@nestjs/jwt': ^10.0.3 + '@nestjs/passport': ^9.0.3 + '@nestjs/platform-express': ^9.4.0 + '@nestjs/schematics': ^9.0.0 + '@nestjs/swagger': ^6.2.1 + '@nestjs/testing': ^9.0.0 + '@nestjs/typeorm': ^9.0.1 + '@types/cache-manager-redis-store': ^2.0.1 + '@types/express': ^4.17.13 + '@types/jest': 29.2.4 + '@types/node': 18.11.18 + '@types/supertest': ^2.0.11 + '@typescript-eslint/eslint-plugin': ^5.0.0 + '@typescript-eslint/parser': ^5.0.0 + axios: ^1.3.4 + bcryptjs: ^2.4.3 + cache-manager: ^5.2.0 + cache-manager-redis-store: ^3.0.1 + chatgpt: ^5.2.2 + class-transformer: ^0.5.1 + class-validator: ^0.14.0 + cos-nodejs-sdk-v5: ^2.11.19 + dayjs: ^1.11.7 + dotenv: ^16.0.3 + eslint: ^8.0.1 + eslint-config-prettier: ^8.3.0 + eslint-plugin-prettier: ^4.0.0 + express: ^4.18.2 + guid-typescript: ^1.0.9 + hbs: ^4.2.0 + isomorphic-fetch: ^3.0.0 + jest: 29.3.1 + jimp: ^0.22.7 + jsonwebtoken: ^9.0.0 + lodash: ^4.17.21 + mysql2: ^3.2.0 + nestjs-config: ^1.4.10 + nestjs-redis: ^1.3.3 + nodemailer: ^6.9.1 + passport: ^0.6.0 + passport-jwt: ^4.0.1 + prettier: ^2.3.2 + redis: ^4.6.5 + reflect-metadata: ^0.1.13 + rxjs: ^7.2.0 + source-map-support: ^0.5.20 + supertest: ^6.1.3 + swagger-ui-express: ^4.6.2 + ts-jest: 29.0.3 + ts-loader: ^9.2.3 + ts-node: ^10.0.0 + tsconfig-paths: 4.1.1 + typeorm: ^0.3.12 + typescript: ^4.7.4 + uuid: ^9.0.0 + +dependencies: + '@nestjs-modules/mailer': registry.npmmirror.com/@nestjs-modules/mailer/1.8.1_jt3jpdk6bknafyfkpkeexozije + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/core': registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi + '@nestjs/jwt': registry.npmmirror.com/@nestjs/jwt/10.0.3_@nestjs+common@9.3.12 + '@nestjs/passport': registry.npmmirror.com/@nestjs/passport/9.0.3_ajy2slul3age3kopk444psnhqq + '@nestjs/platform-express': registry.npmmirror.com/@nestjs/platform-express/9.4.0_ge4qplnzbmfyi5znl534zhtkn4 + '@nestjs/swagger': registry.npmmirror.com/@nestjs/swagger/6.2.1_56wskrocvqeup2a4dyvgnvm62u + '@nestjs/typeorm': registry.npmmirror.com/@nestjs/typeorm/9.0.1_tczrxjq6l4bicygw3hjjbo47ua + '@types/cache-manager-redis-store': registry.npmmirror.com/@types/cache-manager-redis-store/2.0.1 + axios: registry.npmmirror.com/axios/1.4.0 + bcryptjs: registry.npmmirror.com/bcryptjs/2.4.3 + cache-manager: registry.npmmirror.com/cache-manager/5.2.1 + cache-manager-redis-store: registry.npmmirror.com/cache-manager-redis-store/3.0.1 + chatgpt: registry.npmmirror.com/chatgpt/5.2.3 + class-transformer: registry.npmmirror.com/class-transformer/0.5.1 + class-validator: registry.npmmirror.com/class-validator/0.14.0 + cos-nodejs-sdk-v5: registry.npmmirror.com/cos-nodejs-sdk-v5/2.12.0 + dayjs: registry.npmmirror.com/dayjs/1.11.7 + dotenv: registry.npmmirror.com/dotenv/16.0.3 + express: registry.npmmirror.com/express/4.18.2 + guid-typescript: registry.npmmirror.com/guid-typescript/1.0.9 + hbs: registry.npmmirror.com/hbs/4.2.0 + isomorphic-fetch: registry.npmmirror.com/isomorphic-fetch/3.0.0 + jimp: registry.npmmirror.com/jimp/0.22.7 + jsonwebtoken: registry.npmmirror.com/jsonwebtoken/9.0.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + mysql2: registry.npmmirror.com/mysql2/3.2.0 + nestjs-config: registry.npmmirror.com/nestjs-config/1.4.10_@nestjs+common@9.3.12 + nestjs-redis: registry.npmmirror.com/nestjs-redis/1.3.3_s5rej4fzqtcfwqauf64fv5fuwq + nodemailer: registry.npmmirror.com/nodemailer/6.9.1 + passport: registry.npmmirror.com/passport/0.6.0 + passport-jwt: registry.npmmirror.com/passport-jwt/4.0.1 + redis: registry.npmmirror.com/redis/4.6.6 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/7.8.0 + swagger-ui-express: registry.npmmirror.com/swagger-ui-express/4.6.2_express@4.18.2 + typeorm: registry.npmmirror.com/typeorm/0.3.12_4ypsa45gt7d65iggtgknlaajbi + uuid: registry.npmmirror.com/uuid/9.0.0 + +devDependencies: + '@nestjs/cli': registry.npmmirror.com/@nestjs/cli/9.3.0 + '@nestjs/schematics': registry.npmmirror.com/@nestjs/schematics/9.0.4_typescript@4.9.5 + '@nestjs/testing': registry.npmmirror.com/@nestjs/testing/9.3.12_bg77626m2llvm3jr6gcf64hq5i + '@types/express': registry.npmmirror.com/@types/express/4.17.17 + '@types/jest': registry.npmmirror.com/@types/jest/29.2.4 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + '@types/supertest': registry.npmmirror.com/@types/supertest/2.0.12 + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.57.0_x4rubgibnu7ujqspfqdeho4yiu + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.57.0_ip5up2nocltd47wbnuyybe5dxu + eslint: registry.npmmirror.com/eslint/8.37.0 + eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.8.0_eslint@8.37.0 + eslint-plugin-prettier: registry.npmmirror.com/eslint-plugin-prettier/4.2.1_ybb3aapb7235womryl2tm5ze2u + jest: registry.npmmirror.com/jest/29.3.1_zfha7dvnw4nti6zkbsmhmn6xo4 + prettier: registry.npmmirror.com/prettier/2.8.7 + source-map-support: registry.npmmirror.com/source-map-support/0.5.21 + supertest: registry.npmmirror.com/supertest/6.3.3 + ts-jest: registry.npmmirror.com/ts-jest/29.0.3_hfbqr3rujuziiw7lzul6vua4r4 + ts-loader: registry.npmmirror.com/ts-loader/9.4.2_typescript@4.9.5 + ts-node: registry.npmmirror.com/ts-node/10.9.1_bdgp3l2zgaopogaavxusmetvge + tsconfig-paths: registry.npmmirror.com/tsconfig-paths/4.1.1 + typescript: registry.npmmirror.com/typescript/4.9.5 + +packages: + + /@xtuc/long/4.2.2: + resolution: {integrity: sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=, tarball: '@xtuc/long/download/@xtuc/long-4.2.2.tgz'} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, tarball: concat-map/download/concat-map-0.0.1.tgz} + + registry.nlark.com/@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622796717993&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 + run-parallel: registry.npmmirror.com/run-parallel/1.2.0 + dev: true + + registry.nlark.com/@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha1-K/12fq4aaZb0Mv9+jX/HVnnAtqc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/download/@webassemblyjs/ast-1.11.1.tgz?cache=0&sync_timestamp=1625477735274&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.11.1.tgz} + name: '@webassemblyjs/ast' + version: 1.11.1 + dependencies: + '@webassemblyjs/helper-numbers': registry.npmmirror.com/@webassemblyjs/helper-numbers/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha1-9sYacF8P16auyqToGY8j2dwXnk8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.11.1.tgz?cache=0&sync_timestamp=1625477732294&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.11.1.tgz} + name: '@webassemblyjs/floating-point-hex-parser' + version: 1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha1-GmMZLYeI5cASgAump6RscFKI/RY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.11.1.tgz?cache=0&sync_timestamp=1625477730523&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-api-error%2Fdownload%2F%40webassemblyjs%2Fhelper-api-error-1.11.1.tgz} + name: '@webassemblyjs/helper-api-error' + version: 1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha1-gyqQDrREiEzemnytRn+BUA9eWrU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.11.1.tgz?cache=0&sync_timestamp=1625477731401&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.11.1.tgz} + name: '@webassemblyjs/helper-buffer' + version: 1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha1-8ygkHkHnsZnQsgwY6IQpxEMyleE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.11.1.tgz?cache=0&sync_timestamp=1625477731700&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.11.1.tgz} + name: '@webassemblyjs/helper-wasm-bytecode' + version: 1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha1-Ie4GWntjXzGec48N1zv72igcCXo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.11.1.tgz?cache=0&sync_timestamp=1625477735607&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.11.1.tgz} + name: '@webassemblyjs/helper-wasm-section' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-buffer': registry.nlark.com/@webassemblyjs/helper-buffer/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/wasm-gen': registry.nlark.com/@webassemblyjs/wasm-gen/1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha1-ljkp6bvQVwnn4SJDoJkYCBKZJhQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.11.1.tgz?cache=0&sync_timestamp=1625477730793&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.11.1.tgz} + name: '@webassemblyjs/ieee754' + version: 1.11.1 + dependencies: + '@xtuc/ieee754': registry.npmmirror.com/@xtuc/ieee754/1.2.0 + dev: true + + registry.nlark.com/@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha1-zoFLRVdOk9drrh+yZEq5zdlSeqU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.11.1.tgz?cache=0&sync_timestamp=1625477732636&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.11.1.tgz} + name: '@webassemblyjs/leb128' + version: 1.11.1 + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + registry.nlark.com/@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha1-0fi3ZDaefG5rrjUOhU3smlnwo/8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.11.1.tgz?cache=0&sync_timestamp=1625477731072&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.11.1.tgz} + name: '@webassemblyjs/utf8' + version: 1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha1-rSBuv0v5WgWM6YgKjAksXeyBk9Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.11.1.tgz?cache=0&sync_timestamp=1625477739053&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.11.1.tgz} + name: '@webassemblyjs/wasm-edit' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-buffer': registry.nlark.com/@webassemblyjs/helper-buffer/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/helper-wasm-section': registry.nlark.com/@webassemblyjs/helper-wasm-section/1.11.1 + '@webassemblyjs/wasm-gen': registry.nlark.com/@webassemblyjs/wasm-gen/1.11.1 + '@webassemblyjs/wasm-opt': registry.nlark.com/@webassemblyjs/wasm-opt/1.11.1 + '@webassemblyjs/wasm-parser': registry.nlark.com/@webassemblyjs/wasm-parser/1.11.1 + '@webassemblyjs/wast-printer': registry.nlark.com/@webassemblyjs/wast-printer/1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha1-hsXqMEhJdZt9iMR6MvTwOa48j3Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.11.1.tgz?cache=0&sync_timestamp=1625477733962&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.11.1.tgz} + name: '@webassemblyjs/wasm-gen' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/ieee754': registry.nlark.com/@webassemblyjs/ieee754/1.11.1 + '@webassemblyjs/leb128': registry.nlark.com/@webassemblyjs/leb128/1.11.1 + '@webassemblyjs/utf8': registry.nlark.com/@webassemblyjs/utf8/1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha1-ZXtMIgL0zzs0X4pMZGHIwkGJhfI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.11.1.tgz?cache=0&sync_timestamp=1625477737542&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.11.1.tgz} + name: '@webassemblyjs/wasm-opt' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-buffer': registry.nlark.com/@webassemblyjs/helper-buffer/1.11.1 + '@webassemblyjs/wasm-gen': registry.nlark.com/@webassemblyjs/wasm-gen/1.11.1 + '@webassemblyjs/wasm-parser': registry.nlark.com/@webassemblyjs/wasm-parser/1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha1-hspzRTT0F+m9PGfHocddi+QfsZk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.11.1.tgz?cache=0&sync_timestamp=1625477733604&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.11.1.tgz} + name: '@webassemblyjs/wasm-parser' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/helper-api-error': registry.nlark.com/@webassemblyjs/helper-api-error/1.11.1 + '@webassemblyjs/helper-wasm-bytecode': registry.nlark.com/@webassemblyjs/helper-wasm-bytecode/1.11.1 + '@webassemblyjs/ieee754': registry.nlark.com/@webassemblyjs/ieee754/1.11.1 + '@webassemblyjs/leb128': registry.nlark.com/@webassemblyjs/leb128/1.11.1 + '@webassemblyjs/utf8': registry.nlark.com/@webassemblyjs/utf8/1.11.1 + dev: true + + registry.nlark.com/@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha1-0Mc77ajuxUJvEK6O9VzuXnCEwvA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.11.1.tgz?cache=0&sync_timestamp=1625477734920&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.11.1.tgz} + name: '@webassemblyjs/wast-printer' + version: 1.11.1 + dependencies: + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + registry.nlark.com/ee-first/1.1.1: + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ee-first/download/ee-first-1.1.1.tgz} + name: ee-first + version: 1.1.1 + + registry.nlark.com/setprototypeof/1.2.0: + resolution: {integrity: sha1-ZsmiSnP5/CjL5msJ/tPTPcrxtCQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/setprototypeof/download/setprototypeof-1.2.0.tgz} + name: setprototypeof + version: 1.2.0 + + registry.npmmirror.com/@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz} + name: '@ampproject/remapping' + version: 2.2.0 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + dev: true + + registry.npmmirror.com/@angular-devkit/core/15.0.4: + resolution: {integrity: sha512-4ITpRAevd652SxB+qNesIQ9qfbm7wT5UBU5kJOPPwGL77I21g8CQpkmV1n5VSacPvC9Zbz90feOWexf7w7JzcA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/core/-/core-15.0.4.tgz} + name: '@angular-devkit/core' + version: 15.0.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: registry.npmmirror.com/ajv/8.11.0 + ajv-formats: registry.npmmirror.com/ajv-formats/2.1.1 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + source-map: registry.npmmirror.com/source-map/0.7.4 + dev: true + + registry.npmmirror.com/@angular-devkit/core/15.0.4_chokidar@3.5.3: + resolution: {integrity: sha512-4ITpRAevd652SxB+qNesIQ9qfbm7wT5UBU5kJOPPwGL77I21g8CQpkmV1n5VSacPvC9Zbz90feOWexf7w7JzcA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/core/-/core-15.0.4.tgz} + id: registry.npmmirror.com/@angular-devkit/core/15.0.4 + name: '@angular-devkit/core' + version: 15.0.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: registry.npmmirror.com/ajv/8.11.0 + ajv-formats: registry.npmmirror.com/ajv-formats/2.1.1 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + source-map: registry.npmmirror.com/source-map/0.7.4 + dev: true + + registry.npmmirror.com/@angular-devkit/core/15.2.4_chokidar@3.5.3: + resolution: {integrity: sha512-yl+0j1bMwJLKShsyCXw77tbJG8Sd21+itisPLL2MgEpLNAO252kr9zG4TLlFRJyKVftm2l1h78KjqvM5nbOXNg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/core/-/core-15.2.4.tgz} + id: registry.npmmirror.com/@angular-devkit/core/15.2.4 + name: '@angular-devkit/core' + version: 15.2.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + dependencies: + ajv: registry.npmmirror.com/ajv/8.12.0 + ajv-formats: registry.npmmirror.com/ajv-formats/2.1.1 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + source-map: registry.npmmirror.com/source-map/0.7.4 + dev: true + + registry.npmmirror.com/@angular-devkit/schematics-cli/15.2.4_chokidar@3.5.3: + resolution: {integrity: sha512-QTTKEH5HOkxvQtCxb2Lna2wubehkaIzA6DKUBISijPQliLomw74tzc7lXCywmMqRTbQPVRLG3kBK97hR4x67nA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/schematics-cli/-/schematics-cli-15.2.4.tgz} + id: registry.npmmirror.com/@angular-devkit/schematics-cli/15.2.4 + name: '@angular-devkit/schematics-cli' + version: 15.2.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.2.4_chokidar@3.5.3 + '@angular-devkit/schematics': registry.npmmirror.com/@angular-devkit/schematics/15.2.4_chokidar@3.5.3 + ansi-colors: registry.npmmirror.com/ansi-colors/4.1.3 + inquirer: registry.npmmirror.com/inquirer/8.2.4 + symbol-observable: registry.npmmirror.com/symbol-observable/4.0.0 + yargs-parser: registry.npmmirror.com/yargs-parser/21.1.1 + transitivePeerDependencies: + - chokidar + dev: true + + registry.npmmirror.com/@angular-devkit/schematics/15.0.4: + resolution: {integrity: sha512-/gXiLFS0+xFdx6wPoBpe/c6/K9I5edMpaASqPf4XheKtrsSvL+qTlIi3nsbfItzOiDXbaBmlbxGfkMHz/yg0Ig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/schematics/-/schematics-15.0.4.tgz} + name: '@angular-devkit/schematics' + version: 15.0.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.0.4 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + magic-string: registry.npmmirror.com/magic-string/0.26.7 + ora: registry.npmmirror.com/ora/5.4.1 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + registry.npmmirror.com/@angular-devkit/schematics/15.0.4_chokidar@3.5.3: + resolution: {integrity: sha512-/gXiLFS0+xFdx6wPoBpe/c6/K9I5edMpaASqPf4XheKtrsSvL+qTlIi3nsbfItzOiDXbaBmlbxGfkMHz/yg0Ig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/schematics/-/schematics-15.0.4.tgz} + id: registry.npmmirror.com/@angular-devkit/schematics/15.0.4 + name: '@angular-devkit/schematics' + version: 15.0.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.0.4_chokidar@3.5.3 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + magic-string: registry.npmmirror.com/magic-string/0.26.7 + ora: registry.npmmirror.com/ora/5.4.1 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + registry.npmmirror.com/@angular-devkit/schematics/15.2.4_chokidar@3.5.3: + resolution: {integrity: sha512-/W7/vvn59PAVLzhcvD4/N/E8RDhub8ny1A7I96LTRjC5o+yvVV16YJ4YJzolrRrIEN01KmLVQJ9A58VCaweMgw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@angular-devkit/schematics/-/schematics-15.2.4.tgz} + id: registry.npmmirror.com/@angular-devkit/schematics/15.2.4 + name: '@angular-devkit/schematics' + version: 15.2.4 + engines: {node: ^14.20.0 || ^16.13.0 || >=18.10.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.2.4_chokidar@3.5.3 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + magic-string: registry.npmmirror.com/magic-string/0.29.0 + ora: registry.npmmirror.com/ora/5.4.1 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + transitivePeerDependencies: + - chokidar + dev: true + + registry.npmmirror.com/@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz} + name: '@babel/code-frame' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.18.6 + + registry.npmmirror.com/@babel/compat-data/7.21.0: + resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.21.0.tgz} + name: '@babel/compat-data' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/core/7.21.3: + resolution: {integrity: sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/core/-/core-7.21.3.tgz} + name: '@babel/core' + version: 7.21.3 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping/2.2.0 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator/7.21.3 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.3 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.21.2 + '@babel/helpers': registry.npmmirror.com/@babel/helpers/7.21.0 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/template': registry.npmmirror.com/@babel/template/7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + convert-source-map: registry.npmmirror.com/convert-source-map/1.9.0 + debug: registry.npmmirror.com/debug/4.3.4 + gensync: registry.npmmirror.com/gensync/1.0.0-beta.2 + json5: registry.npmmirror.com/json5/2.2.3 + semver: registry.npmmirror.com/semver/6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/generator/7.21.3: + resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/generator/-/generator-7.21.3.tgz} + name: '@babel/generator' + version: 7.21.3 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + jsesc: registry.npmmirror.com/jsesc/2.5.2 + dev: true + + registry.npmmirror.com/@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.3: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz} + id: registry.npmmirror.com/@babel/helper-compilation-targets/7.20.7 + name: '@babel/helper-compilation-targets' + version: 7.20.7 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.21.0 + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option/7.21.0 + browserslist: registry.npmmirror.com/browserslist/4.21.5 + lru-cache: registry.npmmirror.com/lru-cache/5.1.1 + semver: registry.npmmirror.com/semver/6.3.0 + dev: true + + registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz} + name: '@babel/helper-environment-visitor' + version: 7.18.9 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-function-name/7.21.0: + resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz} + name: '@babel/helper-function-name' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template/7.20.7 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz} + name: '@babel/helper-hoist-variables' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} + name: '@babel/helper-module-imports' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@babel/helper-module-transforms/7.21.2: + resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz} + name: '@babel/helper-module-transforms' + version: 7.21.2 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access/7.20.2 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + '@babel/template': registry.npmmirror.com/@babel/template/7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2: + resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz} + name: '@babel/helper-plugin-utils' + version: 7.20.2 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-simple-access/7.20.2: + resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz} + name: '@babel/helper-simple-access' + version: 7.20.2 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} + name: '@babel/helper-string-parser' + version: 7.19.4 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} + name: '@babel/helper-validator-identifier' + version: 7.19.1 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-option/7.21.0: + resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz} + name: '@babel/helper-validator-option' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helpers/7.21.0: + resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/helpers/-/helpers-7.21.0.tgz} + name: '@babel/helpers' + version: 7.21.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template/7.20.7 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz} + name: '@babel/highlight' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + chalk: registry.npmmirror.com/chalk/2.4.2 + js-tokens: registry.npmmirror.com/js-tokens/4.0.0 + + registry.npmmirror.com/@babel/parser/7.21.3: + resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/parser/-/parser-7.21.3.tgz} + name: '@babel/parser' + version: 7.21.3 + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + + registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.3: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4 + name: '@babel/plugin-syntax-async-generators' + version: 7.8.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.21.3: + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-bigint/7.8.3 + name: '@babel/plugin-syntax-bigint' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.3: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13 + name: '@babel/plugin-syntax-class-properties' + version: 7.12.13 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.21.3: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4 + name: '@babel/plugin-syntax-import-meta' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.3: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3 + name: '@babel/plugin-syntax-json-strings' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.21.3: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6 + name: '@babel/plugin-syntax-jsx' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.3: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 + name: '@babel/plugin-syntax-logical-assignment-operators' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.3: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 + name: '@babel/plugin-syntax-nullish-coalescing-operator' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.3: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4 + name: '@babel/plugin-syntax-numeric-separator' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.3: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3 + name: '@babel/plugin-syntax-object-rest-spread' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.3: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 + name: '@babel/plugin-syntax-optional-catch-binding' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.3: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3 + name: '@babel/plugin-syntax-optional-chaining' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.3: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5 + name: '@babel/plugin-syntax-top-level-await' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.21.3: + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-typescript/7.20.0 + name: '@babel/plugin-syntax-typescript' + version: 7.20.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + dev: true + + registry.npmmirror.com/@babel/runtime/7.21.5: + resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.5.tgz} + name: '@babel/runtime' + version: 7.21.5 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + dev: false + + registry.npmmirror.com/@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/template/-/template-7.20.7.tgz} + name: '@babel/template' + version: 7.20.7 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@babel/traverse/7.21.3: + resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/traverse/-/traverse-7.21.3.tgz} + name: '@babel/traverse' + version: 7.21.3 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator/7.21.3 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.21.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + debug: registry.npmmirror.com/debug/4.3.4 + globals: registry.npmmirror.com/globals/11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/types/7.21.3: + resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@babel/types/-/types-7.21.3.tgz} + name: '@babel/types' + version: 7.21.3 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser/7.19.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 + + registry.npmmirror.com/@bcoe/v8-coverage/0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz} + name: '@bcoe/v8-coverage' + version: 0.2.3 + dev: true + + registry.npmmirror.com/@colors/colors/1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz} + name: '@colors/colors' + version: 1.5.0 + engines: {node: '>=0.1.90'} + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@cspotcode/source-map-support/0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz} + name: '@cspotcode/source-map-support' + version: 0.8.1 + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.9 + + registry.npmmirror.com/@dqbd/tiktoken/1.0.7: + resolution: {integrity: sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@dqbd/tiktoken/-/tiktoken-1.0.7.tgz} + name: '@dqbd/tiktoken' + version: 1.0.7 + dev: false + + registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0_eslint@8.37.0: + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: registry.npmmirror.com/eslint/8.37.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.4.0 + dev: true + + registry.npmmirror.com/@eslint-community/regexpp/4.5.0: + resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.5.0.tgz} + name: '@eslint-community/regexpp' + version: 4.5.0 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@eslint/eslintrc/2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz} + name: '@eslint/eslintrc' + version: 2.0.2 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: registry.npmmirror.com/ajv/6.12.6 + debug: registry.npmmirror.com/debug/4.3.4 + espree: registry.npmmirror.com/espree/9.5.1 + globals: registry.npmmirror.com/globals/13.20.0 + ignore: registry.npmmirror.com/ignore/5.2.4 + import-fresh: registry.npmmirror.com/import-fresh/3.3.0 + js-yaml: registry.npmmirror.com/js-yaml/4.1.0 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@eslint/js/8.37.0: + resolution: {integrity: sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@eslint/js/-/js-8.37.0.tgz} + name: '@eslint/js' + version: 8.37.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz} + name: '@humanwhocodes/config-array' + version: 0.11.8 + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1 + debug: registry.npmmirror.com/debug/4.3.4 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@humanwhocodes/module-importer/1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz} + name: '@humanwhocodes/module-importer' + version: 1.0.1 + engines: {node: '>=12.22'} + dev: true + + registry.npmmirror.com/@humanwhocodes/object-schema/1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz} + name: '@humanwhocodes/object-schema' + version: 1.2.1 + dev: true + + registry.npmmirror.com/@istanbuljs/load-nyc-config/1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} + name: '@istanbuljs/load-nyc-config' + version: 1.1.0 + engines: {node: '>=8'} + dependencies: + camelcase: registry.npmmirror.com/camelcase/5.3.1 + find-up: registry.npmmirror.com/find-up/4.1.0 + get-package-type: registry.npmmirror.com/get-package-type/0.1.0 + js-yaml: registry.npmmirror.com/js-yaml/3.14.1 + resolve-from: registry.npmmirror.com/resolve-from/5.0.0 + dev: true + + registry.npmmirror.com/@istanbuljs/schema/0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz} + name: '@istanbuljs/schema' + version: 0.1.3 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/@jest/console/29.5.0: + resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/console/-/console-29.5.0.tgz} + name: '@jest/console' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + chalk: registry.npmmirror.com/chalk/4.1.2 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + dev: true + + registry.npmmirror.com/@jest/core/29.5.0_ts-node@10.9.1: + resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/core/-/core-29.5.0.tgz} + id: registry.npmmirror.com/@jest/core/29.5.0 + name: '@jest/core' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': registry.npmmirror.com/@jest/console/29.5.0 + '@jest/reporters': registry.npmmirror.com/@jest/reporters/29.5.0 + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/transform': registry.npmmirror.com/@jest/transform/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + ansi-escapes: registry.npmmirror.com/ansi-escapes/4.3.2 + chalk: registry.npmmirror.com/chalk/4.1.2 + ci-info: registry.npmmirror.com/ci-info/3.8.0 + exit: registry.npmmirror.com/exit/0.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-changed-files: registry.npmmirror.com/jest-changed-files/29.5.0 + jest-config: registry.npmmirror.com/jest-config/29.5.0_zfha7dvnw4nti6zkbsmhmn6xo4 + jest-haste-map: registry.npmmirror.com/jest-haste-map/29.5.0 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-regex-util: registry.npmmirror.com/jest-regex-util/29.4.3 + jest-resolve: registry.npmmirror.com/jest-resolve/29.5.0 + jest-resolve-dependencies: registry.npmmirror.com/jest-resolve-dependencies/29.5.0 + jest-runner: registry.npmmirror.com/jest-runner/29.5.0 + jest-runtime: registry.npmmirror.com/jest-runtime/29.5.0 + jest-snapshot: registry.npmmirror.com/jest-snapshot/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-validate: registry.npmmirror.com/jest-validate/29.5.0 + jest-watcher: registry.npmmirror.com/jest-watcher/29.5.0 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + registry.npmmirror.com/@jest/environment/29.5.0: + resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/environment/-/environment-29.5.0.tgz} + name: '@jest/environment' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': registry.npmmirror.com/@jest/fake-timers/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + jest-mock: registry.npmmirror.com/jest-mock/29.5.0 + dev: true + + registry.npmmirror.com/@jest/expect-utils/29.5.0: + resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz} + name: '@jest/expect-utils' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + dev: true + + registry.npmmirror.com/@jest/expect/29.5.0: + resolution: {integrity: sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/expect/-/expect-29.5.0.tgz} + name: '@jest/expect' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: registry.npmmirror.com/expect/29.5.0 + jest-snapshot: registry.npmmirror.com/jest-snapshot/29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@jest/fake-timers/29.5.0: + resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz} + name: '@jest/fake-timers' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@sinonjs/fake-timers': registry.npmmirror.com/@sinonjs/fake-timers/10.0.2 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-mock: registry.npmmirror.com/jest-mock/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + dev: true + + registry.npmmirror.com/@jest/globals/29.5.0: + resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/globals/-/globals-29.5.0.tgz} + name: '@jest/globals' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': registry.npmmirror.com/@jest/environment/29.5.0 + '@jest/expect': registry.npmmirror.com/@jest/expect/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + jest-mock: registry.npmmirror.com/jest-mock/29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@jest/reporters/29.5.0: + resolution: {integrity: sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/reporters/-/reporters-29.5.0.tgz} + name: '@jest/reporters' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': registry.npmmirror.com/@bcoe/v8-coverage/0.2.3 + '@jest/console': registry.npmmirror.com/@jest/console/29.5.0 + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/transform': registry.npmmirror.com/@jest/transform/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + chalk: registry.npmmirror.com/chalk/4.1.2 + collect-v8-coverage: registry.npmmirror.com/collect-v8-coverage/1.0.1 + exit: registry.npmmirror.com/exit/0.1.2 + glob: registry.npmmirror.com/glob/7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 + istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument/5.2.1 + istanbul-lib-report: registry.npmmirror.com/istanbul-lib-report/3.0.0 + istanbul-lib-source-maps: registry.npmmirror.com/istanbul-lib-source-maps/4.0.1 + istanbul-reports: registry.npmmirror.com/istanbul-reports/3.1.5 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-worker: registry.npmmirror.com/jest-worker/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + string-length: registry.npmmirror.com/string-length/4.0.2 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + v8-to-istanbul: registry.npmmirror.com/v8-to-istanbul/9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@jest/schemas/29.4.3: + resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/schemas/-/schemas-29.4.3.tgz} + name: '@jest/schemas' + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': registry.npmmirror.com/@sinclair/typebox/0.25.24 + dev: true + + registry.npmmirror.com/@jest/source-map/29.4.3: + resolution: {integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/source-map/-/source-map-29.4.3.tgz} + name: '@jest/source-map' + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + callsites: registry.npmmirror.com/callsites/3.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + dev: true + + registry.npmmirror.com/@jest/test-result/29.5.0: + resolution: {integrity: sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/test-result/-/test-result-29.5.0.tgz} + name: '@jest/test-result' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': registry.npmmirror.com/@jest/console/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4 + collect-v8-coverage: registry.npmmirror.com/collect-v8-coverage/1.0.1 + dev: true + + registry.npmmirror.com/@jest/test-sequencer/29.5.0: + resolution: {integrity: sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz} + name: '@jest/test-sequencer' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-haste-map: registry.npmmirror.com/jest-haste-map/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + dev: true + + registry.npmmirror.com/@jest/transform/29.5.0: + resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/transform/-/transform-29.5.0.tgz} + name: '@jest/transform' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul/6.1.1 + chalk: registry.npmmirror.com/chalk/4.1.2 + convert-source-map: registry.npmmirror.com/convert-source-map/2.0.0 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-haste-map: registry.npmmirror.com/jest-haste-map/29.5.0 + jest-regex-util: registry.npmmirror.com/jest-regex-util/29.4.3 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + pirates: registry.npmmirror.com/pirates/4.0.5 + slash: registry.npmmirror.com/slash/3.0.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic/4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@jest/types/29.5.0: + resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jest/types/-/types-29.5.0.tgz} + name: '@jest/types' + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': registry.npmmirror.com/@jest/schemas/29.4.3 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4 + '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports/3.0.1 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + '@types/yargs': registry.npmmirror.com/@types/yargs/17.0.24 + chalk: registry.npmmirror.com/chalk/4.1.2 + dev: true + + registry.npmmirror.com/@jimp/bmp/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-0cfBPvugURS7G+60vRBL+penDRst8x40alS5Rhn2nlGsgsBHljFDw7+H4o5r6gldw9nv9PR9JA90Wloy7KMZdQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/bmp/-/bmp-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/bmp/0.22.7 + name: '@jimp/bmp' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + bmp-js: registry.npmmirror.com/bmp-js/0.1.0 + dev: false + + registry.npmmirror.com/@jimp/core/0.22.7: + resolution: {integrity: sha512-lg4z+pw23v2Gp9LWQur0NqYtnmoNWnyN/Or96elhJgeEJskrDGwROdajortHCCOI1xDnUZSirg8sFvStC8BIlg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/core/-/core-0.22.7.tgz} + name: '@jimp/core' + version: 0.22.7 + dependencies: + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + any-base: registry.npmmirror.com/any-base/1.1.0 + buffer: registry.npmmirror.com/buffer/5.7.1 + exif-parser: registry.npmmirror.com/exif-parser/0.1.12 + file-type: registry.npmmirror.com/file-type/16.5.4 + isomorphic-fetch: registry.npmmirror.com/isomorphic-fetch/3.0.0 + mkdirp: registry.npmmirror.com/mkdirp/2.1.6 + pixelmatch: registry.npmmirror.com/pixelmatch/4.0.2 + tinycolor2: registry.npmmirror.com/tinycolor2/1.6.0 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/@jimp/custom/0.22.7: + resolution: {integrity: sha512-n+1+ZVDNumB1E+sL7KdGKAJ6MbgniX1/v/xOEFEQ46WDZ4cRTqP4+tXjHTuHSlOXiANH+K9zD6qgzqmgO6mCVw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/custom/-/custom-0.22.7.tgz} + name: '@jimp/custom' + version: 0.22.7 + dependencies: + '@jimp/core': registry.npmmirror.com/@jimp/core/0.22.7 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/@jimp/gif/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-PGZMS8sYFnDcqg+t8IT3RaSJLrqB+3GzhI0hU5D4mmSuJ5UO/6Bdgu8nrwh3uFPxw0ZH6h9ozYk88cz0pKEhLQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/gif/-/gif-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/gif/0.22.7 + name: '@jimp/gif' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + gifwrap: registry.npmmirror.com/gifwrap/0.9.4 + omggif: registry.npmmirror.com/omggif/1.0.10 + dev: false + + registry.npmmirror.com/@jimp/jpeg/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-ptwWyX/7RPcREy8SpPN/8IlywbwyPXiuXmoHwM6m4iKcyaCmmnfCdZwLNXYliJzFAFLLOWDuOrwO3cZSkH6Czg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/jpeg/0.22.7 + name: '@jimp/jpeg' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + jpeg-js: registry.npmmirror.com/jpeg-js/0.4.4 + dev: false + + registry.npmmirror.com/@jimp/plugin-blit/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-8oXcBTSd/sBmTQATrCxQ1ZBER31Lge8vXzWqNCbC3b1ZvRggCcqnDzRRH1+JiI4i+jPRo3Fi6/sdvEUyQ5LY3g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-blit/0.22.7 + name: '@jimp/plugin-blit' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-blur/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-M+0I5CKFIpnIQE27j8o8NECBsOFBd4z7C95ydy2UohYopugFq+hSVtMs1D4pQgb0RW1DJPiXD/4PHqb+lzV5mA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-blur/0.22.7 + name: '@jimp/plugin-blur' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-circle/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-zfZKKpOhlyiDeFjGW5JB9K4h/kvbdaAJWUEwmKrvvGar67G3j8dKu46AX0MeWRNZ1yk/lfz+JIa7TzKfxEBf6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-circle/0.22.7 + name: '@jimp/plugin-circle' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-color/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-OXro9pdB0twQjV4LgW0bTEXaX1VgBsTBcFoDAs8q9mtQzD5p3UQmJ+ykCiQ5rTPxNN1Buc44tcCIfp8haB1ZVQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-color/0.22.7 + name: '@jimp/plugin-color' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + tinycolor2: registry.npmmirror.com/tinycolor2/1.6.0 + dev: false + + registry.npmmirror.com/@jimp/plugin-contain/0.22.7_soisslxyt7muqrpew7vwvlivv4: + resolution: {integrity: sha512-GwUxZp4jMA0O0qbknUPDONJAfHFaTRs8kK+jgRtUfgb1Xi96l5RN/PMMDv4owZCUiPVAON80X1BMj7nSQWNVUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-contain/0.22.7 + name: '@jimp/plugin-contain' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-blit': registry.npmmirror.com/@jimp/plugin-blit/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-scale': registry.npmmirror.com/@jimp/plugin-scale/0.22.7_a3cf7iyogfec47yqu37kpfiyza + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-cover/0.22.7_yvtxolpz5a66mkq2kjy44nqrmu: + resolution: {integrity: sha512-PVXeQyofGepMoJaQ5XapLwCcZfsOF1IoAotHosh8AOP8niCP/Erm8T6ZWf5tf0sMJiLHQMPUyns186H5isqEMQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-cover/0.22.7 + name: '@jimp/plugin-cover' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-crop': registry.npmmirror.com/@jimp/plugin-crop/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-scale': registry.npmmirror.com/@jimp/plugin-scale/0.22.7_a3cf7iyogfec47yqu37kpfiyza + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-crop/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-XXvUU+hPdodtTBSgyUJUnzh7JgKMVlS1GxjcQsjYU8iGr1dbpuazKMTQxc76ChVmy8ue4goi8bGstacWUHpl/Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-crop/0.22.7 + name: '@jimp/plugin-crop' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-displace/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-CCNAkmm2OS4QQtNRfQvXqoAMxNE0maSlVEV5DNdioHOUKycy02EJ5hNYR3l0FG+NraQHOuqv9XV37sGRl6QzMA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-displace/0.22.7 + name: '@jimp/plugin-displace' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-dither/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-ndCW5MIGMdh3aBvvgRCO7el9cIPG29kU7xQYlOs5+3JsDk3Vf7X30QGPjzxABOY95qLUNUjf5Qe/p/tqv/vbcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-dither/0.22.7 + name: '@jimp/plugin-dither' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-fisheye/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-boI1QowhZRfb6OF+ZPWtiSJP1GATsTHjd5Oy/lJ+n0L4rp439ZOTB1Elzcgc44O2C1mgZDdybRPQQvYdPF8slA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-fisheye/0.22.7 + name: '@jimp/plugin-fisheye' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-flip/0.22.7_nh3kxihywebks7kmoty7rey3ce: + resolution: {integrity: sha512-/jkbgtvQPcKadAEV5ZXyoEpSdd7GEvGs/Ya/f48+LNszc+S24u4UXtuP3QPRJ5FHm0Re1t4uztM7xa6IPklAOA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-flip/0.22.7 + name: '@jimp/plugin-flip' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-rotate': registry.npmmirror.com/@jimp/plugin-rotate/0.22.7_csye4mahdkp4cnaxt7g7djuryi + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-gaussian/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-OB1sdnjzq2rfUHmx9Rvi3SJIDbQAgWFgYEw6KhN3TSVOdrJHvwrQkEnwR9PoUzQg992VIpGcVc9Y1s/SOU2oCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-gaussian/0.22.7 + name: '@jimp/plugin-gaussian' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-invert/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-dX/TqACJ/M5uXDIEJlVPPwietMD6EWUeA/CV4uvhLz9EMjTgHociJ3TWqGCY/70phhIBLbhLcHUVBL/q65ynfQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-invert/0.22.7 + name: '@jimp/plugin-invert' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-mask/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-rfKHKJLAtJG7qbB4zYAMcQ9ue3CIFRuAJ3xX0lzCxC0fGvCVuXlcxiAEauBxqaTWqiKMnahqpR3/Ah679K2FKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-mask/0.22.7 + name: '@jimp/plugin-mask' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-normalize/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-t8x2jjKDmvUAZB4Wbeagr4D0BvoVCIWquy94mpglvSZ8ujKLt0aQBl3CBEIbXFAoVqNif+G36NtxPHNsjxIXOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-normalize/0.22.7 + name: '@jimp/plugin-normalize' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-print/0.22.7_ybrn7xnankjhtbio3p4fwrdbbu: + resolution: {integrity: sha512-kx0+cPeinki1IFg9cJy7LC4uVuOEOa8TIrcERioB6PVgJ7EDzCAfatTKULZ+t4uSs2K/lQF97wPYlbiyxs/Hzg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-print/0.22.7 + name: '@jimp/plugin-print' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-blit': registry.npmmirror.com/@jimp/plugin-blit/0.22.7_@jimp+custom@0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + load-bmfont: registry.npmmirror.com/load-bmfont/1.4.1 + dev: false + + registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-pg7i0JIYt7x7ag+CoD/yG70Xvwm1sKRfcFjQh954yestiin14uppPgXchAmTBmctecBjLNdsVlqSXbPvU4Jvxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-resize/0.22.7 + name: '@jimp/plugin-resize' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-rotate/0.22.7_csye4mahdkp4cnaxt7g7djuryi: + resolution: {integrity: sha512-Uh3Gb18IY8uXWk6E1bzMopum2GP+xwohbnMIDE0MSWmLaz7LXrfnvgXFba1uRGgn73CJz8UDS4fC1KIJMuxQZA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-rotate/0.22.7 + name: '@jimp/plugin-rotate' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-blit': registry.npmmirror.com/@jimp/plugin-blit/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-crop': registry.npmmirror.com/@jimp/plugin-crop/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-scale/0.22.7_a3cf7iyogfec47yqu37kpfiyza: + resolution: {integrity: sha512-3uHUrk5Rl6MCxuoJtHTSeJjSHIxHWqOOgmD2caKIvyxds0Zmofu/Fva+N4V/m80E4q4G2RXNsUplFpFGhUM7hw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-scale/0.22.7 + name: '@jimp/plugin-scale' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-shadow/0.22.7_kr342kxp5tunvvx2irqsbctmkm: + resolution: {integrity: sha512-NKEq5VR8U/d0OKf0hxFtrrbMCuNv7by31V+Kwgxb1oTP+j+zZEaww+m3YgEwIwRe7E8/yeDSHa5bJ+CmuyFZjw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-shadow/0.22.7 + name: '@jimp/plugin-shadow' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-blur': registry.npmmirror.com/@jimp/plugin-blur/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugin-threshold/0.22.7_jdcs427ubm27tu7smqpop2mjwa: + resolution: {integrity: sha512-BH4aLwfmnqjRVhdzMIqUns4ycZ6QoHHFR6Qz+X2iSpH5a33xFA4DRbd3Ehtrs4Gk7XiCjWkUyM6wjmH7l/1hNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugin-threshold/0.22.7 + name: '@jimp/plugin-threshold' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-color': registry.npmmirror.com/@jimp/plugin-color/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + dev: false + + registry.npmmirror.com/@jimp/plugins/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-AJmzTG/sa+CDpvle/UE89hjHR85gnRGSwLuQqPbhlY6GFCmC3uqHRJz9O5I8A4zdi9+e8LsBphuTlKV7RbuXOw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/plugins/-/plugins-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/plugins/0.22.7 + name: '@jimp/plugins' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugin-blit': registry.npmmirror.com/@jimp/plugin-blit/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-blur': registry.npmmirror.com/@jimp/plugin-blur/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-circle': registry.npmmirror.com/@jimp/plugin-circle/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-color': registry.npmmirror.com/@jimp/plugin-color/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-contain': registry.npmmirror.com/@jimp/plugin-contain/0.22.7_soisslxyt7muqrpew7vwvlivv4 + '@jimp/plugin-cover': registry.npmmirror.com/@jimp/plugin-cover/0.22.7_yvtxolpz5a66mkq2kjy44nqrmu + '@jimp/plugin-crop': registry.npmmirror.com/@jimp/plugin-crop/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-displace': registry.npmmirror.com/@jimp/plugin-displace/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-dither': registry.npmmirror.com/@jimp/plugin-dither/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-fisheye': registry.npmmirror.com/@jimp/plugin-fisheye/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-flip': registry.npmmirror.com/@jimp/plugin-flip/0.22.7_nh3kxihywebks7kmoty7rey3ce + '@jimp/plugin-gaussian': registry.npmmirror.com/@jimp/plugin-gaussian/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-invert': registry.npmmirror.com/@jimp/plugin-invert/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-mask': registry.npmmirror.com/@jimp/plugin-mask/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-normalize': registry.npmmirror.com/@jimp/plugin-normalize/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-print': registry.npmmirror.com/@jimp/plugin-print/0.22.7_ybrn7xnankjhtbio3p4fwrdbbu + '@jimp/plugin-resize': registry.npmmirror.com/@jimp/plugin-resize/0.22.7_@jimp+custom@0.22.7 + '@jimp/plugin-rotate': registry.npmmirror.com/@jimp/plugin-rotate/0.22.7_csye4mahdkp4cnaxt7g7djuryi + '@jimp/plugin-scale': registry.npmmirror.com/@jimp/plugin-scale/0.22.7_a3cf7iyogfec47yqu37kpfiyza + '@jimp/plugin-shadow': registry.npmmirror.com/@jimp/plugin-shadow/0.22.7_kr342kxp5tunvvx2irqsbctmkm + '@jimp/plugin-threshold': registry.npmmirror.com/@jimp/plugin-threshold/0.22.7_jdcs427ubm27tu7smqpop2mjwa + timm: registry.npmmirror.com/timm/1.7.1 + dev: false + + registry.npmmirror.com/@jimp/png/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-LxD3O9FKEwVv+j+HcUV7ez72Miy+823EjhtFZbBYXNp9qjHtHFBpgcSJBftUOCei8OlmmVgULYn9XjyfPsDgGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/png/-/png-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/png/0.22.7 + name: '@jimp/png' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/utils': registry.npmmirror.com/@jimp/utils/0.22.7 + pngjs: registry.npmmirror.com/pngjs/6.0.0 + dev: false + + registry.npmmirror.com/@jimp/tiff/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-/oE8kLumzBfU1Z6h4TrDXYCGQNc4CjbZQvPssjImEqNLr5vbefpIpoy1fVMpsyuHZHsGovsBhBHxTJaRLO4+Og==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/tiff/-/tiff-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/tiff/0.22.7 + name: '@jimp/tiff' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + utif2: registry.npmmirror.com/utif2/4.0.1 + dev: false + + registry.npmmirror.com/@jimp/types/0.22.7_@jimp+custom@0.22.7: + resolution: {integrity: sha512-1T8BxwDh5HJvBh3tt6HUd8r7ir5Ge3JWATXC8O3Y9QYwOaERjA2+FVhGSjtoo5xCeJvLRjSzEtfZ8heowMBL4w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/types/-/types-0.22.7.tgz} + id: registry.npmmirror.com/@jimp/types/0.22.7 + name: '@jimp/types' + version: 0.22.7 + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@jimp/bmp': registry.npmmirror.com/@jimp/bmp/0.22.7_@jimp+custom@0.22.7 + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/gif': registry.npmmirror.com/@jimp/gif/0.22.7_@jimp+custom@0.22.7 + '@jimp/jpeg': registry.npmmirror.com/@jimp/jpeg/0.22.7_@jimp+custom@0.22.7 + '@jimp/png': registry.npmmirror.com/@jimp/png/0.22.7_@jimp+custom@0.22.7 + '@jimp/tiff': registry.npmmirror.com/@jimp/tiff/0.22.7_@jimp+custom@0.22.7 + timm: registry.npmmirror.com/timm/1.7.1 + dev: false + + registry.npmmirror.com/@jimp/utils/0.22.7: + resolution: {integrity: sha512-4ax4IOWLIERx4yz9y3fNXKvQaPOY23yJF5h4sizxVkQUObkZHWE0kL0TVHodBt3rS8ksdbCL8Jkz4GeNP/Katg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jimp/utils/-/utils-0.22.7.tgz} + name: '@jimp/utils' + version: 0.22.7 + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + dev: false + + registry.npmmirror.com/@jonkemp/package-utils/1.0.8: + resolution: {integrity: sha512-bIcKnH5YmtTYr7S6J3J86dn/rFiklwRpOqbTOQ9C0WMmR9FKHVb3bxs2UYfqEmNb93O4nbA97sb6rtz33i9SyA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jonkemp/package-utils/-/package-utils-1.0.8.tgz} + name: '@jonkemp/package-utils' + version: 1.0.8 + dev: false + + registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} + name: '@jridgewell/gen-mapping' + version: 0.1.1 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.2 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + dev: true + + registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.0 + engines: {node: '>=6.0.0'} + + registry.npmmirror.com/@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmmirror.com/@jridgewell/source-map/0.3.2: + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz} + name: '@jridgewell/source-map' + version: 0.3.2 + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + dev: true + + registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.14 + + registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.17 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/trace-mapping/0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.9 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + + registry.npmmirror.com/@lukeed/csprng/1.0.1: + resolution: {integrity: sha512-uSvJdwQU5nK+Vdf6zxcWAY2A8r7uqe+gePwLWzJ+fsQehq18pc0I2hJKwypZ2aLM90+Er9u1xn4iLJPZ+xlL4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@lukeed/csprng/-/csprng-1.0.1.tgz} + name: '@lukeed/csprng' + version: 1.0.1 + engines: {node: '>=8'} + + registry.npmmirror.com/@nestjs-modules/mailer/1.8.1_jt3jpdk6bknafyfkpkeexozije: + resolution: {integrity: sha512-rNlKzNB+Vr/aRDVcTibj2JCJQcTSE59EBQIpCwh/FkKg0Be1xoF3dQDZ4dmc9X1j396fkIBI5aQ5XAtJNPdxpw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs-modules/mailer/-/mailer-1.8.1.tgz} + id: registry.npmmirror.com/@nestjs-modules/mailer/1.8.1 + name: '@nestjs-modules/mailer' + version: 1.8.1 + peerDependencies: + '@nestjs/common': ^7.0.9 || ^8.0.0 || ^9.0.0 + '@nestjs/core': ^7.0.9 || ^8.0.0 || ^9.0.0 + nodemailer: ^6.4.6 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/core': registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi + glob: registry.npmmirror.com/glob/8.0.3 + inline-css: registry.npmmirror.com/inline-css/4.0.1 + mjml: registry.npmmirror.com/mjml/4.14.1 + nodemailer: registry.npmmirror.com/nodemailer/6.9.1 + preview-email: registry.npmmirror.com/preview-email/3.0.5 + optionalDependencies: + '@types/ejs': registry.npmmirror.com/@types/ejs/3.1.2 + '@types/pug': registry.npmmirror.com/@types/pug/2.0.6 + ejs: registry.npmmirror.com/ejs/3.1.9 + handlebars: registry.npmmirror.com/handlebars/4.7.7 + pug: registry.npmmirror.com/pug/3.0.2 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + registry.npmmirror.com/@nestjs/cli/9.3.0: + resolution: {integrity: sha512-v/E8Y3zFk30+FljETvPgpoGIUiOfWuOe6WUFw3ExGfDeWrF/A8ceupDHPWNknBAqvNtz2kVrWu5mwsZUEKGIgg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/cli/-/cli-9.3.0.tgz} + name: '@nestjs/cli' + version: 9.3.0 + engines: {node: '>= 12.9.0'} + hasBin: true + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.2.4_chokidar@3.5.3 + '@angular-devkit/schematics': registry.npmmirror.com/@angular-devkit/schematics/15.2.4_chokidar@3.5.3 + '@angular-devkit/schematics-cli': registry.npmmirror.com/@angular-devkit/schematics-cli/15.2.4_chokidar@3.5.3 + '@nestjs/schematics': registry.npmmirror.com/@nestjs/schematics/9.0.4_n7i3t5jmyrdrkypb5pvfihcmg4 + chalk: registry.npmmirror.com/chalk/4.1.2 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + cli-table3: registry.npmmirror.com/cli-table3/0.6.3 + commander: registry.npmmirror.com/commander/4.1.1 + fork-ts-checker-webpack-plugin: registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0_a37q6j7dwawz22saey2vgkpwqm + inquirer: registry.npmmirror.com/inquirer/8.2.5 + node-emoji: registry.npmmirror.com/node-emoji/1.11.0 + ora: registry.npmmirror.com/ora/5.4.1 + os-name: registry.npmmirror.com/os-name/4.0.1 + rimraf: registry.npmmirror.com/rimraf/4.4.0 + shelljs: registry.npmmirror.com/shelljs/0.8.5 + source-map-support: registry.npmmirror.com/source-map-support/0.5.21 + tree-kill: registry.npmmirror.com/tree-kill/1.2.2 + tsconfig-paths: registry.npmmirror.com/tsconfig-paths/4.1.2 + tsconfig-paths-webpack-plugin: registry.npmmirror.com/tsconfig-paths-webpack-plugin/4.0.1 + typescript: registry.npmmirror.com/typescript/4.9.5 + webpack: registry.npmmirror.com/webpack/5.76.2 + webpack-node-externals: registry.npmmirror.com/webpack-node-externals/3.0.0 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + - webpack-cli + dev: true + + registry.npmmirror.com/@nestjs/common/7.6.18_cssggd7bgje7flcm2hyqe42oay: + resolution: {integrity: sha512-BUJQHNhWzwWOkS4Ryndzd4HTeRObcAWV2Fh+ermyo3q3xYQQzNoEWclJVL/wZec8AONELwIJ+PSpWI53VP0leg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/common/-/common-7.6.18.tgz} + id: registry.npmmirror.com/@nestjs/common/7.6.18 + name: '@nestjs/common' + version: 7.6.18 + peerDependencies: + cache-manager: '*' + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + rxjs: ^6.0.0 + peerDependenciesMeta: + cache-manager: + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + axios: registry.npmmirror.com/axios/0.21.1 + cache-manager: registry.npmmirror.com/cache-manager/5.2.1 + class-transformer: registry.npmmirror.com/class-transformer/0.5.1 + class-validator: registry.npmmirror.com/class-validator/0.14.0 + iterare: registry.npmmirror.com/iterare/1.2.1 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + tslib: registry.npmmirror.com/tslib/2.2.0 + uuid: registry.npmmirror.com/uuid/8.3.2 + transitivePeerDependencies: + - debug + dev: false + + registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee: + resolution: {integrity: sha512-NtrUG2VgCbhmZEO1yRt/Utq16uFRV+xeHAOtdYIsfHGG0ssAV2lVLlvFFAQYh0SQ+KuYY1Gsxd3GK2JFoJCNqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/common/-/common-9.3.12.tgz} + id: registry.npmmirror.com/@nestjs/common/9.3.12 + name: '@nestjs/common' + version: 9.3.12 + peerDependencies: + cache-manager: <=5 + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + cache-manager: + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + cache-manager: registry.npmmirror.com/cache-manager/5.2.1 + class-transformer: registry.npmmirror.com/class-transformer/0.5.1 + class-validator: registry.npmmirror.com/class-validator/0.14.0 + iterare: registry.npmmirror.com/iterare/1.2.1 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/7.8.0 + tslib: registry.npmmirror.com/tslib/2.5.0 + uid: registry.npmmirror.com/uid/2.0.1 + + registry.npmmirror.com/@nestjs/core/7.6.18_l64abdknzt6t7ahqbqk2upmxpy: + resolution: {integrity: sha512-CGu20OjIxgFDY7RJT5t1TDGL8wSlTSlbZEkn8U5OlICZEB3WIpi98G7ajJpnRWmEgW8S4aDJmRKGjT+Ntj5U4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/core/-/core-7.6.18.tgz} + id: registry.npmmirror.com/@nestjs/core/7.6.18 + name: '@nestjs/core' + version: 7.6.18 + requiresBuild: true + peerDependencies: + '@nestjs/common': ^7.0.0 + '@nestjs/microservices': ^7.0.0 + '@nestjs/platform-express': ^7.0.0 + '@nestjs/websockets': ^7.0.0 + reflect-metadata: ^0.1.12 + rxjs: ^6.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/7.6.18_cssggd7bgje7flcm2hyqe42oay + '@nestjs/platform-express': registry.npmmirror.com/@nestjs/platform-express/9.4.0_ge4qplnzbmfyi5znl534zhtkn4 + '@nuxtjs/opencollective': registry.npmmirror.com/@nuxtjs/opencollective/0.3.2 + fast-safe-stringify: registry.npmmirror.com/fast-safe-stringify/2.0.7 + iterare: registry.npmmirror.com/iterare/1.2.1 + object-hash: registry.npmmirror.com/object-hash/2.1.1 + path-to-regexp: registry.npmmirror.com/path-to-regexp/3.2.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + tslib: registry.npmmirror.com/tslib/2.2.0 + uuid: registry.npmmirror.com/uuid/8.3.2 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi: + resolution: {integrity: sha512-Qe0ZjJo7bOlfudn7KHLppYrt5i4k1nR1+9d5ppYat2bb5knCIT4kIqblj666n+22/2zvsHRiTo015cLyLKsLRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/core/-/core-9.3.12.tgz} + id: registry.npmmirror.com/@nestjs/core/9.3.12 + name: '@nestjs/core' + version: 9.3.12 + requiresBuild: true + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/microservices': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + '@nestjs/websockets': ^9.0.0 + reflect-metadata: ^0.1.12 + rxjs: ^7.1.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + '@nestjs/websockets': + optional: true + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/platform-express': registry.npmmirror.com/@nestjs/platform-express/9.4.0_ge4qplnzbmfyi5znl534zhtkn4 + '@nuxtjs/opencollective': registry.npmmirror.com/@nuxtjs/opencollective/0.3.2 + fast-safe-stringify: registry.npmmirror.com/fast-safe-stringify/2.1.1 + iterare: registry.npmmirror.com/iterare/1.2.1 + path-to-regexp: registry.npmmirror.com/path-to-regexp/3.2.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/7.8.0 + tslib: registry.npmmirror.com/tslib/2.5.0 + uid: registry.npmmirror.com/uid/2.0.1 + transitivePeerDependencies: + - encoding + + registry.npmmirror.com/@nestjs/jwt/10.0.3_@nestjs+common@9.3.12: + resolution: {integrity: sha512-WO8MI3uEMOFKpbO+SAg6l4aRCr+9KvaL+raFMZaXuEUDphXek6pqdox+4tex9242pNSJUA0trfAMaiy/yVrXQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/jwt/-/jwt-10.0.3.tgz} + id: registry.npmmirror.com/@nestjs/jwt/10.0.3 + name: '@nestjs/jwt' + version: 10.0.3 + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@types/jsonwebtoken': registry.npmmirror.com/@types/jsonwebtoken/9.0.1 + jsonwebtoken: registry.npmmirror.com/jsonwebtoken/9.0.0 + dev: false + + registry.npmmirror.com/@nestjs/mapped-types/1.2.2_5pvgaw2xy5j677zk7xp6almw2q: + resolution: {integrity: sha512-3dHxLXs3M0GPiriAcCFFJQHoDFUuzTD5w6JDhE7TyfT89YKpe6tcCCIqOZWdXmt9AZjjK30RkHRSFF+QEnWFQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/mapped-types/-/mapped-types-1.2.2.tgz} + id: registry.npmmirror.com/@nestjs/mapped-types/1.2.2 + name: '@nestjs/mapped-types' + version: 1.2.2 + peerDependencies: + '@nestjs/common': ^7.0.8 || ^8.0.0 || ^9.0.0 + class-transformer: ^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0 + class-validator: ^0.11.1 || ^0.12.0 || ^0.13.0 || ^0.14.0 + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + class-transformer: registry.npmmirror.com/class-transformer/0.5.1 + class-validator: registry.npmmirror.com/class-validator/0.14.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + dev: false + + registry.npmmirror.com/@nestjs/passport/9.0.3_ajy2slul3age3kopk444psnhqq: + resolution: {integrity: sha512-HplSJaimEAz1IOZEu+pdJHHJhQyBOPAYWXYHfAPQvRqWtw4FJF1VXl1Qtk9dcXQX1eKytDtH+qBzNQc19GWNEg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/passport/-/passport-9.0.3.tgz} + id: registry.npmmirror.com/@nestjs/passport/9.0.3 + name: '@nestjs/passport' + version: 9.0.3 + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + passport: ^0.4.0 || ^0.5.0 || ^0.6.0 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + passport: registry.npmmirror.com/passport/0.6.0 + dev: false + + registry.npmmirror.com/@nestjs/platform-express/9.4.0_ge4qplnzbmfyi5znl534zhtkn4: + resolution: {integrity: sha512-PpnfghpNq7mwG43z3+pacHulsabUCBMla4nUikntXT525ORpZSDvh/nLi1HLfE4w5+FcINc8/RBOyYTeRVmiRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/platform-express/-/platform-express-9.4.0.tgz} + id: registry.npmmirror.com/@nestjs/platform-express/9.4.0 + name: '@nestjs/platform-express' + version: 9.4.0 + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/core': registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi + body-parser: registry.npmmirror.com/body-parser/1.20.2 + cors: registry.npmmirror.com/cors/2.8.5 + express: registry.npmmirror.com/express/4.18.2 + multer: registry.npmmirror.com/multer/1.4.4-lts.1 + tslib: registry.npmmirror.com/tslib/2.5.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/@nestjs/schematics/9.0.4_n7i3t5jmyrdrkypb5pvfihcmg4: + resolution: {integrity: sha512-egurCfAc4e5i1r2TmeAF0UrOKejFmT5oTdv4b7HcOVPupc3QGU7CbEfGleL3mkM5AjrixTQeMxU9bJ00ttAbGg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/schematics/-/schematics-9.0.4.tgz} + id: registry.npmmirror.com/@nestjs/schematics/9.0.4 + name: '@nestjs/schematics' + version: 9.0.4 + peerDependencies: + typescript: ^4.3.5 + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.0.4_chokidar@3.5.3 + '@angular-devkit/schematics': registry.npmmirror.com/@angular-devkit/schematics/15.0.4_chokidar@3.5.3 + fs-extra: registry.npmmirror.com/fs-extra/11.1.0 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + pluralize: registry.npmmirror.com/pluralize/8.0.0 + typescript: registry.npmmirror.com/typescript/4.9.5 + transitivePeerDependencies: + - chokidar + dev: true + + registry.npmmirror.com/@nestjs/schematics/9.0.4_typescript@4.9.5: + resolution: {integrity: sha512-egurCfAc4e5i1r2TmeAF0UrOKejFmT5oTdv4b7HcOVPupc3QGU7CbEfGleL3mkM5AjrixTQeMxU9bJ00ttAbGg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/schematics/-/schematics-9.0.4.tgz} + id: registry.npmmirror.com/@nestjs/schematics/9.0.4 + name: '@nestjs/schematics' + version: 9.0.4 + peerDependencies: + typescript: ^4.3.5 + dependencies: + '@angular-devkit/core': registry.npmmirror.com/@angular-devkit/core/15.0.4 + '@angular-devkit/schematics': registry.npmmirror.com/@angular-devkit/schematics/15.0.4 + fs-extra: registry.npmmirror.com/fs-extra/11.1.0 + jsonc-parser: registry.npmmirror.com/jsonc-parser/3.2.0 + pluralize: registry.npmmirror.com/pluralize/8.0.0 + typescript: registry.npmmirror.com/typescript/4.9.5 + transitivePeerDependencies: + - chokidar + dev: true + + registry.npmmirror.com/@nestjs/swagger/6.2.1_56wskrocvqeup2a4dyvgnvm62u: + resolution: {integrity: sha512-9M2vkfJHIzLqDZwvM5TEZO0MxRCvIb0xVy0LsmWwxH1lrb0z/4MhU+r2CWDhBtTccVJrKxVPiU2s3T3b9uUJbg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/swagger/-/swagger-6.2.1.tgz} + id: registry.npmmirror.com/@nestjs/swagger/6.2.1 + name: '@nestjs/swagger' + version: 6.2.1 + peerDependencies: + '@fastify/static': ^6.0.0 + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + class-transformer: '*' + class-validator: '*' + reflect-metadata: ^0.1.12 + peerDependenciesMeta: + '@fastify/static': + optional: true + class-transformer: + optional: true + class-validator: + optional: true + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/core': registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi + '@nestjs/mapped-types': registry.npmmirror.com/@nestjs/mapped-types/1.2.2_5pvgaw2xy5j677zk7xp6almw2q + class-transformer: registry.npmmirror.com/class-transformer/0.5.1 + class-validator: registry.npmmirror.com/class-validator/0.14.0 + js-yaml: registry.npmmirror.com/js-yaml/4.1.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + path-to-regexp: registry.npmmirror.com/path-to-regexp/3.2.0 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + swagger-ui-dist: registry.npmmirror.com/swagger-ui-dist/4.15.5 + dev: false + + registry.npmmirror.com/@nestjs/testing/9.3.12_bg77626m2llvm3jr6gcf64hq5i: + resolution: {integrity: sha512-nH274IXEqU4hr4bcb71POe58hYLONt9RcfKKM5ZvOS7wYMnybMpKKR8DkC1WcfE1P2k2GQmQoHeSH5emPtYrBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/testing/-/testing-9.3.12.tgz} + id: registry.npmmirror.com/@nestjs/testing/9.3.12 + name: '@nestjs/testing' + version: 9.3.12 + peerDependencies: + '@nestjs/common': ^9.0.0 + '@nestjs/core': ^9.0.0 + '@nestjs/microservices': ^9.0.0 + '@nestjs/platform-express': ^9.0.0 + peerDependenciesMeta: + '@nestjs/microservices': + optional: true + '@nestjs/platform-express': + optional: true + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/core': registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi + '@nestjs/platform-express': registry.npmmirror.com/@nestjs/platform-express/9.4.0_ge4qplnzbmfyi5znl534zhtkn4 + tslib: registry.npmmirror.com/tslib/2.5.0 + dev: true + + registry.npmmirror.com/@nestjs/typeorm/9.0.1_tczrxjq6l4bicygw3hjjbo47ua: + resolution: {integrity: sha512-A2BgLIPsMtmMI0bPKEf4bmzgFPsnvHqNBx3KkvaJ7hJrBQy0OqYOb+Rr06ifblKWDWS2tUPNrAFQbZjtk3PI+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nestjs/typeorm/-/typeorm-9.0.1.tgz} + id: registry.npmmirror.com/@nestjs/typeorm/9.0.1 + name: '@nestjs/typeorm' + version: 9.0.1 + peerDependencies: + '@nestjs/common': ^8.0.0 || ^9.0.0 + '@nestjs/core': ^8.0.0 || ^9.0.0 + reflect-metadata: ^0.1.13 + rxjs: ^7.2.0 + typeorm: ^0.3.0 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@nestjs/core': registry.npmmirror.com/@nestjs/core/9.3.12_bqouqchnhnpqxepzhamyjg7jwi + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/7.8.0 + typeorm: registry.npmmirror.com/typeorm/0.3.12_4ypsa45gt7d65iggtgknlaajbi + uuid: registry.npmmirror.com/uuid/8.3.2 + dev: false + + registry.npmmirror.com/@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.nlark.com/@nodelib/fs.scandir/2.1.5 + fastq: registry.npmmirror.com/fastq/1.15.0 + dev: true + + registry.npmmirror.com/@nuxtjs/opencollective/0.3.2: + resolution: {integrity: sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz} + name: '@nuxtjs/opencollective' + version: 0.3.2 + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + consola: registry.npmmirror.com/consola/2.15.3 + node-fetch: registry.npmmirror.com/node-fetch/2.6.9 + transitivePeerDependencies: + - encoding + + registry.npmmirror.com/@redis/bloom/1.2.0_@redis+client@1.5.7: + resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@redis/bloom/-/bloom-1.2.0.tgz} + id: registry.npmmirror.com/@redis/bloom/1.2.0 + name: '@redis/bloom' + version: 1.2.0 + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': registry.npmmirror.com/@redis/client/1.5.7 + dev: false + + registry.npmmirror.com/@redis/client/1.5.7: + resolution: {integrity: sha512-gaOBOuJPjK5fGtxSseaKgSvjiZXQCdLlGg9WYQst+/GRUjmXaiB5kVkeQMRtPc7Q2t93XZcJfBMSwzs/XS9UZw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@redis/client/-/client-1.5.7.tgz} + name: '@redis/client' + version: 1.5.7 + engines: {node: '>=14'} + dependencies: + cluster-key-slot: registry.npmmirror.com/cluster-key-slot/1.1.2 + generic-pool: registry.npmmirror.com/generic-pool/3.9.0 + yallist: registry.npmmirror.com/yallist/4.0.0 + dev: false + + registry.npmmirror.com/@redis/graph/1.1.0_@redis+client@1.5.7: + resolution: {integrity: sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@redis/graph/-/graph-1.1.0.tgz} + id: registry.npmmirror.com/@redis/graph/1.1.0 + name: '@redis/graph' + version: 1.1.0 + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': registry.npmmirror.com/@redis/client/1.5.7 + dev: false + + registry.npmmirror.com/@redis/json/1.0.4_@redis+client@1.5.7: + resolution: {integrity: sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@redis/json/-/json-1.0.4.tgz} + id: registry.npmmirror.com/@redis/json/1.0.4 + name: '@redis/json' + version: 1.0.4 + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': registry.npmmirror.com/@redis/client/1.5.7 + dev: false + + registry.npmmirror.com/@redis/search/1.1.2_@redis+client@1.5.7: + resolution: {integrity: sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@redis/search/-/search-1.1.2.tgz} + id: registry.npmmirror.com/@redis/search/1.1.2 + name: '@redis/search' + version: 1.1.2 + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': registry.npmmirror.com/@redis/client/1.5.7 + dev: false + + registry.npmmirror.com/@redis/time-series/1.0.4_@redis+client@1.5.7: + resolution: {integrity: sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@redis/time-series/-/time-series-1.0.4.tgz} + id: registry.npmmirror.com/@redis/time-series/1.0.4 + name: '@redis/time-series' + version: 1.0.4 + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': registry.npmmirror.com/@redis/client/1.5.7 + dev: false + + registry.npmmirror.com/@selderee/plugin-htmlparser2/0.10.0: + resolution: {integrity: sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz} + name: '@selderee/plugin-htmlparser2' + version: 0.10.0 + dependencies: + domhandler: registry.npmmirror.com/domhandler/5.0.3 + selderee: registry.npmmirror.com/selderee/0.10.0 + dev: false + + registry.npmmirror.com/@sinclair/typebox/0.25.24: + resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.25.24.tgz} + name: '@sinclair/typebox' + version: 0.25.24 + dev: true + + registry.npmmirror.com/@sinonjs/commons/2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@sinonjs/commons/-/commons-2.0.0.tgz} + name: '@sinonjs/commons' + version: 2.0.0 + dependencies: + type-detect: registry.npmmirror.com/type-detect/4.0.8 + dev: true + + registry.npmmirror.com/@sinonjs/fake-timers/10.0.2: + resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz} + name: '@sinonjs/fake-timers' + version: 10.0.2 + dependencies: + '@sinonjs/commons': registry.npmmirror.com/@sinonjs/commons/2.0.0 + dev: true + + registry.npmmirror.com/@sqltools/formatter/1.2.5: + resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@sqltools/formatter/-/formatter-1.2.5.tgz} + name: '@sqltools/formatter' + version: 1.2.5 + dev: false + + registry.npmmirror.com/@tokenizer/token/0.3.0: + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tokenizer/token/-/token-0.3.0.tgz} + name: '@tokenizer/token' + version: 0.3.0 + dev: false + + registry.npmmirror.com/@tootallnate/once/1.1.2: + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz} + name: '@tootallnate/once' + version: 1.1.2 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/@tsconfig/node10/1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node10/-/node10-1.0.9.tgz} + name: '@tsconfig/node10' + version: 1.0.9 + + registry.npmmirror.com/@tsconfig/node12/1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node12/-/node12-1.0.11.tgz} + name: '@tsconfig/node12' + version: 1.0.11 + + registry.npmmirror.com/@tsconfig/node14/1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node14/-/node14-1.0.3.tgz} + name: '@tsconfig/node14' + version: 1.0.3 + + registry.npmmirror.com/@tsconfig/node16/1.0.3: + resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@tsconfig/node16/-/node16-1.0.3.tgz} + name: '@tsconfig/node16' + version: 1.0.3 + + registry.npmmirror.com/@types/babel__core/7.20.0: + resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.0.tgz} + name: '@types/babel__core' + version: 7.20.0 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + '@types/babel__generator': registry.npmmirror.com/@types/babel__generator/7.6.4 + '@types/babel__template': registry.npmmirror.com/@types/babel__template/7.4.1 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse/7.18.3 + dev: true + + registry.npmmirror.com/@types/babel__generator/7.6.4: + resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.4.tgz} + name: '@types/babel__generator' + version: 7.6.4 + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@types/babel__template/7.4.1: + resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.1.tgz} + name: '@types/babel__template' + version: 7.4.1 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@types/babel__traverse/7.18.3: + resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz} + name: '@types/babel__traverse' + version: 7.18.3 + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: true + + registry.npmmirror.com/@types/body-parser/1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz} + name: '@types/body-parser' + version: 1.19.2 + dependencies: + '@types/connect': registry.npmmirror.com/@types/connect/3.4.35 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: true + + registry.npmmirror.com/@types/cache-manager-redis-store/2.0.1: + resolution: {integrity: sha512-8QuccvcPieh1xM/5kReE76SfdcIdEB0ePc+54ah/NBuK2eG+6O50SX4WKoJX81UxGdW3sh/WlDaDNqjnqxWNsA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/cache-manager-redis-store/-/cache-manager-redis-store-2.0.1.tgz} + name: '@types/cache-manager-redis-store' + version: 2.0.1 + dependencies: + '@types/cache-manager': registry.npmmirror.com/@types/cache-manager/4.0.2 + '@types/redis': registry.npmmirror.com/@types/redis/2.8.32 + dev: false + + registry.npmmirror.com/@types/cache-manager/4.0.2: + resolution: {integrity: sha512-fT5FMdzsiSX0AbgnS5gDvHl2Nco0h5zYyjwDQy4yPC7Ww6DeGMVKPRqIZtg9HOXDV2kkc18SL1B0N8f0BecrCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/cache-manager/-/cache-manager-4.0.2.tgz} + name: '@types/cache-manager' + version: 4.0.2 + dev: false + + registry.npmmirror.com/@types/connect/3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz} + name: '@types/connect' + version: 3.4.35 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: true + + registry.npmmirror.com/@types/cookiejar/2.1.2: + resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/cookiejar/-/cookiejar-2.1.2.tgz} + name: '@types/cookiejar' + version: 2.1.2 + dev: true + + registry.npmmirror.com/@types/ejs/3.1.2: + resolution: {integrity: sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/ejs/-/ejs-3.1.2.tgz} + name: '@types/ejs' + version: 3.1.2 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@types/eslint-scope/3.7.4: + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz} + name: '@types/eslint-scope' + version: 3.7.4 + dependencies: + '@types/eslint': registry.npmmirror.com/@types/eslint/8.21.3 + '@types/estree': registry.npmmirror.com/@types/estree/0.0.51 + dev: true + + registry.npmmirror.com/@types/eslint/8.21.3: + resolution: {integrity: sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/eslint/-/eslint-8.21.3.tgz} + name: '@types/eslint' + version: 8.21.3 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree/0.0.51 + '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.11 + dev: true + + registry.npmmirror.com/@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz} + name: '@types/estree' + version: 0.0.51 + dev: true + + registry.npmmirror.com/@types/express-serve-static-core/4.17.33: + resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz} + name: '@types/express-serve-static-core' + version: 4.17.33 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + '@types/qs': registry.npmmirror.com/@types/qs/6.9.7 + '@types/range-parser': registry.npmmirror.com/@types/range-parser/1.2.4 + dev: true + + registry.npmmirror.com/@types/express/4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz} + name: '@types/express' + version: 4.17.17 + dependencies: + '@types/body-parser': registry.npmmirror.com/@types/body-parser/1.19.2 + '@types/express-serve-static-core': registry.npmmirror.com/@types/express-serve-static-core/4.17.33 + '@types/qs': registry.npmmirror.com/@types/qs/6.9.7 + '@types/serve-static': registry.npmmirror.com/@types/serve-static/1.15.1 + dev: true + + registry.npmmirror.com/@types/graceful-fs/4.1.6: + resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz} + name: '@types/graceful-fs' + version: 4.1.6 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: true + + registry.npmmirror.com/@types/ioredis/5.0.0: + resolution: {integrity: sha512-zJbJ3FVE17CNl5KXzdeSPtdltc4tMT3TzC6fxQS0sQngkbFZ6h+0uTafsRqu+eSLIugf6Yb0Ea0SUuRr42Nk9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/ioredis/-/ioredis-5.0.0.tgz} + name: '@types/ioredis' + version: 5.0.0 + deprecated: This is a stub types definition. ioredis provides its own type definitions, so you do not need this installed. + dependencies: + ioredis: registry.npmmirror.com/ioredis/4.28.5 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz} + name: '@types/istanbul-lib-coverage' + version: 2.0.4 + dev: true + + registry.npmmirror.com/@types/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} + name: '@types/istanbul-lib-report' + version: 3.0.0 + dependencies: + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4 + dev: true + + registry.npmmirror.com/@types/istanbul-reports/3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz} + name: '@types/istanbul-reports' + version: 3.0.1 + dependencies: + '@types/istanbul-lib-report': registry.npmmirror.com/@types/istanbul-lib-report/3.0.0 + dev: true + + registry.npmmirror.com/@types/jest/29.2.4: + resolution: {integrity: sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/jest/-/jest-29.2.4.tgz} + name: '@types/jest' + version: 29.2.4 + dependencies: + expect: registry.npmmirror.com/expect/29.5.0 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + dev: true + + registry.npmmirror.com/@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} + name: '@types/json-schema' + version: 7.0.11 + dev: true + + registry.npmmirror.com/@types/jsonwebtoken/9.0.1: + resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.1.tgz} + name: '@types/jsonwebtoken' + version: 9.0.1 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: false + + registry.npmmirror.com/@types/mime/3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz} + name: '@types/mime' + version: 3.0.1 + dev: true + + registry.npmmirror.com/@types/node/16.18.22: + resolution: {integrity: sha512-LJSIirgASa1LicFGTUFwDY7BfKDtLIbijqDLkH47LxEo/jtdrtiZ4/kLPD99bEQhTcPcuh6KhDllHqRxygJD2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/node/-/node-16.18.22.tgz} + name: '@types/node' + version: 16.18.22 + dev: false + + registry.npmmirror.com/@types/node/16.9.1: + resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/node/-/node-16.9.1.tgz} + name: '@types/node' + version: 16.9.1 + dev: false + + registry.npmmirror.com/@types/node/18.11.18: + resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/node/-/node-18.11.18.tgz} + name: '@types/node' + version: 18.11.18 + + registry.npmmirror.com/@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz} + name: '@types/normalize-package-data' + version: 2.4.1 + dev: false + + registry.npmmirror.com/@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz} + name: '@types/parse-json' + version: 4.0.0 + dev: true + + registry.npmmirror.com/@types/prettier/2.7.2: + resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/prettier/-/prettier-2.7.2.tgz} + name: '@types/prettier' + version: 2.7.2 + dev: true + + registry.npmmirror.com/@types/pug/2.0.6: + resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/pug/-/pug-2.0.6.tgz} + name: '@types/pug' + version: 2.0.6 + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@types/qs/6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz} + name: '@types/qs' + version: 6.9.7 + dev: true + + registry.npmmirror.com/@types/range-parser/1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz} + name: '@types/range-parser' + version: 1.2.4 + dev: true + + registry.npmmirror.com/@types/redis/2.8.32: + resolution: {integrity: sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/redis/-/redis-2.8.32.tgz} + name: '@types/redis' + version: 2.8.32 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: false + + registry.npmmirror.com/@types/semver/7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/semver/-/semver-7.3.13.tgz} + name: '@types/semver' + version: 7.3.13 + dev: true + + registry.npmmirror.com/@types/serve-static/1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.1.tgz} + name: '@types/serve-static' + version: 1.15.1 + dependencies: + '@types/mime': registry.npmmirror.com/@types/mime/3.0.1 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: true + + registry.npmmirror.com/@types/stack-utils/2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/stack-utils/-/stack-utils-2.0.1.tgz} + name: '@types/stack-utils' + version: 2.0.1 + dev: true + + registry.npmmirror.com/@types/superagent/4.1.16: + resolution: {integrity: sha512-tLfnlJf6A5mB6ddqF159GqcDizfzbMUB1/DeT59/wBNqzRTNNKsaw79A/1TZ84X+f/EwWH8FeuSkjlCLyqS/zQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/superagent/-/superagent-4.1.16.tgz} + name: '@types/superagent' + version: 4.1.16 + dependencies: + '@types/cookiejar': registry.npmmirror.com/@types/cookiejar/2.1.2 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + dev: true + + registry.npmmirror.com/@types/supertest/2.0.12: + resolution: {integrity: sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/supertest/-/supertest-2.0.12.tgz} + name: '@types/supertest' + version: 2.0.12 + dependencies: + '@types/superagent': registry.npmmirror.com/@types/superagent/4.1.16 + dev: true + + registry.npmmirror.com/@types/uuid/9.0.1: + resolution: {integrity: sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/uuid/-/uuid-9.0.1.tgz} + name: '@types/uuid' + version: 9.0.1 + dev: false + + registry.npmmirror.com/@types/validator/13.7.14: + resolution: {integrity: sha512-J6OAed6rhN6zyqL9Of6ZMamhlsOEU/poBVvbHr/dKOYKTeuYYMlDkMv+b6UUV0o2i0tw73cgyv/97WTWaUl0/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/validator/-/validator-13.7.14.tgz} + name: '@types/validator' + version: 13.7.14 + + registry.npmmirror.com/@types/yargs-parser/21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz} + name: '@types/yargs-parser' + version: 21.0.0 + dev: true + + registry.npmmirror.com/@types/yargs/17.0.24: + resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@types/yargs/-/yargs-17.0.24.tgz} + name: '@types/yargs' + version: 17.0.24 + dependencies: + '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser/21.0.0 + dev: true + + registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.57.0_x4rubgibnu7ujqspfqdeho4yiu: + resolution: {integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.57.0 + name: '@typescript-eslint/eslint-plugin' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp/4.5.0 + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.57.0 + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.37.0 + grapheme-splitter: registry.npmmirror.com/grapheme-splitter/1.0.4 + ignore: registry.npmmirror.com/ignore/5.2.4 + natural-compare-lite: registry.npmmirror.com/natural-compare-lite/1.4.0 + semver: registry.npmmirror.com/semver/7.3.8 + tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.9.5 + typescript: registry.npmmirror.com/typescript/4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/parser/5.57.0_ip5up2nocltd47wbnuyybe5dxu: + resolution: {integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.57.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/parser/5.57.0 + name: '@typescript-eslint/parser' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.57.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.57.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.57.0_typescript@4.9.5 + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.37.0 + typescript: registry.npmmirror.com/typescript/4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/scope-manager/5.57.0: + resolution: {integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.57.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.57.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.57.0 + dev: true + + registry.npmmirror.com/@typescript-eslint/type-utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu: + resolution: {integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.57.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/type-utils/5.57.0 + name: '@typescript-eslint/type-utils' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.57.0_typescript@4.9.5 + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu + debug: registry.npmmirror.com/debug/4.3.4 + eslint: registry.npmmirror.com/eslint/8.37.0 + tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.9.5 + typescript: registry.npmmirror.com/typescript/4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/types/5.57.0: + resolution: {integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/types/-/types-5.57.0.tgz} + name: '@typescript-eslint/types' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/@typescript-eslint/typescript-estree/5.57.0_typescript@4.9.5: + resolution: {integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.57.0 + name: '@typescript-eslint/typescript-estree' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.57.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.57.0 + debug: registry.npmmirror.com/debug/4.3.4 + globby: registry.npmmirror.com/globby/11.1.0 + is-glob: registry.npmmirror.com/is-glob/4.0.3 + semver: registry.npmmirror.com/semver/7.3.8 + tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.9.5 + typescript: registry.npmmirror.com/typescript/4.9.5 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@typescript-eslint/utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu: + resolution: {integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.57.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/5.57.0 + name: '@typescript-eslint/utils' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0_eslint@8.37.0 + '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.11 + '@types/semver': registry.npmmirror.com/@types/semver/7.3.13 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.57.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.57.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.57.0_typescript@4.9.5 + eslint: registry.npmmirror.com/eslint/8.37.0 + eslint-scope: registry.npmmirror.com/eslint-scope/5.1.1 + semver: registry.npmmirror.com/semver/7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + registry.npmmirror.com/@typescript-eslint/visitor-keys/5.57.0: + resolution: {integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 5.57.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.57.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.4.0 + dev: true + + registry.npmmirror.com/@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz} + name: '@webassemblyjs/helper-numbers' + version: 1.11.1 + dependencies: + '@webassemblyjs/floating-point-hex-parser': registry.nlark.com/@webassemblyjs/floating-point-hex-parser/1.11.1 + '@webassemblyjs/helper-api-error': registry.nlark.com/@webassemblyjs/helper-api-error/1.11.1 + '@xtuc/long': 4.2.2 + dev: true + + registry.npmmirror.com/@xtuc/ieee754/1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + name: '@xtuc/ieee754' + version: 1.2.0 + dev: true + + registry.npmmirror.com/abbrev/1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/abbrev/-/abbrev-1.1.1.tgz} + name: abbrev + version: 1.1.1 + dev: false + + registry.npmmirror.com/accepts/1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz} + name: accepts + version: 1.3.8 + engines: {node: '>= 0.6'} + dependencies: + mime-types: registry.npmmirror.com/mime-types/2.1.35 + negotiator: registry.npmmirror.com/negotiator/0.6.3 + + registry.npmmirror.com/acorn-import-assertions/1.8.0_acorn@8.8.2: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz} + id: registry.npmmirror.com/acorn-import-assertions/1.8.0 + name: acorn-import-assertions + version: 1.8.0 + peerDependencies: + acorn: ^8 + dependencies: + acorn: registry.npmmirror.com/acorn/8.8.2 + dev: true + + registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.8.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz} + id: registry.npmmirror.com/acorn-jsx/5.3.2 + name: acorn-jsx + version: 5.3.2 + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn/8.8.2 + dev: true + + registry.npmmirror.com/acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz} + name: acorn-walk + version: 8.2.0 + engines: {node: '>=0.4.0'} + + registry.npmmirror.com/acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz} + name: acorn + version: 7.4.1 + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + registry.npmmirror.com/acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/acorn/-/acorn-8.8.2.tgz} + name: acorn + version: 8.8.2 + engines: {node: '>=0.4.0'} + hasBin: true + + registry.npmmirror.com/agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz} + name: agent-base + version: 6.0.2 + engines: {node: '>= 6.0.0'} + dependencies: + debug: registry.npmmirror.com/debug/4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/ajv-formats/1.6.1: + resolution: {integrity: sha512-4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv-formats/-/ajv-formats-1.6.1.tgz} + name: ajv-formats + version: 1.6.1 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: registry.npmmirror.com/ajv/7.2.4 + dev: false + + registry.npmmirror.com/ajv-formats/2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz} + name: ajv-formats + version: 2.1.1 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: registry.npmmirror.com/ajv/8.11.0 + + registry.npmmirror.com/ajv-keywords/3.5.2_ajv@6.12.6: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + id: registry.npmmirror.com/ajv-keywords/3.5.2 + name: ajv-keywords + version: 3.5.2 + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: registry.npmmirror.com/ajv/6.12.6 + dev: true + + registry.npmmirror.com/ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse/0.4.1 + uri-js: registry.npmmirror.com/uri-js/4.4.1 + + registry.npmmirror.com/ajv/7.2.4: + resolution: {integrity: sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv/-/ajv-7.2.4.tgz} + name: ajv + version: 7.2.4 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse/1.0.0 + require-from-string: registry.npmmirror.com/require-from-string/2.0.2 + uri-js: registry.npmmirror.com/uri-js/4.4.1 + dev: false + + registry.npmmirror.com/ajv/8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz} + name: ajv + version: 8.11.0 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse/1.0.0 + require-from-string: registry.npmmirror.com/require-from-string/2.0.2 + uri-js: registry.npmmirror.com/uri-js/4.4.1 + + registry.npmmirror.com/ajv/8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} + name: ajv + version: 8.12.0 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse/1.0.0 + require-from-string: registry.npmmirror.com/require-from-string/2.0.2 + uri-js: registry.npmmirror.com/uri-js/4.4.1 + + registry.npmmirror.com/ansi-colors/4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-colors/-/ansi-colors-4.1.3.tgz} + name: ansi-colors + version: 4.1.3 + engines: {node: '>=6'} + + registry.npmmirror.com/ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz} + name: ansi-escapes + version: 4.3.2 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmmirror.com/type-fest/0.21.3 + dev: true + + registry.npmmirror.com/ansi-regex/5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + + registry.npmmirror.com/ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmmirror.com/color-convert/1.9.3 + + registry.npmmirror.com/ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert/2.0.1 + + registry.npmmirror.com/ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz} + name: ansi-styles + version: 5.2.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/any-base/1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz} + name: any-base + version: 1.1.0 + dev: false + + registry.npmmirror.com/any-promise/1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz} + name: any-promise + version: 1.3.0 + dev: false + + registry.npmmirror.com/anymatch/3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + name: anymatch + version: 3.1.3 + engines: {node: '>= 8'} + dependencies: + normalize-path: registry.npmmirror.com/normalize-path/3.0.0 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + + registry.npmmirror.com/app-root-path/3.1.0: + resolution: {integrity: sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/app-root-path/-/app-root-path-3.1.0.tgz} + name: app-root-path + version: 3.1.0 + engines: {node: '>= 6.0.0'} + dev: false + + registry.npmmirror.com/append-field/1.0.0: + resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/append-field/-/append-field-1.0.0.tgz} + name: append-field + version: 1.0.0 + + registry.npmmirror.com/arg/4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/arg/-/arg-4.1.3.tgz} + name: arg + version: 4.1.3 + + registry.npmmirror.com/argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz} + name: argparse + version: 1.0.10 + dependencies: + sprintf-js: registry.npmmirror.com/sprintf-js/1.0.3 + dev: true + + registry.npmmirror.com/argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + + registry.npmmirror.com/array-flatten/1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz} + name: array-flatten + version: 1.1.1 + + registry.npmmirror.com/array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/asap/-/asap-2.0.6.tgz} + name: asap + version: 2.0.6 + + registry.npmmirror.com/asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/asn1/-/asn1-0.2.6.tgz} + name: asn1 + version: 0.2.6 + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2 + dev: false + + registry.npmmirror.com/assert-never/1.2.1: + resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/assert-never/-/assert-never-1.2.1.tgz} + name: assert-never + version: 1.2.1 + dev: false + + registry.npmmirror.com/assert-plus/1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/assert-plus/-/assert-plus-1.0.0.tgz} + name: assert-plus + version: 1.0.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/ast-types/0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ast-types/-/ast-types-0.13.4.tgz} + name: ast-types + version: 0.13.4 + engines: {node: '>=4'} + dependencies: + tslib: registry.npmmirror.com/tslib/2.5.0 + dev: false + + registry.npmmirror.com/async/3.2.4: + resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/async/-/async-3.2.4.tgz} + name: async + version: 3.2.4 + dev: false + optional: true + + registry.npmmirror.com/asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz} + name: asynckit + version: 0.4.0 + + registry.npmmirror.com/atomically/1.7.0: + resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/atomically/-/atomically-1.7.0.tgz} + name: atomically + version: 1.7.0 + engines: {node: '>=10.12.0'} + dev: false + + registry.npmmirror.com/atomically/2.0.1: + resolution: {integrity: sha512-sxBhVZUFBFhqSAsYMM3X2oaUi2NVDJ8U026FsIusM8gYXls9AYs/eXzgGrufs1Qjpkxi9zunds+75QUFz+m7UQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/atomically/-/atomically-2.0.1.tgz} + name: atomically + version: 2.0.1 + dependencies: + stubborn-fs: registry.npmmirror.com/stubborn-fs/1.2.4 + when-exit: registry.npmmirror.com/when-exit/2.1.0 + dev: false + + registry.npmmirror.com/aws-sign2/0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/aws-sign2/-/aws-sign2-0.7.0.tgz} + name: aws-sign2 + version: 0.7.0 + dev: false + + registry.npmmirror.com/aws4/1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz} + name: aws4 + version: 1.12.0 + dev: false + + registry.npmmirror.com/axios/0.21.1: + resolution: {integrity: sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/axios/-/axios-0.21.1.tgz} + name: axios + version: 0.21.1 + dependencies: + follow-redirects: registry.npmmirror.com/follow-redirects/1.15.2 + transitivePeerDependencies: + - debug + dev: false + + registry.npmmirror.com/axios/1.4.0: + resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/axios/-/axios-1.4.0.tgz} + name: axios + version: 1.4.0 + dependencies: + follow-redirects: registry.npmmirror.com/follow-redirects/1.15.2 + form-data: registry.npmmirror.com/form-data/4.0.0 + proxy-from-env: registry.npmmirror.com/proxy-from-env/1.1.0 + transitivePeerDependencies: + - debug + dev: false + + registry.npmmirror.com/babel-jest/29.5.0_@babel+core@7.21.3: + resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-jest/-/babel-jest-29.5.0.tgz} + id: registry.npmmirror.com/babel-jest/29.5.0 + name: babel-jest + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@jest/transform': registry.npmmirror.com/@jest/transform/29.5.0 + '@types/babel__core': registry.npmmirror.com/@types/babel__core/7.20.0 + babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul/6.1.1 + babel-preset-jest: registry.npmmirror.com/babel-preset-jest/29.5.0_@babel+core@7.21.3 + chalk: registry.npmmirror.com/chalk/4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + slash: registry.npmmirror.com/slash/3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/babel-plugin-istanbul/6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz} + name: babel-plugin-istanbul + version: 6.1.1 + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.20.2 + '@istanbuljs/load-nyc-config': registry.npmmirror.com/@istanbuljs/load-nyc-config/1.1.0 + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema/0.1.3 + istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument/5.2.1 + test-exclude: registry.npmmirror.com/test-exclude/6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/babel-plugin-jest-hoist/29.5.0: + resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz} + name: babel-plugin-jest-hoist + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template/7.20.7 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + '@types/babel__core': registry.npmmirror.com/@types/babel__core/7.20.0 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse/7.18.3 + dev: true + + registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1_@babel+core@7.21.3: + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz} + id: registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1 + name: babel-preset-current-node-syntax + version: 1.0.1 + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.3 + '@babel/plugin-syntax-bigint': registry.npmmirror.com/@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.21.3 + '@babel/plugin-syntax-class-properties': registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.3 + '@babel/plugin-syntax-import-meta': registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.21.3 + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.3 + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.3 + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.3 + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.3 + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.3 + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.3 + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.3 + '@babel/plugin-syntax-top-level-await': registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.3 + dev: true + + registry.npmmirror.com/babel-preset-jest/29.5.0_@babel+core@7.21.3: + resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz} + id: registry.npmmirror.com/babel-preset-jest/29.5.0 + name: babel-preset-jest + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + babel-plugin-jest-hoist: registry.npmmirror.com/babel-plugin-jest-hoist/29.5.0 + babel-preset-current-node-syntax: registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1_@babel+core@7.21.3 + dev: true + + registry.npmmirror.com/babel-walk/3.0.0-canary-5: + resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz} + name: babel-walk + version: 3.0.0-canary-5 + engines: {node: '>= 10.0.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: false + + registry.npmmirror.com/balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + + registry.npmmirror.com/base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} + name: base64-js + version: 1.5.1 + + registry.npmmirror.com/batch/0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/batch/-/batch-0.6.1.tgz} + name: batch + version: 0.6.1 + dev: false + + registry.npmmirror.com/bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz} + name: bcrypt-pbkdf + version: 1.0.2 + dependencies: + tweetnacl: registry.npmmirror.com/tweetnacl/0.14.5 + dev: false + + registry.npmmirror.com/bcryptjs/2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bcryptjs/-/bcryptjs-2.4.3.tgz} + name: bcryptjs + version: 2.4.3 + dev: false + + registry.npmmirror.com/binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + name: binary-extensions + version: 2.2.0 + engines: {node: '>=8'} + + registry.npmmirror.com/bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bl/-/bl-4.1.0.tgz} + name: bl + version: 4.1.0 + dependencies: + buffer: registry.npmmirror.com/buffer/5.7.1 + inherits: registry.npmmirror.com/inherits/2.0.4 + readable-stream: registry.npmmirror.com/readable-stream/3.6.2 + dev: true + + registry.npmmirror.com/bmp-js/0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz} + name: bmp-js + version: 0.1.0 + dev: false + + registry.npmmirror.com/body-parser/1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz} + name: body-parser + version: 1.20.1 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: registry.npmmirror.com/bytes/3.1.2 + content-type: registry.npmmirror.com/content-type/1.0.5 + debug: registry.npmmirror.com/debug/2.6.9 + depd: registry.npmmirror.com/depd/2.0.0 + destroy: registry.npmmirror.com/destroy/1.2.0 + http-errors: registry.npmmirror.com/http-errors/2.0.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + on-finished: registry.npmmirror.com/on-finished/2.4.1 + qs: registry.npmmirror.com/qs/6.11.0 + raw-body: registry.npmmirror.com/raw-body/2.5.1 + type-is: registry.npmmirror.com/type-is/1.6.18 + unpipe: registry.npmmirror.com/unpipe/1.0.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/body-parser/1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz} + name: body-parser + version: 1.20.2 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: registry.npmmirror.com/bytes/3.1.2 + content-type: registry.npmmirror.com/content-type/1.0.5 + debug: registry.npmmirror.com/debug/2.6.9 + depd: registry.npmmirror.com/depd/2.0.0 + destroy: registry.npmmirror.com/destroy/1.2.0 + http-errors: registry.npmmirror.com/http-errors/2.0.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + on-finished: registry.npmmirror.com/on-finished/2.4.1 + qs: registry.npmmirror.com/qs/6.11.0 + raw-body: registry.npmmirror.com/raw-body/2.5.2 + type-is: registry.npmmirror.com/type-is/1.6.18 + unpipe: registry.npmmirror.com/unpipe/1.0.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/boolbase/1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} + name: boolbase + version: 1.0.0 + dev: false + + registry.npmmirror.com/brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match/1.0.2 + concat-map: 0.0.1 + + registry.npmmirror.com/brace-expansion/2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + name: brace-expansion + version: 2.0.1 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match/1.0.2 + + registry.npmmirror.com/braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range/7.0.1 + + registry.npmmirror.com/browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz} + name: browserslist + version: 4.21.5 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite/1.0.30001472 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium/1.4.342 + node-releases: registry.npmmirror.com/node-releases/2.0.10 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db/1.0.10_browserslist@4.21.5 + dev: true + + registry.npmmirror.com/bs-logger/0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bs-logger/-/bs-logger-0.2.6.tgz} + name: bs-logger + version: 0.2.6 + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 + dev: true + + registry.npmmirror.com/bser/2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bser/-/bser-2.1.1.tgz} + name: bser + version: 2.1.1 + dependencies: + node-int64: registry.npmmirror.com/node-int64/0.4.0 + dev: true + + registry.npmmirror.com/buffer-equal-constant-time/1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz} + name: buffer-equal-constant-time + version: 1.0.1 + dev: false + + registry.npmmirror.com/buffer-equal/0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz} + name: buffer-equal + version: 0.0.1 + engines: {node: '>=0.4.0'} + dev: false + + registry.npmmirror.com/buffer-from/1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + + registry.npmmirror.com/buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz} + name: buffer + version: 5.7.1 + dependencies: + base64-js: registry.npmmirror.com/base64-js/1.5.1 + ieee754: registry.npmmirror.com/ieee754/1.2.1 + + registry.npmmirror.com/buffer/6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz} + name: buffer + version: 6.0.3 + dependencies: + base64-js: registry.npmmirror.com/base64-js/1.5.1 + ieee754: registry.npmmirror.com/ieee754/1.2.1 + dev: false + + registry.npmmirror.com/busboy/1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/busboy/-/busboy-1.6.0.tgz} + name: busboy + version: 1.6.0 + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: registry.npmmirror.com/streamsearch/1.1.0 + + registry.npmmirror.com/bytes/3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz} + name: bytes + version: 3.1.2 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/cac/6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cac/-/cac-6.7.14.tgz} + name: cac + version: 6.7.14 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/cache-manager-redis-store/3.0.1: + resolution: {integrity: sha512-o560kw+dFqusC9lQJhcm6L2F2fMKobJ5af+FoR2PdnMVdpQ3f3Bz6qzvObTGyvoazQJxjQNWgMQeChP4vRTuXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cache-manager-redis-store/-/cache-manager-redis-store-3.0.1.tgz} + name: cache-manager-redis-store + version: 3.0.1 + engines: {node: '>= 16.18.0'} + dependencies: + redis: registry.npmmirror.com/redis/4.6.6 + dev: false + + registry.npmmirror.com/cache-manager/5.2.1: + resolution: {integrity: sha512-qYHx0DlM0mepUqXkpDg83K1dYEXOinq9+sYdHxs1c5LQjR1MPgm34im+JVtsy9+uoeE2T1JLzJSAB+nV4IH5dQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cache-manager/-/cache-manager-5.2.1.tgz} + name: cache-manager + version: 5.2.1 + dependencies: + lodash.clonedeep: registry.npmmirror.com/lodash.clonedeep/4.5.0 + lru-cache: registry.npmmirror.com/lru-cache/9.1.1 + + registry.npmmirror.com/call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz} + name: call-bind + version: 1.0.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 + + registry.npmmirror.com/callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/camel-case/3.0.0: + resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/camel-case/-/camel-case-3.0.0.tgz} + name: camel-case + version: 3.0.0 + dependencies: + no-case: registry.npmmirror.com/no-case/2.3.2 + upper-case: registry.npmmirror.com/upper-case/1.1.3 + dev: false + + registry.npmmirror.com/camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} + name: camelcase + version: 5.3.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz} + name: camelcase + version: 6.3.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/caniuse-lite/1.0.30001472: + resolution: {integrity: sha512-xWC/0+hHHQgj3/vrKYY0AAzeIUgr7L9wlELIcAvZdDUHlhL/kNxMdnQLOSOQfP8R51ZzPhmHdyMkI0MMpmxCfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001472.tgz} + name: caniuse-lite + version: 1.0.30001472 + dev: true + + registry.npmmirror.com/caseless/0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/caseless/-/caseless-0.12.0.tgz} + name: caseless + version: 0.12.0 + dev: false + + registry.npmmirror.com/chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles/3.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/1.0.5 + supports-color: registry.npmmirror.com/supports-color/5.5.0 + + registry.npmmirror.com/chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 + supports-color: registry.npmmirror.com/supports-color/7.2.0 + + registry.npmmirror.com/char-regex/1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/char-regex/-/char-regex-1.0.2.tgz} + name: char-regex + version: 1.0.2 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/character-parser/2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/character-parser/-/character-parser-2.2.0.tgz} + name: character-parser + version: 2.2.0 + dependencies: + is-regex: registry.npmmirror.com/is-regex/1.1.4 + dev: false + + registry.npmmirror.com/chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} + name: chardet + version: 0.7.0 + dev: true + + registry.npmmirror.com/chatgpt/5.2.3: + resolution: {integrity: sha512-ToWntojfncLKyfcfoRCkJ9zRQJEYVjyAaXmYI9rsOQ6BauQletmSf51s7acCWUzqumZjldI8wFtmodF37ZofIQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chatgpt/-/chatgpt-5.2.3.tgz} + name: chatgpt + version: 5.2.3 + engines: {node: '>=14'} + hasBin: true + dependencies: + '@dqbd/tiktoken': registry.npmmirror.com/@dqbd/tiktoken/1.0.7 + cac: registry.npmmirror.com/cac/6.7.14 + conf: registry.npmmirror.com/conf/11.0.1 + eventsource-parser: registry.npmmirror.com/eventsource-parser/1.0.0 + keyv: registry.npmmirror.com/keyv/4.5.2 + p-timeout: registry.npmmirror.com/p-timeout/6.1.1 + quick-lru: registry.npmmirror.com/quick-lru/6.1.1 + read-pkg-up: registry.npmmirror.com/read-pkg-up/9.1.0 + uuid: registry.npmmirror.com/uuid/9.0.0 + dev: false + + registry.npmmirror.com/cheerio-select/2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz} + name: cheerio-select + version: 2.1.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase/1.0.0 + css-select: registry.npmmirror.com/css-select/5.1.0 + css-what: registry.npmmirror.com/css-what/6.1.0 + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/5.0.3 + domutils: registry.npmmirror.com/domutils/3.1.0 + dev: false + + registry.npmmirror.com/cheerio/1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cheerio/-/cheerio-1.0.0-rc.12.tgz} + name: cheerio + version: 1.0.0-rc.12 + engines: {node: '>= 6'} + dependencies: + cheerio-select: registry.npmmirror.com/cheerio-select/2.1.0 + dom-serializer: registry.npmmirror.com/dom-serializer/2.0.0 + domhandler: registry.npmmirror.com/domhandler/5.0.3 + domutils: registry.npmmirror.com/domutils/3.1.0 + htmlparser2: registry.npmmirror.com/htmlparser2/8.0.2 + parse5: registry.npmmirror.com/parse5/7.1.2 + parse5-htmlparser2-tree-adapter: registry.npmmirror.com/parse5-htmlparser2-tree-adapter/7.0.0 + dev: false + + registry.npmmirror.com/chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: registry.npmmirror.com/anymatch/3.1.3 + braces: registry.npmmirror.com/braces/3.0.2 + glob-parent: registry.npmmirror.com/glob-parent/5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path/2.1.0 + is-glob: registry.npmmirror.com/is-glob/4.0.3 + normalize-path: registry.npmmirror.com/normalize-path/3.0.0 + readdirp: registry.npmmirror.com/readdirp/3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + + registry.npmmirror.com/chrome-trace-event/1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} + name: chrome-trace-event + version: 1.0.3 + engines: {node: '>=6.0'} + dev: true + + registry.npmmirror.com/ci-info/3.8.0: + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ci-info/-/ci-info-3.8.0.tgz} + name: ci-info + version: 3.8.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/cjs-module-lexer/1.2.2: + resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz} + name: cjs-module-lexer + version: 1.2.2 + dev: true + + registry.npmmirror.com/class-transformer/0.5.1: + resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/class-transformer/-/class-transformer-0.5.1.tgz} + name: class-transformer + version: 0.5.1 + + registry.npmmirror.com/class-validator/0.14.0: + resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/class-validator/-/class-validator-0.14.0.tgz} + name: class-validator + version: 0.14.0 + dependencies: + '@types/validator': registry.npmmirror.com/@types/validator/13.7.14 + libphonenumber-js: registry.npmmirror.com/libphonenumber-js/1.10.24 + validator: registry.npmmirror.com/validator/13.9.0 + + registry.npmmirror.com/clean-css/4.2.4: + resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz} + name: clean-css + version: 4.2.4 + engines: {node: '>= 4.0'} + dependencies: + source-map: registry.npmmirror.com/source-map/0.6.1 + dev: false + + registry.npmmirror.com/cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cli-cursor/-/cli-cursor-3.1.0.tgz} + name: cli-cursor + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + restore-cursor: registry.npmmirror.com/restore-cursor/3.1.0 + dev: true + + registry.npmmirror.com/cli-highlight/2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cli-highlight/-/cli-highlight-2.1.11.tgz} + name: cli-highlight + version: 2.1.11 + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + highlight.js: registry.npmmirror.com/highlight.js/10.7.3 + mz: registry.npmmirror.com/mz/2.7.0 + parse5: registry.npmmirror.com/parse5/5.1.1 + parse5-htmlparser2-tree-adapter: registry.npmmirror.com/parse5-htmlparser2-tree-adapter/6.0.1 + yargs: registry.npmmirror.com/yargs/16.2.0 + dev: false + + registry.npmmirror.com/cli-spinners/2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.7.0.tgz} + name: cli-spinners + version: 2.7.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/cli-table3/0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cli-table3/-/cli-table3-0.6.3.tgz} + name: cli-table3 + version: 0.6.3 + engines: {node: 10.* || >= 12.*} + dependencies: + string-width: registry.npmmirror.com/string-width/4.2.3 + optionalDependencies: + '@colors/colors': registry.npmmirror.com/@colors/colors/1.5.0 + dev: true + + registry.npmmirror.com/cli-width/3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz} + name: cli-width + version: 3.0.0 + engines: {node: '>= 10'} + dev: true + + registry.npmmirror.com/cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cliui/-/cliui-7.0.4.tgz} + name: cliui + version: 7.0.4 + dependencies: + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi/7.0.0 + dev: false + + registry.npmmirror.com/cliui/8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} + name: cliui + version: 8.0.1 + engines: {node: '>=12'} + dependencies: + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi/7.0.0 + + registry.npmmirror.com/clone/1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/clone/-/clone-1.0.4.tgz} + name: clone + version: 1.0.4 + engines: {node: '>=0.8'} + dev: true + + registry.npmmirror.com/cluster-key-slot/1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz} + name: cluster-key-slot + version: 1.1.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/co/4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/co/-/co-4.6.0.tgz} + name: co + version: 4.6.0 + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + registry.npmmirror.com/collect-v8-coverage/1.0.1: + resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz} + name: collect-v8-coverage + version: 1.0.1 + dev: true + + registry.npmmirror.com/color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name/1.1.3 + + registry.npmmirror.com/color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name/1.1.4 + + registry.npmmirror.com/color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + + registry.npmmirror.com/color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + + registry.npmmirror.com/combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz} + name: combined-stream + version: 1.0.8 + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: registry.npmmirror.com/delayed-stream/1.0.0 + + registry.npmmirror.com/commander/2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + + registry.npmmirror.com/commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/commander/-/commander-4.1.1.tgz} + name: commander + version: 4.1.1 + engines: {node: '>= 6'} + dev: true + + registry.npmmirror.com/commander/6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/commander/-/commander-6.2.1.tgz} + name: commander + version: 6.2.1 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/component-emitter/1.3.0: + resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz} + name: component-emitter + version: 1.3.0 + + registry.npmmirror.com/concat-stream/1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz} + name: concat-stream + version: 1.6.2 + engines: {'0': node >= 0.8} + dependencies: + buffer-from: registry.npmmirror.com/buffer-from/1.1.2 + inherits: registry.npmmirror.com/inherits/2.0.4 + readable-stream: registry.npmmirror.com/readable-stream/2.3.8 + typedarray: registry.npmmirror.com/typedarray/0.0.6 + + registry.npmmirror.com/conf/11.0.1: + resolution: {integrity: sha512-WlLiQboEjKx0bYx2IIRGedBgNjLAxtwPaCSnsjWPST5xR0DB4q8lcsO/bEH9ZRYNcj63Y9vj/JG/5Fg6uWzI0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/conf/-/conf-11.0.1.tgz} + name: conf + version: 11.0.1 + engines: {node: '>=14.16'} + dependencies: + ajv: registry.npmmirror.com/ajv/8.12.0 + ajv-formats: registry.npmmirror.com/ajv-formats/2.1.1 + atomically: registry.npmmirror.com/atomically/2.0.1 + debounce-fn: registry.npmmirror.com/debounce-fn/5.1.2 + dot-prop: registry.npmmirror.com/dot-prop/7.2.0 + env-paths: registry.npmmirror.com/env-paths/3.0.0 + json-schema-typed: registry.npmmirror.com/json-schema-typed/8.0.1 + semver: registry.npmmirror.com/semver/7.3.8 + dev: false + + registry.npmmirror.com/conf/9.0.2: + resolution: {integrity: sha512-rLSiilO85qHgaTBIIHQpsv8z+NnVfZq3cKuYNCXN1AOqPzced0GWZEe/A517VldRLyQYXUMyV+vszavE2jSAqw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/conf/-/conf-9.0.2.tgz} + name: conf + version: 9.0.2 + engines: {node: '>=10'} + dependencies: + ajv: registry.npmmirror.com/ajv/7.2.4 + ajv-formats: registry.npmmirror.com/ajv-formats/1.6.1 + atomically: registry.npmmirror.com/atomically/1.7.0 + debounce-fn: registry.npmmirror.com/debounce-fn/4.0.0 + dot-prop: registry.npmmirror.com/dot-prop/6.0.1 + env-paths: registry.npmmirror.com/env-paths/2.2.1 + json-schema-typed: registry.npmmirror.com/json-schema-typed/7.0.3 + make-dir: registry.npmmirror.com/make-dir/3.1.0 + onetime: registry.npmmirror.com/onetime/5.1.2 + pkg-up: registry.npmmirror.com/pkg-up/3.1.0 + semver: registry.npmmirror.com/semver/7.3.8 + dev: false + + registry.npmmirror.com/config-chain/1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz} + name: config-chain + version: 1.1.13 + dependencies: + ini: registry.npmmirror.com/ini/1.3.8 + proto-list: registry.npmmirror.com/proto-list/1.2.4 + dev: false + + registry.npmmirror.com/consola/2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/consola/-/consola-2.15.3.tgz} + name: consola + version: 2.15.3 + + registry.npmmirror.com/constantinople/4.0.1: + resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/constantinople/-/constantinople-4.0.1.tgz} + name: constantinople + version: 4.0.1 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + dev: false + + registry.npmmirror.com/content-disposition/0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz} + name: content-disposition + version: 0.5.4 + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + + registry.npmmirror.com/content-type/1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz} + name: content-type + version: 1.0.5 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} + name: convert-source-map + version: 1.9.0 + dev: true + + registry.npmmirror.com/convert-source-map/2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} + name: convert-source-map + version: 2.0.0 + dev: true + + registry.npmmirror.com/cookie-signature/1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz} + name: cookie-signature + version: 1.0.6 + + registry.npmmirror.com/cookie/0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz} + name: cookie + version: 0.5.0 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/cookiejar/2.1.4: + resolution: {integrity: sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cookiejar/-/cookiejar-2.1.4.tgz} + name: cookiejar + version: 2.1.4 + + registry.npmmirror.com/core-util-is/1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.2.tgz} + name: core-util-is + version: 1.0.2 + dev: false + + registry.npmmirror.com/core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} + name: core-util-is + version: 1.0.3 + + registry.npmmirror.com/cors/2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cors/-/cors-2.8.5.tgz} + name: cors + version: 2.8.5 + engines: {node: '>= 0.10'} + dependencies: + object-assign: registry.npmmirror.com/object-assign/4.1.1 + vary: registry.npmmirror.com/vary/1.1.2 + + registry.npmmirror.com/cos-nodejs-sdk-v5/2.12.0: + resolution: {integrity: sha512-1EIBYN7MGRqsw23RxgwpzNgYk1Nt6wq5DxYUWzi1QWpY6/2rj6taS2EjpuxA0HTcnb4xsL+SXadYJnAjOo3VhA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cos-nodejs-sdk-v5/-/cos-nodejs-sdk-v5-2.12.0.tgz} + name: cos-nodejs-sdk-v5 + version: 2.12.0 + engines: {node: '>= 6'} + dependencies: + conf: registry.npmmirror.com/conf/9.0.2 + fast-xml-parser: registry.npmmirror.com/fast-xml-parser/4.2.2 + mime-types: registry.npmmirror.com/mime-types/2.1.35 + request: registry.npmmirror.com/request/2.88.2 + dev: false + + registry.npmmirror.com/cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz} + name: cosmiconfig + version: 7.1.0 + engines: {node: '>=10'} + dependencies: + '@types/parse-json': registry.npmmirror.com/@types/parse-json/4.0.0 + import-fresh: registry.npmmirror.com/import-fresh/3.3.0 + parse-json: registry.npmmirror.com/parse-json/5.2.0 + path-type: registry.npmmirror.com/path-type/4.0.0 + yaml: registry.npmmirror.com/yaml/1.10.2 + dev: true + + registry.npmmirror.com/create-require/1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/create-require/-/create-require-1.1.1.tgz} + name: create-require + version: 1.1.1 + + registry.npmmirror.com/cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmmirror.com/path-key/3.1.1 + shebang-command: registry.npmmirror.com/shebang-command/2.0.0 + which: registry.npmmirror.com/which/2.0.2 + dev: true + + registry.npmmirror.com/css-rules/1.1.0: + resolution: {integrity: sha512-7L6krLIRwAEVCaVKyCEL6PQjQXUmf8DM9bWYKutlZd0DqOe0SiKIGQOkFb59AjDBb+3If7SDp3X8UlzDAgYSow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/css-rules/-/css-rules-1.1.0.tgz} + name: css-rules + version: 1.1.0 + dependencies: + cssom: registry.npmmirror.com/cssom/0.5.0 + dev: false + + registry.npmmirror.com/css-select/5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz} + name: css-select + version: 5.1.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase/1.0.0 + css-what: registry.npmmirror.com/css-what/6.1.0 + domhandler: registry.npmmirror.com/domhandler/5.0.3 + domutils: registry.npmmirror.com/domutils/3.1.0 + nth-check: registry.npmmirror.com/nth-check/2.1.1 + dev: false + + registry.npmmirror.com/css-what/6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz} + name: css-what + version: 6.1.0 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/cssom/0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/cssom/-/cssom-0.5.0.tgz} + name: cssom + version: 0.5.0 + dev: false + + registry.npmmirror.com/dashdash/1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz} + name: dashdash + version: 1.14.1 + engines: {node: '>=0.10'} + dependencies: + assert-plus: registry.npmmirror.com/assert-plus/1.0.0 + dev: false + + registry.npmmirror.com/data-uri-to-buffer/3.0.1: + resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz} + name: data-uri-to-buffer + version: 3.0.1 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/date-fns/2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/date-fns/-/date-fns-2.29.3.tgz} + name: date-fns + version: 2.29.3 + engines: {node: '>=0.11'} + dev: false + + registry.npmmirror.com/dayjs/1.11.7: + resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz} + name: dayjs + version: 1.11.7 + dev: false + + registry.npmmirror.com/debounce-fn/4.0.0: + resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/debounce-fn/-/debounce-fn-4.0.0.tgz} + name: debounce-fn + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn/3.1.0 + dev: false + + registry.npmmirror.com/debounce-fn/5.1.2: + resolution: {integrity: sha512-Sr4SdOZ4vw6eQDvPYNxHogvrxmCIld/VenC5JbNrFwMiwd7lY/Z18ZFfo+EWNG4DD9nFlAujWAo/wGuOPHmy5A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/debounce-fn/-/debounce-fn-5.1.2.tgz} + name: debounce-fn + version: 5.1.2 + engines: {node: '>=12'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn/4.0.0 + dev: false + + registry.npmmirror.com/debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} + name: debug + version: 2.6.9 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms/2.0.0 + + registry.npmmirror.com/debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms/2.1.2 + + registry.npmmirror.com/dedent/0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dedent/-/dedent-0.7.0.tgz} + name: dedent + version: 0.7.0 + dev: true + + registry.npmmirror.com/deep-is/0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz} + name: deep-is + version: 0.1.4 + + registry.npmmirror.com/deepmerge/4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz} + name: deepmerge + version: 4.3.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/defaults/1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz} + name: defaults + version: 1.0.4 + dependencies: + clone: registry.npmmirror.com/clone/1.0.4 + dev: true + + registry.npmmirror.com/degenerator/3.0.4: + resolution: {integrity: sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/degenerator/-/degenerator-3.0.4.tgz} + name: degenerator + version: 3.0.4 + engines: {node: '>= 6'} + dependencies: + ast-types: registry.npmmirror.com/ast-types/0.13.4 + escodegen: registry.npmmirror.com/escodegen/1.14.3 + esprima: registry.npmmirror.com/esprima/4.0.1 + vm2: registry.npmmirror.com/vm2/3.9.17 + dev: false + + registry.npmmirror.com/delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} + name: delayed-stream + version: 1.0.0 + engines: {node: '>=0.4.0'} + + registry.npmmirror.com/denque/1.5.1: + resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/denque/-/denque-1.5.1.tgz} + name: denque + version: 1.5.1 + engines: {node: '>=0.10'} + dev: false + + registry.npmmirror.com/denque/2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/denque/-/denque-2.1.0.tgz} + name: denque + version: 2.1.0 + engines: {node: '>=0.10'} + dev: false + + registry.npmmirror.com/depd/2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/depd/-/depd-2.0.0.tgz} + name: depd + version: 2.0.0 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/destroy/1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz} + name: destroy + version: 1.2.0 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + registry.npmmirror.com/detect-newline/3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz} + name: detect-newline + version: 3.1.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/detect-node/2.0.4: + resolution: {integrity: sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/detect-node/-/detect-node-2.0.4.tgz} + name: detect-node + version: 2.0.4 + dev: false + + registry.npmmirror.com/detect-node/2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz} + name: detect-node + version: 2.1.0 + dev: false + + registry.npmmirror.com/dezalgo/1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dezalgo/-/dezalgo-1.0.4.tgz} + name: dezalgo + version: 1.0.4 + dependencies: + asap: registry.npmmirror.com/asap/2.0.6 + wrappy: registry.npmmirror.com/wrappy/1.0.2 + + registry.npmmirror.com/diff-sequences/29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/diff-sequences/-/diff-sequences-29.4.3.tgz} + name: diff-sequences + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + registry.npmmirror.com/diff/4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/diff/-/diff-4.0.2.tgz} + name: diff + version: 4.0.2 + engines: {node: '>=0.3.1'} + + registry.npmmirror.com/dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmmirror.com/path-type/4.0.0 + dev: true + + registry.npmmirror.com/doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz} + name: doctrine + version: 3.0.0 + engines: {node: '>=6.0.0'} + dependencies: + esutils: registry.npmmirror.com/esutils/2.0.3 + dev: true + + registry.npmmirror.com/doctypes/1.1.0: + resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/doctypes/-/doctypes-1.1.0.tgz} + name: doctypes + version: 1.1.0 + dev: false + + registry.npmmirror.com/dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} + name: dom-serializer + version: 1.4.1 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/4.3.1 + entities: registry.npmmirror.com/entities/2.2.0 + dev: false + + registry.npmmirror.com/dom-serializer/2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz} + name: dom-serializer + version: 2.0.0 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/5.0.3 + entities: registry.npmmirror.com/entities/4.5.0 + dev: false + + registry.npmmirror.com/dom-walk/0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz} + name: dom-walk + version: 0.1.2 + dev: false + + registry.npmmirror.com/domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} + name: domelementtype + version: 2.3.0 + dev: false + + registry.npmmirror.com/domhandler/3.3.0: + resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/domhandler/-/domhandler-3.3.0.tgz} + name: domhandler + version: 3.3.0 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + dev: false + + registry.npmmirror.com/domhandler/4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} + name: domhandler + version: 4.3.1 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + dev: false + + registry.npmmirror.com/domhandler/5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz} + name: domhandler + version: 5.0.3 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + dev: false + + registry.npmmirror.com/domutils/2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} + name: domutils + version: 2.8.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer/1.4.1 + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/4.3.1 + dev: false + + registry.npmmirror.com/domutils/3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz} + name: domutils + version: 3.1.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer/2.0.0 + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/5.0.3 + dev: false + + registry.npmmirror.com/dot-prop/6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dot-prop/-/dot-prop-6.0.1.tgz} + name: dot-prop + version: 6.0.1 + engines: {node: '>=10'} + dependencies: + is-obj: registry.npmmirror.com/is-obj/2.0.0 + dev: false + + registry.npmmirror.com/dot-prop/7.2.0: + resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dot-prop/-/dot-prop-7.2.0.tgz} + name: dot-prop + version: 7.2.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + type-fest: registry.npmmirror.com/type-fest/2.19.0 + dev: false + + registry.npmmirror.com/dotenv/10.0.0: + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dotenv/-/dotenv-10.0.0.tgz} + name: dotenv + version: 10.0.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/dotenv/16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/dotenv/-/dotenv-16.0.3.tgz} + name: dotenv + version: 16.0.3 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/ecc-jsbn/0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz} + name: ecc-jsbn + version: 0.1.2 + dependencies: + jsbn: registry.npmmirror.com/jsbn/0.1.1 + safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2 + dev: false + + registry.npmmirror.com/ecdsa-sig-formatter/1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz} + name: ecdsa-sig-formatter + version: 1.0.11 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + dev: false + + registry.npmmirror.com/editorconfig/0.15.3: + resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz} + name: editorconfig + version: 0.15.3 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander/2.20.3 + lru-cache: registry.npmmirror.com/lru-cache/4.1.5 + semver: registry.npmmirror.com/semver/5.7.1 + sigmund: registry.npmmirror.com/sigmund/1.0.1 + dev: false + + registry.npmmirror.com/ejs/3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ejs/-/ejs-3.1.9.tgz} + name: ejs + version: 3.1.9 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + dependencies: + jake: registry.npmmirror.com/jake/10.8.5 + dev: false + optional: true + + registry.npmmirror.com/electron-to-chromium/1.4.342: + resolution: {integrity: sha512-dTei3VResi5bINDENswBxhL+N0Mw5YnfWyTqO75KGsVldurEkhC9+CelJVAse8jycWyP8pv3VSj4BSyP8wTWJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.342.tgz} + name: electron-to-chromium + version: 1.4.342 + dev: true + + registry.npmmirror.com/emittery/0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/emittery/-/emittery-0.13.1.tgz} + name: emittery + version: 0.13.1 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + name: emoji-regex + version: 8.0.0 + + registry.npmmirror.com/encodeurl/1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz} + name: encodeurl + version: 1.0.2 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/encoding-japanese/2.0.0: + resolution: {integrity: sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/encoding-japanese/-/encoding-japanese-2.0.0.tgz} + name: encoding-japanese + version: 2.0.0 + engines: {node: '>=8.10.0'} + dev: false + + registry.npmmirror.com/end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} + name: end-of-stream + version: 1.4.4 + dependencies: + once: registry.npmmirror.com/once/1.4.0 + dev: true + + registry.npmmirror.com/enhanced-resolve/5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz} + name: enhanced-resolve + version: 5.12.0 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + tapable: registry.npmmirror.com/tapable/2.2.1 + dev: true + + registry.npmmirror.com/entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} + name: entities + version: 2.2.0 + dev: false + + registry.npmmirror.com/entities/4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/entities/-/entities-4.5.0.tgz} + name: entities + version: 4.5.0 + engines: {node: '>=0.12'} + dev: false + + registry.npmmirror.com/env-paths/2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/env-paths/-/env-paths-2.2.1.tgz} + name: env-paths + version: 2.2.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/env-paths/3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/env-paths/-/env-paths-3.0.0.tgz} + name: env-paths + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} + name: error-ex + version: 1.3.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish/0.2.1 + + registry.npmmirror.com/es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz} + name: es-module-lexer + version: 0.9.3 + dev: true + + registry.npmmirror.com/escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + + registry.npmmirror.com/escape-goat/3.0.0: + resolution: {integrity: sha512-w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escape-goat/-/escape-goat-3.0.0.tgz} + name: escape-goat + version: 3.0.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/escape-html/1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} + name: escape-html + version: 1.0.3 + + registry.npmmirror.com/escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + + registry.npmmirror.com/escape-string-regexp/2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz} + name: escape-string-regexp + version: 2.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/escodegen/1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/escodegen/-/escodegen-1.14.3.tgz} + name: escodegen + version: 1.14.3 + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: registry.npmmirror.com/esprima/4.0.1 + estraverse: registry.npmmirror.com/estraverse/4.3.0 + esutils: registry.npmmirror.com/esutils/2.0.3 + optionator: registry.npmmirror.com/optionator/0.8.3 + optionalDependencies: + source-map: registry.npmmirror.com/source-map/0.6.1 + dev: false + + registry.npmmirror.com/eslint-config-prettier/8.8.0_eslint@8.37.0: + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz} + id: registry.npmmirror.com/eslint-config-prettier/8.8.0 + name: eslint-config-prettier + version: 8.8.0 + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: registry.npmmirror.com/eslint/8.37.0 + dev: true + + registry.npmmirror.com/eslint-plugin-prettier/4.2.1_ybb3aapb7235womryl2tm5ze2u: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz} + id: registry.npmmirror.com/eslint-plugin-prettier/4.2.1 + name: eslint-plugin-prettier + version: 4.2.1 + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: registry.npmmirror.com/eslint/8.37.0 + eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.8.0_eslint@8.37.0 + prettier: registry.npmmirror.com/prettier/2.8.7 + prettier-linter-helpers: registry.npmmirror.com/prettier-linter-helpers/1.0.0 + dev: true + + registry.npmmirror.com/eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse/4.3.0 + estraverse: registry.npmmirror.com/estraverse/4.3.0 + dev: true + + registry.npmmirror.com/eslint-scope/7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz} + name: eslint-scope + version: 7.1.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse/4.3.0 + estraverse: registry.npmmirror.com/estraverse/5.3.0 + dev: true + + registry.npmmirror.com/eslint-visitor-keys/3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz} + name: eslint-visitor-keys + version: 3.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + registry.npmmirror.com/eslint/8.37.0: + resolution: {integrity: sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eslint/-/eslint-8.37.0.tgz} + name: eslint + version: 8.37.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0_eslint@8.37.0 + '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp/4.5.0 + '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc/2.0.2 + '@eslint/js': registry.npmmirror.com/@eslint/js/8.37.0 + '@humanwhocodes/config-array': registry.npmmirror.com/@humanwhocodes/config-array/0.11.8 + '@humanwhocodes/module-importer': registry.npmmirror.com/@humanwhocodes/module-importer/1.0.1 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk/1.2.8 + ajv: registry.npmmirror.com/ajv/6.12.6 + chalk: registry.npmmirror.com/chalk/4.1.2 + cross-spawn: registry.npmmirror.com/cross-spawn/7.0.3 + debug: registry.npmmirror.com/debug/4.3.4 + doctrine: registry.npmmirror.com/doctrine/3.0.0 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/4.0.0 + eslint-scope: registry.npmmirror.com/eslint-scope/7.1.1 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.4.0 + espree: registry.npmmirror.com/espree/9.5.1 + esquery: registry.npmmirror.com/esquery/1.5.0 + esutils: registry.npmmirror.com/esutils/2.0.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3 + file-entry-cache: registry.npmmirror.com/file-entry-cache/6.0.1 + find-up: registry.npmmirror.com/find-up/5.0.0 + glob-parent: registry.npmmirror.com/glob-parent/6.0.2 + globals: registry.npmmirror.com/globals/13.20.0 + grapheme-splitter: registry.npmmirror.com/grapheme-splitter/1.0.4 + ignore: registry.npmmirror.com/ignore/5.2.4 + import-fresh: registry.npmmirror.com/import-fresh/3.3.0 + imurmurhash: registry.npmmirror.com/imurmurhash/0.1.4 + is-glob: registry.npmmirror.com/is-glob/4.0.3 + is-path-inside: registry.npmmirror.com/is-path-inside/3.0.3 + js-sdsl: registry.npmmirror.com/js-sdsl/4.4.0 + js-yaml: registry.npmmirror.com/js-yaml/4.1.0 + json-stable-stringify-without-jsonify: registry.npmmirror.com/json-stable-stringify-without-jsonify/1.0.1 + levn: registry.npmmirror.com/levn/0.4.1 + lodash.merge: registry.npmmirror.com/lodash.merge/4.6.2 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + natural-compare: registry.npmmirror.com/natural-compare/1.4.0 + optionator: registry.npmmirror.com/optionator/0.9.1 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1 + text-table: registry.npmmirror.com/text-table/0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/espree/9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/espree/-/espree-9.5.1.tgz} + name: espree + version: 9.5.1 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: registry.npmmirror.com/acorn/8.8.2 + acorn-jsx: registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.8.2 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.4.0 + dev: true + + registry.npmmirror.com/esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} + name: esprima + version: 4.0.1 + engines: {node: '>=4'} + hasBin: true + + registry.npmmirror.com/esquery/1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esquery/-/esquery-1.5.0.tgz} + name: esquery + version: 1.5.0 + engines: {node: '>=0.10'} + dependencies: + estraverse: registry.npmmirror.com/estraverse/5.3.0 + dev: true + + registry.npmmirror.com/esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse/5.3.0 + dev: true + + registry.npmmirror.com/estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + + registry.npmmirror.com/estraverse/5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: true + + registry.npmmirror.com/esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/etag/1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/etag/-/etag-1.8.1.tgz} + name: etag + version: 1.8.1 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/events/3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/events/-/events-3.3.0.tgz} + name: events + version: 3.3.0 + engines: {node: '>=0.8.x'} + dev: true + + registry.npmmirror.com/eventsource-parser/1.0.0: + resolution: {integrity: sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/eventsource-parser/-/eventsource-parser-1.0.0.tgz} + name: eventsource-parser + version: 1.0.0 + engines: {node: '>=14.18'} + dev: false + + registry.npmmirror.com/execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/execa/-/execa-4.1.0.tgz} + name: execa + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn/7.0.3 + get-stream: registry.npmmirror.com/get-stream/5.2.0 + human-signals: registry.npmmirror.com/human-signals/1.1.1 + is-stream: registry.npmmirror.com/is-stream/2.0.1 + merge-stream: registry.npmmirror.com/merge-stream/2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path/4.0.1 + onetime: registry.npmmirror.com/onetime/5.1.2 + signal-exit: registry.npmmirror.com/signal-exit/3.0.7 + strip-final-newline: registry.npmmirror.com/strip-final-newline/2.0.0 + dev: true + + registry.npmmirror.com/execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/execa/-/execa-5.1.1.tgz} + name: execa + version: 5.1.1 + engines: {node: '>=10'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn/7.0.3 + get-stream: registry.npmmirror.com/get-stream/6.0.1 + human-signals: registry.npmmirror.com/human-signals/2.1.0 + is-stream: registry.npmmirror.com/is-stream/2.0.1 + merge-stream: registry.npmmirror.com/merge-stream/2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path/4.0.1 + onetime: registry.npmmirror.com/onetime/5.1.2 + signal-exit: registry.npmmirror.com/signal-exit/3.0.7 + strip-final-newline: registry.npmmirror.com/strip-final-newline/2.0.0 + dev: true + + registry.npmmirror.com/exif-parser/0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz} + name: exif-parser + version: 0.1.12 + dev: false + + registry.npmmirror.com/exit/0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/exit/-/exit-0.1.2.tgz} + name: exit + version: 0.1.2 + engines: {node: '>= 0.8.0'} + dev: true + + registry.npmmirror.com/expect/29.5.0: + resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/expect/-/expect-29.5.0.tgz} + name: expect + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': registry.npmmirror.com/@jest/expect-utils/29.5.0 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/29.5.0 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + dev: true + + registry.npmmirror.com/express/4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/express/-/express-4.18.2.tgz} + name: express + version: 4.18.2 + engines: {node: '>= 0.10.0'} + dependencies: + accepts: registry.npmmirror.com/accepts/1.3.8 + array-flatten: registry.npmmirror.com/array-flatten/1.1.1 + body-parser: registry.npmmirror.com/body-parser/1.20.1 + content-disposition: registry.npmmirror.com/content-disposition/0.5.4 + content-type: registry.npmmirror.com/content-type/1.0.5 + cookie: registry.npmmirror.com/cookie/0.5.0 + cookie-signature: registry.npmmirror.com/cookie-signature/1.0.6 + debug: registry.npmmirror.com/debug/2.6.9 + depd: registry.npmmirror.com/depd/2.0.0 + encodeurl: registry.npmmirror.com/encodeurl/1.0.2 + escape-html: registry.npmmirror.com/escape-html/1.0.3 + etag: registry.npmmirror.com/etag/1.8.1 + finalhandler: registry.npmmirror.com/finalhandler/1.2.0 + fresh: registry.npmmirror.com/fresh/0.5.2 + http-errors: registry.npmmirror.com/http-errors/2.0.0 + merge-descriptors: registry.npmmirror.com/merge-descriptors/1.0.1 + methods: registry.npmmirror.com/methods/1.1.2 + on-finished: registry.npmmirror.com/on-finished/2.4.1 + parseurl: registry.npmmirror.com/parseurl/1.3.3 + path-to-regexp: registry.npmmirror.com/path-to-regexp/0.1.7 + proxy-addr: registry.npmmirror.com/proxy-addr/2.0.7 + qs: registry.npmmirror.com/qs/6.11.0 + range-parser: registry.npmmirror.com/range-parser/1.2.1 + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + send: registry.npmmirror.com/send/0.18.0 + serve-static: registry.npmmirror.com/serve-static/1.15.0 + setprototypeof: registry.nlark.com/setprototypeof/1.2.0 + statuses: registry.npmmirror.com/statuses/2.0.1 + type-is: registry.npmmirror.com/type-is/1.6.18 + utils-merge: registry.npmmirror.com/utils-merge/1.0.1 + vary: registry.npmmirror.com/vary/1.1.2 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} + name: extend + version: 3.0.2 + dev: false + + registry.npmmirror.com/external-editor/3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} + name: external-editor + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + chardet: registry.npmmirror.com/chardet/0.7.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + tmp: registry.npmmirror.com/tmp/0.0.33 + dev: true + + registry.npmmirror.com/extract-css/3.0.1: + resolution: {integrity: sha512-mLNcMxYX7JVPcGUw7pgjczasLnvimYGlXFWuSx2YQ421sZDlBq4Dh0UzsSeXutf80Z0P2BtV5ZZt0FbaWTOxsQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/extract-css/-/extract-css-3.0.1.tgz} + name: extract-css + version: 3.0.1 + dependencies: + batch: registry.npmmirror.com/batch/0.6.1 + href-content: registry.npmmirror.com/href-content/2.0.2 + list-stylesheets: registry.npmmirror.com/list-stylesheets/2.0.1 + style-data: registry.npmmirror.com/style-data/2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/extsprintf/1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz} + name: extsprintf + version: 1.3.0 + engines: {'0': node >=0.6.0} + dev: false + + registry.npmmirror.com/fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + + registry.npmmirror.com/fast-diff/1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz} + name: fast-diff + version: 1.2.0 + dev: true + + registry.npmmirror.com/fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + name: fast-glob + version: 3.2.12 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat/2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk/1.2.8 + glob-parent: registry.npmmirror.com/glob-parent/5.1.2 + merge2: registry.npmmirror.com/merge2/1.4.1 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + dev: true + + registry.npmmirror.com/fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + + registry.npmmirror.com/fast-levenshtein/2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz} + name: fast-levenshtein + version: 2.0.6 + + registry.npmmirror.com/fast-safe-stringify/2.0.7: + resolution: {integrity: sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz} + name: fast-safe-stringify + version: 2.0.7 + dev: false + + registry.npmmirror.com/fast-safe-stringify/2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz} + name: fast-safe-stringify + version: 2.1.1 + + registry.npmmirror.com/fast-xml-parser/4.2.2: + resolution: {integrity: sha512-DLzIPtQqmvmdq3VUKR7T6omPK/VCRNqgFlGtbESfyhcH2R4I8EzK1/K6E8PkRCK2EabWrUHK32NjYRbEFnnz0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-4.2.2.tgz} + name: fast-xml-parser + version: 4.2.2 + hasBin: true + dependencies: + strnum: registry.npmmirror.com/strnum/1.0.5 + dev: false + + registry.npmmirror.com/fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmmirror.com/reusify/1.0.4 + dev: true + + registry.npmmirror.com/fb-watchman/2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz} + name: fb-watchman + version: 2.0.2 + dependencies: + bser: registry.npmmirror.com/bser/2.1.1 + dev: true + + registry.npmmirror.com/figures/3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/figures/-/figures-3.2.0.tgz} + name: figures + version: 3.2.0 + engines: {node: '>=8'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/1.0.5 + dev: true + + registry.npmmirror.com/file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + name: file-entry-cache + version: 6.0.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: registry.npmmirror.com/flat-cache/3.0.4 + dev: true + + registry.npmmirror.com/file-type/16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/file-type/-/file-type-16.5.4.tgz} + name: file-type + version: 16.5.4 + engines: {node: '>=10'} + dependencies: + readable-web-to-node-stream: registry.npmmirror.com/readable-web-to-node-stream/3.0.2 + strtok3: registry.npmmirror.com/strtok3/6.3.0 + token-types: registry.npmmirror.com/token-types/4.2.1 + dev: false + + registry.npmmirror.com/file-uri-to-path/2.0.0: + resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz} + name: file-uri-to-path + version: 2.0.0 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/filelist/1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/filelist/-/filelist-1.0.4.tgz} + name: filelist + version: 1.0.4 + dependencies: + minimatch: registry.npmmirror.com/minimatch/5.1.6 + dev: false + optional: true + + registry.npmmirror.com/fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range/5.0.1 + + registry.npmmirror.com/finalhandler/1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz} + name: finalhandler + version: 1.2.0 + engines: {node: '>= 0.8'} + dependencies: + debug: registry.npmmirror.com/debug/2.6.9 + encodeurl: registry.npmmirror.com/encodeurl/1.0.2 + escape-html: registry.npmmirror.com/escape-html/1.0.3 + on-finished: registry.npmmirror.com/on-finished/2.4.1 + parseurl: registry.npmmirror.com/parseurl/1.3.3 + statuses: registry.npmmirror.com/statuses/2.0.1 + unpipe: registry.npmmirror.com/unpipe/1.0.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/find-up/3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz} + name: find-up + version: 3.0.0 + engines: {node: '>=6'} + dependencies: + locate-path: registry.npmmirror.com/locate-path/3.0.0 + dev: false + + registry.npmmirror.com/find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} + name: find-up + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + locate-path: registry.npmmirror.com/locate-path/5.0.0 + path-exists: registry.npmmirror.com/path-exists/4.0.0 + dev: true + + registry.npmmirror.com/find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} + name: find-up + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmmirror.com/locate-path/6.0.0 + path-exists: registry.npmmirror.com/path-exists/4.0.0 + dev: true + + registry.npmmirror.com/find-up/6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/find-up/-/find-up-6.3.0.tgz} + name: find-up + version: 6.3.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + locate-path: registry.npmmirror.com/locate-path/7.2.0 + path-exists: registry.npmmirror.com/path-exists/5.0.0 + dev: false + + registry.npmmirror.com/flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz} + name: flat-cache + version: 3.0.4 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.npmmirror.com/flatted/3.2.7 + rimraf: registry.npmmirror.com/rimraf/3.0.2 + dev: true + + registry.npmmirror.com/flat-util/1.1.9: + resolution: {integrity: sha512-BOTMw/6rbbxVjv5JQvwgGMc2/6wWGd2VeyTvnzvvE49VRjS0tTxLbry/QVP1yPw8SaAOBYsnixmzruXoqjdUHA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/flat-util/-/flat-util-1.1.9.tgz} + name: flat-util + version: 1.1.9 + dev: false + + registry.npmmirror.com/flatted/3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz} + name: flatted + version: 3.2.7 + dev: true + + registry.npmmirror.com/follow-redirects/1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz} + name: follow-redirects + version: 1.15.2 + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + registry.npmmirror.com/foreachasync/3.0.0: + resolution: {integrity: sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/foreachasync/-/foreachasync-3.0.0.tgz} + name: foreachasync + version: 3.0.0 + dev: false + + registry.npmmirror.com/forever-agent/0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/forever-agent/-/forever-agent-0.6.1.tgz} + name: forever-agent + version: 0.6.1 + dev: false + + registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0_a37q6j7dwawz22saey2vgkpwqm: + resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz} + id: registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0 + name: fork-ts-checker-webpack-plugin + version: 8.0.0 + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0' + webpack: ^5.11.0 + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + chalk: registry.npmmirror.com/chalk/4.1.2 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + cosmiconfig: registry.npmmirror.com/cosmiconfig/7.1.0 + deepmerge: registry.npmmirror.com/deepmerge/4.3.1 + fs-extra: registry.npmmirror.com/fs-extra/10.1.0 + memfs: registry.npmmirror.com/memfs/3.4.13 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + node-abort-controller: registry.npmmirror.com/node-abort-controller/3.1.1 + schema-utils: registry.npmmirror.com/schema-utils/3.1.1 + semver: registry.npmmirror.com/semver/7.3.8 + tapable: registry.npmmirror.com/tapable/2.2.1 + typescript: registry.npmmirror.com/typescript/4.9.5 + webpack: registry.npmmirror.com/webpack/5.76.2 + dev: true + + registry.npmmirror.com/form-data/2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/form-data/-/form-data-2.3.3.tgz} + name: form-data + version: 2.3.3 + engines: {node: '>= 0.12'} + dependencies: + asynckit: registry.npmmirror.com/asynckit/0.4.0 + combined-stream: registry.npmmirror.com/combined-stream/1.0.8 + mime-types: registry.npmmirror.com/mime-types/2.1.35 + dev: false + + registry.npmmirror.com/form-data/4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz} + name: form-data + version: 4.0.0 + engines: {node: '>= 6'} + dependencies: + asynckit: registry.npmmirror.com/asynckit/0.4.0 + combined-stream: registry.npmmirror.com/combined-stream/1.0.8 + mime-types: registry.npmmirror.com/mime-types/2.1.35 + + registry.npmmirror.com/formidable/2.1.2: + resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/formidable/-/formidable-2.1.2.tgz} + name: formidable + version: 2.1.2 + dependencies: + dezalgo: registry.npmmirror.com/dezalgo/1.0.4 + hexoid: registry.npmmirror.com/hexoid/1.0.0 + once: registry.npmmirror.com/once/1.4.0 + qs: registry.npmmirror.com/qs/6.11.1 + + registry.npmmirror.com/forwarded/0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz} + name: forwarded + version: 0.2.0 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/fresh/0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz} + name: fresh + version: 0.5.2 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/fs-extra/10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} + name: fs-extra + version: 10.1.0 + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jsonfile: registry.npmmirror.com/jsonfile/6.1.0 + universalify: registry.npmmirror.com/universalify/2.0.0 + dev: true + + registry.npmmirror.com/fs-extra/11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.0.tgz} + name: fs-extra + version: 11.1.0 + engines: {node: '>=14.14'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jsonfile: registry.npmmirror.com/jsonfile/6.1.0 + universalify: registry.npmmirror.com/universalify/2.0.0 + dev: true + + registry.npmmirror.com/fs-extra/8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz} + name: fs-extra + version: 8.1.0 + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jsonfile: registry.npmmirror.com/jsonfile/4.0.0 + universalify: registry.npmmirror.com/universalify/0.1.2 + dev: false + + registry.npmmirror.com/fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz} + name: fs-monkey + version: 1.0.3 + dev: true + + registry.npmmirror.com/fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + + registry.npmmirror.com/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/ftp/0.3.10: + resolution: {integrity: sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ftp/-/ftp-0.3.10.tgz} + name: ftp + version: 0.3.10 + engines: {node: '>=0.8.0'} + dependencies: + readable-stream: registry.npmmirror.com/readable-stream/1.1.14 + xregexp: registry.npmmirror.com/xregexp/2.0.0 + dev: false + + registry.npmmirror.com/function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + + registry.npmmirror.com/generate-function/2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/generate-function/-/generate-function-2.3.1.tgz} + name: generate-function + version: 2.3.1 + dependencies: + is-property: registry.npmmirror.com/is-property/1.0.2 + dev: false + + registry.npmmirror.com/generic-pool/3.9.0: + resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/generic-pool/-/generic-pool-3.9.0.tgz} + name: generic-pool + version: 3.9.0 + engines: {node: '>= 4'} + dev: false + + registry.npmmirror.com/gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + name: gensync + version: 1.0.0-beta.2 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} + name: get-caller-file + version: 2.0.5 + engines: {node: 6.* || 8.* || >= 10.*} + + registry.npmmirror.com/get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz} + name: get-intrinsic + version: 1.2.0 + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + has: registry.npmmirror.com/has/1.0.3 + has-symbols: registry.npmmirror.com/has-symbols/1.0.3 + + registry.npmmirror.com/get-package-type/0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz} + name: get-package-type + version: 0.1.0 + engines: {node: '>=8.0.0'} + dev: true + + registry.npmmirror.com/get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz} + name: get-stream + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + pump: registry.npmmirror.com/pump/3.0.0 + dev: true + + registry.npmmirror.com/get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} + name: get-stream + version: 6.0.1 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/get-uri/3.0.2: + resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/get-uri/-/get-uri-3.0.2.tgz} + name: get-uri + version: 3.0.2 + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': registry.npmmirror.com/@tootallnate/once/1.1.2 + data-uri-to-buffer: registry.npmmirror.com/data-uri-to-buffer/3.0.1 + debug: registry.npmmirror.com/debug/4.3.4 + file-uri-to-path: registry.npmmirror.com/file-uri-to-path/2.0.0 + fs-extra: registry.npmmirror.com/fs-extra/8.1.0 + ftp: registry.npmmirror.com/ftp/0.3.10 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/getpass/0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/getpass/-/getpass-0.1.7.tgz} + name: getpass + version: 0.1.7 + dependencies: + assert-plus: registry.npmmirror.com/assert-plus/1.0.0 + dev: false + + registry.npmmirror.com/gifwrap/0.9.4: + resolution: {integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/gifwrap/-/gifwrap-0.9.4.tgz} + name: gifwrap + version: 0.9.4 + dependencies: + image-q: registry.npmmirror.com/image-q/4.0.0 + omggif: registry.npmmirror.com/omggif/1.0.10 + dev: false + + registry.npmmirror.com/glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob/4.0.3 + + registry.npmmirror.com/glob-parent/6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz} + name: glob-parent + version: 6.0.2 + engines: {node: '>=10.13.0'} + dependencies: + is-glob: registry.npmmirror.com/is-glob/4.0.3 + dev: true + + registry.npmmirror.com/glob-to-regexp/0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + name: glob-to-regexp + version: 0.4.1 + dev: true + + registry.npmmirror.com/glob/7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath/1.0.0 + inflight: registry.npmmirror.com/inflight/1.0.6 + inherits: registry.npmmirror.com/inherits/2.0.4 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + once: registry.npmmirror.com/once/1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute/1.0.1 + + registry.npmmirror.com/glob/8.0.3: + resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-8.0.3.tgz} + name: glob + version: 8.0.3 + engines: {node: '>=12'} + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath/1.0.0 + inflight: registry.npmmirror.com/inflight/1.0.6 + inherits: registry.npmmirror.com/inherits/2.0.4 + minimatch: registry.npmmirror.com/minimatch/5.1.6 + once: registry.npmmirror.com/once/1.4.0 + dev: false + + registry.npmmirror.com/glob/8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-8.1.0.tgz} + name: glob + version: 8.1.0 + engines: {node: '>=12'} + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath/1.0.0 + inflight: registry.npmmirror.com/inflight/1.0.6 + inherits: registry.npmmirror.com/inherits/2.0.4 + minimatch: registry.npmmirror.com/minimatch/5.1.6 + once: registry.npmmirror.com/once/1.4.0 + dev: false + + registry.npmmirror.com/glob/9.3.2: + resolution: {integrity: sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/glob/-/glob-9.3.2.tgz} + name: glob + version: 9.3.2 + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath/1.0.0 + minimatch: registry.npmmirror.com/minimatch/7.4.3 + minipass: registry.npmmirror.com/minipass/4.2.5 + path-scurry: registry.npmmirror.com/path-scurry/1.6.3 + dev: true + + registry.npmmirror.com/global/4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/global/-/global-4.4.0.tgz} + name: global + version: 4.4.0 + dependencies: + min-document: registry.npmmirror.com/min-document/2.19.0 + process: registry.npmmirror.com/process/0.11.10 + dev: false + + registry.npmmirror.com/globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/globals/-/globals-13.20.0.tgz} + name: globals + version: 13.20.0 + engines: {node: '>=8'} + dependencies: + type-fest: registry.npmmirror.com/type-fest/0.20.2 + dev: true + + registry.npmmirror.com/globby/11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmmirror.com/array-union/2.1.0 + dir-glob: registry.npmmirror.com/dir-glob/3.0.1 + fast-glob: registry.npmmirror.com/fast-glob/3.2.12 + ignore: registry.npmmirror.com/ignore/5.2.4 + merge2: registry.npmmirror.com/merge2/1.4.1 + slash: registry.npmmirror.com/slash/3.0.0 + dev: true + + registry.npmmirror.com/graceful-fs/4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + + registry.npmmirror.com/grapheme-splitter/1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz} + name: grapheme-splitter + version: 1.0.4 + dev: true + + registry.npmmirror.com/guid-typescript/1.0.9: + resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/guid-typescript/-/guid-typescript-1.0.9.tgz} + name: guid-typescript + version: 1.0.9 + dev: false + + registry.npmmirror.com/handlebars/4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/handlebars/-/handlebars-4.7.7.tgz} + name: handlebars + version: 4.7.7 + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist/1.2.8 + neo-async: registry.npmmirror.com/neo-async/2.6.2 + source-map: registry.npmmirror.com/source-map/0.6.1 + wordwrap: registry.npmmirror.com/wordwrap/1.0.0 + optionalDependencies: + uglify-js: registry.npmmirror.com/uglify-js/3.17.4 + dev: false + + registry.npmmirror.com/har-schema/2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/har-schema/-/har-schema-2.0.0.tgz} + name: har-schema + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/har-validator/5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/har-validator/-/har-validator-5.1.5.tgz} + name: har-validator + version: 5.1.5 + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: registry.npmmirror.com/ajv/6.12.6 + har-schema: registry.npmmirror.com/har-schema/2.0.0 + dev: false + + registry.npmmirror.com/has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + + registry.npmmirror.com/has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/has-symbols/1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + + registry.npmmirror.com/has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols/1.0.3 + dev: false + + registry.npmmirror.com/has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + + registry.npmmirror.com/hbs/4.2.0: + resolution: {integrity: sha512-dQwHnrfWlTk5PvG9+a45GYpg0VpX47ryKF8dULVd6DtwOE6TEcYQXQ5QM6nyOx/h7v3bvEQbdn19EDAcfUAgZg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/hbs/-/hbs-4.2.0.tgz} + name: hbs + version: 4.2.0 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + handlebars: registry.npmmirror.com/handlebars/4.7.7 + walk: registry.npmmirror.com/walk/2.3.15 + dev: false + + registry.npmmirror.com/he/1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/he/-/he-1.2.0.tgz} + name: he + version: 1.2.0 + hasBin: true + dev: false + + registry.npmmirror.com/hexoid/1.0.0: + resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/hexoid/-/hexoid-1.0.0.tgz} + name: hexoid + version: 1.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/highlight.js/10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz} + name: highlight.js + version: 10.7.3 + dev: false + + registry.npmmirror.com/hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + name: hosted-git-info + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache/6.0.0 + dev: false + + registry.npmmirror.com/href-content/2.0.2: + resolution: {integrity: sha512-f/e40VYI+KciPGfFzfdw1wu8dptpUA9rYQJNbpYVRI217lyuo7nBNO7BjYfTiQMhU/AthfvPDMvj46uAgzUccQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/href-content/-/href-content-2.0.2.tgz} + name: href-content + version: 2.0.2 + dependencies: + remote-content: registry.npmmirror.com/remote-content/3.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/html-escaper/2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/html-escaper/-/html-escaper-2.0.2.tgz} + name: html-escaper + version: 2.0.2 + dev: true + + registry.npmmirror.com/html-minifier/4.0.0: + resolution: {integrity: sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/html-minifier/-/html-minifier-4.0.0.tgz} + name: html-minifier + version: 4.0.0 + engines: {node: '>=6'} + hasBin: true + dependencies: + camel-case: registry.npmmirror.com/camel-case/3.0.0 + clean-css: registry.npmmirror.com/clean-css/4.2.4 + commander: registry.npmmirror.com/commander/2.20.3 + he: registry.npmmirror.com/he/1.2.0 + param-case: registry.npmmirror.com/param-case/2.1.1 + relateurl: registry.npmmirror.com/relateurl/0.2.7 + uglify-js: registry.npmmirror.com/uglify-js/3.17.4 + dev: false + + registry.npmmirror.com/html-to-text/9.0.4: + resolution: {integrity: sha512-ckrQ5N2yZS7qSgKxUbqrBZ02NxD5cSy7KuYjCNIf+HWbdzY3fbjYjQsoRIl6TiaZ4+XWOi0ggFP8/pmgCK/o+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/html-to-text/-/html-to-text-9.0.4.tgz} + name: html-to-text + version: 9.0.4 + engines: {node: '>=14'} + dependencies: + '@selderee/plugin-htmlparser2': registry.npmmirror.com/@selderee/plugin-htmlparser2/0.10.0 + deepmerge: registry.npmmirror.com/deepmerge/4.3.1 + dom-serializer: registry.npmmirror.com/dom-serializer/2.0.0 + htmlparser2: registry.npmmirror.com/htmlparser2/8.0.2 + selderee: registry.npmmirror.com/selderee/0.10.0 + dev: false + + registry.npmmirror.com/htmlparser2/5.0.1: + resolution: {integrity: sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/htmlparser2/-/htmlparser2-5.0.1.tgz} + name: htmlparser2 + version: 5.0.1 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/3.3.0 + domutils: registry.npmmirror.com/domutils/2.8.0 + entities: registry.npmmirror.com/entities/2.2.0 + dev: false + + registry.npmmirror.com/htmlparser2/8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz} + name: htmlparser2 + version: 8.0.2 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype/2.3.0 + domhandler: registry.npmmirror.com/domhandler/5.0.3 + domutils: registry.npmmirror.com/domutils/3.1.0 + entities: registry.npmmirror.com/entities/4.5.0 + dev: false + + registry.npmmirror.com/http-errors/2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz} + name: http-errors + version: 2.0.0 + engines: {node: '>= 0.8'} + dependencies: + depd: registry.npmmirror.com/depd/2.0.0 + inherits: registry.npmmirror.com/inherits/2.0.4 + setprototypeof: registry.nlark.com/setprototypeof/1.2.0 + statuses: registry.npmmirror.com/statuses/2.0.1 + toidentifier: registry.npmmirror.com/toidentifier/1.0.1 + + registry.npmmirror.com/http-proxy-agent/4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz} + name: http-proxy-agent + version: 4.0.1 + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': registry.npmmirror.com/@tootallnate/once/1.1.2 + agent-base: registry.npmmirror.com/agent-base/6.0.2 + debug: registry.npmmirror.com/debug/4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/http-signature/1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/http-signature/-/http-signature-1.2.0.tgz} + name: http-signature + version: 1.2.0 + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: registry.npmmirror.com/assert-plus/1.0.0 + jsprim: registry.npmmirror.com/jsprim/1.4.2 + sshpk: registry.npmmirror.com/sshpk/1.17.0 + dev: false + + registry.npmmirror.com/https-proxy-agent/5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz} + name: https-proxy-agent + version: 5.0.1 + engines: {node: '>= 6'} + dependencies: + agent-base: registry.npmmirror.com/agent-base/6.0.2 + debug: registry.npmmirror.com/debug/4.3.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/human-signals/-/human-signals-1.1.1.tgz} + name: human-signals + version: 1.1.1 + engines: {node: '>=8.12.0'} + dev: true + + registry.npmmirror.com/human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} + name: human-signals + version: 2.1.0 + engines: {node: '>=10.17.0'} + dev: true + + registry.npmmirror.com/iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2 + + registry.npmmirror.com/iconv-lite/0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} + name: iconv-lite + version: 0.6.3 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2 + dev: false + + registry.npmmirror.com/ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} + name: ieee754 + version: 1.2.1 + + registry.npmmirror.com/ignore/5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz} + name: ignore + version: 5.2.4 + engines: {node: '>= 4'} + dev: true + + registry.npmmirror.com/image-q/4.0.0: + resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/image-q/-/image-q-4.0.0.tgz} + name: image-q + version: 4.0.0 + dependencies: + '@types/node': registry.npmmirror.com/@types/node/16.9.1 + dev: false + + registry.npmmirror.com/import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmmirror.com/parent-module/1.0.1 + resolve-from: registry.npmmirror.com/resolve-from/4.0.0 + dev: true + + registry.npmmirror.com/import-local/3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/import-local/-/import-local-3.1.0.tgz} + name: import-local + version: 3.1.0 + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: registry.npmmirror.com/pkg-dir/4.2.0 + resolve-cwd: registry.npmmirror.com/resolve-cwd/3.0.0 + dev: true + + registry.npmmirror.com/imurmurhash/0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} + name: imurmurhash + version: 0.1.4 + engines: {node: '>=0.8.19'} + dev: true + + registry.npmmirror.com/inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once/1.4.0 + wrappy: registry.npmmirror.com/wrappy/1.0.2 + + registry.npmmirror.com/inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + + registry.npmmirror.com/ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} + name: ini + version: 1.3.8 + dev: false + + registry.npmmirror.com/inline-css/4.0.1: + resolution: {integrity: sha512-gzumhrp0waBLF5TtwQcm5bviA9ZNURXeNOs2xVSTsX60FWPFlrPJol4HI8yrozZ6V5udWKUT3LS2tMUDMMdi1Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inline-css/-/inline-css-4.0.1.tgz} + name: inline-css + version: 4.0.1 + engines: {node: '>=8'} + dependencies: + cheerio: registry.npmmirror.com/cheerio/1.0.0-rc.12 + css-rules: registry.npmmirror.com/css-rules/1.1.0 + extract-css: registry.npmmirror.com/extract-css/3.0.1 + flat-util: registry.npmmirror.com/flat-util/1.1.9 + pick-util: registry.npmmirror.com/pick-util/1.1.5 + slick: registry.npmmirror.com/slick/1.12.2 + specificity: registry.npmmirror.com/specificity/0.4.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/inquirer/8.2.4: + resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inquirer/-/inquirer-8.2.4.tgz} + name: inquirer + version: 8.2.4 + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: registry.npmmirror.com/ansi-escapes/4.3.2 + chalk: registry.npmmirror.com/chalk/4.1.2 + cli-cursor: registry.npmmirror.com/cli-cursor/3.1.0 + cli-width: registry.npmmirror.com/cli-width/3.0.0 + external-editor: registry.npmmirror.com/external-editor/3.1.0 + figures: registry.npmmirror.com/figures/3.2.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + mute-stream: registry.npmmirror.com/mute-stream/0.0.8 + ora: registry.npmmirror.com/ora/5.4.1 + run-async: registry.npmmirror.com/run-async/2.4.1 + rxjs: registry.npmmirror.com/rxjs/7.8.0 + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + through: registry.npmmirror.com/through/2.3.8 + wrap-ansi: registry.npmmirror.com/wrap-ansi/7.0.0 + dev: true + + registry.npmmirror.com/inquirer/8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/inquirer/-/inquirer-8.2.5.tgz} + name: inquirer + version: 8.2.5 + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: registry.npmmirror.com/ansi-escapes/4.3.2 + chalk: registry.npmmirror.com/chalk/4.1.2 + cli-cursor: registry.npmmirror.com/cli-cursor/3.1.0 + cli-width: registry.npmmirror.com/cli-width/3.0.0 + external-editor: registry.npmmirror.com/external-editor/3.1.0 + figures: registry.npmmirror.com/figures/3.2.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + mute-stream: registry.npmmirror.com/mute-stream/0.0.8 + ora: registry.npmmirror.com/ora/5.4.1 + run-async: registry.npmmirror.com/run-async/2.4.1 + rxjs: registry.npmmirror.com/rxjs/7.8.0 + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + through: registry.npmmirror.com/through/2.3.8 + wrap-ansi: registry.npmmirror.com/wrap-ansi/7.0.0 + dev: true + + registry.npmmirror.com/interpret/1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz} + name: interpret + version: 1.4.0 + engines: {node: '>= 0.10'} + dev: true + + registry.npmmirror.com/ioredis/4.28.5: + resolution: {integrity: sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ioredis/-/ioredis-4.28.5.tgz} + name: ioredis + version: 4.28.5 + engines: {node: '>=6'} + dependencies: + cluster-key-slot: registry.npmmirror.com/cluster-key-slot/1.1.2 + debug: registry.npmmirror.com/debug/4.3.4 + denque: registry.npmmirror.com/denque/1.5.1 + lodash.defaults: registry.npmmirror.com/lodash.defaults/4.2.0 + lodash.flatten: registry.npmmirror.com/lodash.flatten/4.4.0 + lodash.isarguments: registry.npmmirror.com/lodash.isarguments/3.1.0 + p-map: registry.npmmirror.com/p-map/2.1.0 + redis-commands: registry.npmmirror.com/redis-commands/1.7.0 + redis-errors: registry.npmmirror.com/redis-errors/1.2.0 + redis-parser: registry.npmmirror.com/redis-parser/3.0.0 + standard-as-callback: registry.npmmirror.com/standard-as-callback/2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/ip/1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ip/-/ip-1.1.8.tgz} + name: ip + version: 1.1.8 + dev: false + + registry.npmmirror.com/ip/2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ip/-/ip-2.0.0.tgz} + name: ip + version: 2.0.0 + dev: false + + registry.npmmirror.com/ipaddr.js/1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz} + name: ipaddr.js + version: 1.9.1 + engines: {node: '>= 0.10'} + + registry.npmmirror.com/is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} + name: is-arrayish + version: 0.2.1 + + registry.npmmirror.com/is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + name: is-binary-path + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + binary-extensions: registry.npmmirror.com/binary-extensions/2.2.0 + + registry.npmmirror.com/is-core-module/2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz} + name: is-core-module + version: 2.11.0 + dependencies: + has: registry.npmmirror.com/has/1.0.3 + + registry.npmmirror.com/is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} + name: is-docker + version: 2.2.1 + engines: {node: '>=8'} + hasBin: true + dev: false + + registry.npmmirror.com/is-expression/4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-expression/-/is-expression-4.0.0.tgz} + name: is-expression + version: 4.0.0 + dependencies: + acorn: registry.npmmirror.com/acorn/7.4.1 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + dev: false + + registry.npmmirror.com/is-extglob/2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + name: is-fullwidth-code-point + version: 3.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/is-function/1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz} + name: is-function + version: 1.0.2 + dev: false + + registry.npmmirror.com/is-generator-fn/2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz} + name: is-generator-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob/2.1.1 + + registry.npmmirror.com/is-interactive/1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-interactive/-/is-interactive-1.0.0.tgz} + name: is-interactive + version: 1.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + + registry.npmmirror.com/is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz} + name: is-obj + version: 2.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz} + name: is-path-inside + version: 3.0.3 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-promise/2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz} + name: is-promise + version: 2.2.2 + dev: false + + registry.npmmirror.com/is-property/1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-property/-/is-property-1.0.2.tgz} + name: is-property + version: 1.0.2 + dev: false + + registry.npmmirror.com/is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind/1.0.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag/1.0.0 + dev: false + + registry.npmmirror.com/is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/is-typedarray/1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz} + name: is-typedarray + version: 1.0.0 + dev: false + + registry.npmmirror.com/is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz} + name: is-unicode-supported + version: 0.1.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} + name: is-wsl + version: 2.2.0 + engines: {node: '>=8'} + dependencies: + is-docker: registry.npmmirror.com/is-docker/2.2.1 + dev: false + + registry.npmmirror.com/isarray/0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz} + name: isarray + version: 0.0.1 + dev: false + + registry.npmmirror.com/isarray/1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz} + name: isarray + version: 1.0.0 + + registry.npmmirror.com/isexe/2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: true + + registry.npmmirror.com/isomorphic-fetch/3.0.0: + resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz} + name: isomorphic-fetch + version: 3.0.0 + dependencies: + node-fetch: registry.npmmirror.com/node-fetch/2.6.9 + whatwg-fetch: registry.npmmirror.com/whatwg-fetch/3.6.2 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/isstream/0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz} + name: isstream + version: 0.1.2 + dev: false + + registry.npmmirror.com/istanbul-lib-coverage/3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz} + name: istanbul-lib-coverage + version: 3.2.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/istanbul-lib-instrument/5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz} + name: istanbul-lib-instrument + version: 5.2.1 + engines: {node: '>=8'} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema/0.1.3 + istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 + semver: registry.npmmirror.com/semver/6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/istanbul-lib-report/3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz} + name: istanbul-lib-report + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 + make-dir: registry.npmmirror.com/make-dir/3.1.0 + supports-color: registry.npmmirror.com/supports-color/7.2.0 + dev: true + + registry.npmmirror.com/istanbul-lib-source-maps/4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz} + name: istanbul-lib-source-maps + version: 4.0.1 + engines: {node: '>=10'} + dependencies: + debug: registry.npmmirror.com/debug/4.3.4 + istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage/3.2.0 + source-map: registry.npmmirror.com/source-map/0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/istanbul-reports/3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz} + name: istanbul-reports + version: 3.1.5 + engines: {node: '>=8'} + dependencies: + html-escaper: registry.npmmirror.com/html-escaper/2.0.2 + istanbul-lib-report: registry.npmmirror.com/istanbul-lib-report/3.0.0 + dev: true + + registry.npmmirror.com/iterare/1.2.1: + resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/iterare/-/iterare-1.2.1.tgz} + name: iterare + version: 1.2.1 + engines: {node: '>=6'} + + registry.npmmirror.com/jake/10.8.5: + resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jake/-/jake-10.8.5.tgz} + name: jake + version: 10.8.5 + engines: {node: '>=10'} + hasBin: true + dependencies: + async: registry.npmmirror.com/async/3.2.4 + chalk: registry.npmmirror.com/chalk/4.1.2 + filelist: registry.npmmirror.com/filelist/1.0.4 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + dev: false + optional: true + + registry.npmmirror.com/jest-changed-files/29.5.0: + resolution: {integrity: sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz} + name: jest-changed-files + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: registry.npmmirror.com/execa/5.1.1 + p-limit: registry.npmmirror.com/p-limit/3.1.0 + dev: true + + registry.npmmirror.com/jest-circus/29.5.0: + resolution: {integrity: sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-circus/-/jest-circus-29.5.0.tgz} + name: jest-circus + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': registry.npmmirror.com/@jest/environment/29.5.0 + '@jest/expect': registry.npmmirror.com/@jest/expect/29.5.0 + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + chalk: registry.npmmirror.com/chalk/4.1.2 + co: registry.npmmirror.com/co/4.6.0 + dedent: registry.npmmirror.com/dedent/0.7.0 + is-generator-fn: registry.npmmirror.com/is-generator-fn/2.1.0 + jest-each: registry.npmmirror.com/jest-each/29.5.0 + jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/29.5.0 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-runtime: registry.npmmirror.com/jest-runtime/29.5.0 + jest-snapshot: registry.npmmirror.com/jest-snapshot/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + p-limit: registry.npmmirror.com/p-limit/3.1.0 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + pure-rand: registry.npmmirror.com/pure-rand/6.0.1 + slash: registry.npmmirror.com/slash/3.0.0 + stack-utils: registry.npmmirror.com/stack-utils/2.0.6 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/jest-cli/29.5.0_zfha7dvnw4nti6zkbsmhmn6xo4: + resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-cli/-/jest-cli-29.5.0.tgz} + id: registry.npmmirror.com/jest-cli/29.5.0 + name: jest-cli + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': registry.npmmirror.com/@jest/core/29.5.0_ts-node@10.9.1 + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + chalk: registry.npmmirror.com/chalk/4.1.2 + exit: registry.npmmirror.com/exit/0.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + import-local: registry.npmmirror.com/import-local/3.1.0 + jest-config: registry.npmmirror.com/jest-config/29.5.0_zfha7dvnw4nti6zkbsmhmn6xo4 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-validate: registry.npmmirror.com/jest-validate/29.5.0 + prompts: registry.npmmirror.com/prompts/2.4.2 + yargs: registry.npmmirror.com/yargs/17.7.1 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + registry.npmmirror.com/jest-config/29.5.0_zfha7dvnw4nti6zkbsmhmn6xo4: + resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-config/-/jest-config-29.5.0.tgz} + id: registry.npmmirror.com/jest-config/29.5.0 + name: jest-config + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@jest/test-sequencer': registry.npmmirror.com/@jest/test-sequencer/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + babel-jest: registry.npmmirror.com/babel-jest/29.5.0_@babel+core@7.21.3 + chalk: registry.npmmirror.com/chalk/4.1.2 + ci-info: registry.npmmirror.com/ci-info/3.8.0 + deepmerge: registry.npmmirror.com/deepmerge/4.3.1 + glob: registry.npmmirror.com/glob/7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-circus: registry.npmmirror.com/jest-circus/29.5.0 + jest-environment-node: registry.npmmirror.com/jest-environment-node/29.5.0 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + jest-regex-util: registry.npmmirror.com/jest-regex-util/29.4.3 + jest-resolve: registry.npmmirror.com/jest-resolve/29.5.0 + jest-runner: registry.npmmirror.com/jest-runner/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-validate: registry.npmmirror.com/jest-validate/29.5.0 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + parse-json: registry.npmmirror.com/parse-json/5.2.0 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1 + ts-node: registry.npmmirror.com/ts-node/10.9.1_bdgp3l2zgaopogaavxusmetvge + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/jest-diff/29.5.0: + resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-diff/-/jest-diff-29.5.0.tgz} + name: jest-diff + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + diff-sequences: registry.npmmirror.com/diff-sequences/29.4.3 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + dev: true + + registry.npmmirror.com/jest-docblock/29.4.3: + resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-docblock/-/jest-docblock-29.4.3.tgz} + name: jest-docblock + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: registry.npmmirror.com/detect-newline/3.1.0 + dev: true + + registry.npmmirror.com/jest-each/29.5.0: + resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-each/-/jest-each-29.5.0.tgz} + name: jest-each + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + chalk: registry.npmmirror.com/chalk/4.1.2 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + dev: true + + registry.npmmirror.com/jest-environment-node/29.5.0: + resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz} + name: jest-environment-node + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': registry.npmmirror.com/@jest/environment/29.5.0 + '@jest/fake-timers': registry.npmmirror.com/@jest/fake-timers/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + jest-mock: registry.npmmirror.com/jest-mock/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + dev: true + + registry.npmmirror.com/jest-get-type/29.4.3: + resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-get-type/-/jest-get-type-29.4.3.tgz} + name: jest-get-type + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + registry.npmmirror.com/jest-haste-map/29.5.0: + resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz} + name: jest-haste-map + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/graceful-fs': registry.npmmirror.com/@types/graceful-fs/4.1.6 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + anymatch: registry.npmmirror.com/anymatch/3.1.3 + fb-watchman: registry.npmmirror.com/fb-watchman/2.0.2 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-regex-util: registry.npmmirror.com/jest-regex-util/29.4.3 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-worker: registry.npmmirror.com/jest-worker/29.5.0 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + walker: registry.npmmirror.com/walker/1.0.8 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true + + registry.npmmirror.com/jest-leak-detector/29.5.0: + resolution: {integrity: sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz} + name: jest-leak-detector + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + dev: true + + registry.npmmirror.com/jest-matcher-utils/29.5.0: + resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz} + name: jest-matcher-utils + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + jest-diff: registry.npmmirror.com/jest-diff/29.5.0 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + dev: true + + registry.npmmirror.com/jest-message-util/29.5.0: + resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-message-util/-/jest-message-util-29.5.0.tgz} + name: jest-message-util + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/stack-utils': registry.npmmirror.com/@types/stack-utils/2.0.1 + chalk: registry.npmmirror.com/chalk/4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + stack-utils: registry.npmmirror.com/stack-utils/2.0.6 + dev: true + + registry.npmmirror.com/jest-mock/29.5.0: + resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-mock/-/jest-mock-29.5.0.tgz} + name: jest-mock + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + dev: true + + registry.npmmirror.com/jest-pnp-resolver/1.2.3_jest-resolve@29.5.0: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz} + id: registry.npmmirror.com/jest-pnp-resolver/1.2.3 + name: jest-pnp-resolver + version: 1.2.3 + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: registry.npmmirror.com/jest-resolve/29.5.0 + dev: true + + registry.npmmirror.com/jest-regex-util/29.4.3: + resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz} + name: jest-regex-util + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + registry.npmmirror.com/jest-resolve-dependencies/29.5.0: + resolution: {integrity: sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz} + name: jest-resolve-dependencies + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: registry.npmmirror.com/jest-regex-util/29.4.3 + jest-snapshot: registry.npmmirror.com/jest-snapshot/29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/jest-resolve/29.5.0: + resolution: {integrity: sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-resolve/-/jest-resolve-29.5.0.tgz} + name: jest-resolve + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-haste-map: registry.npmmirror.com/jest-haste-map/29.5.0 + jest-pnp-resolver: registry.npmmirror.com/jest-pnp-resolver/1.2.3_jest-resolve@29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-validate: registry.npmmirror.com/jest-validate/29.5.0 + resolve: registry.npmmirror.com/resolve/1.22.1 + resolve.exports: registry.npmmirror.com/resolve.exports/2.0.2 + slash: registry.npmmirror.com/slash/3.0.0 + dev: true + + registry.npmmirror.com/jest-runner/29.5.0: + resolution: {integrity: sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-runner/-/jest-runner-29.5.0.tgz} + name: jest-runner + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': registry.npmmirror.com/@jest/console/29.5.0 + '@jest/environment': registry.npmmirror.com/@jest/environment/29.5.0 + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/transform': registry.npmmirror.com/@jest/transform/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + chalk: registry.npmmirror.com/chalk/4.1.2 + emittery: registry.npmmirror.com/emittery/0.13.1 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-docblock: registry.npmmirror.com/jest-docblock/29.4.3 + jest-environment-node: registry.npmmirror.com/jest-environment-node/29.5.0 + jest-haste-map: registry.npmmirror.com/jest-haste-map/29.5.0 + jest-leak-detector: registry.npmmirror.com/jest-leak-detector/29.5.0 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-resolve: registry.npmmirror.com/jest-resolve/29.5.0 + jest-runtime: registry.npmmirror.com/jest-runtime/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + jest-watcher: registry.npmmirror.com/jest-watcher/29.5.0 + jest-worker: registry.npmmirror.com/jest-worker/29.5.0 + p-limit: registry.npmmirror.com/p-limit/3.1.0 + source-map-support: registry.npmmirror.com/source-map-support/0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/jest-runtime/29.5.0: + resolution: {integrity: sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-runtime/-/jest-runtime-29.5.0.tgz} + name: jest-runtime + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': registry.npmmirror.com/@jest/environment/29.5.0 + '@jest/fake-timers': registry.npmmirror.com/@jest/fake-timers/29.5.0 + '@jest/globals': registry.npmmirror.com/@jest/globals/29.5.0 + '@jest/source-map': registry.npmmirror.com/@jest/source-map/29.4.3 + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/transform': registry.npmmirror.com/@jest/transform/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + chalk: registry.npmmirror.com/chalk/4.1.2 + cjs-module-lexer: registry.npmmirror.com/cjs-module-lexer/1.2.2 + collect-v8-coverage: registry.npmmirror.com/collect-v8-coverage/1.0.1 + glob: registry.npmmirror.com/glob/7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-haste-map: registry.npmmirror.com/jest-haste-map/29.5.0 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-mock: registry.npmmirror.com/jest-mock/29.5.0 + jest-regex-util: registry.npmmirror.com/jest-regex-util/29.4.3 + jest-resolve: registry.npmmirror.com/jest-resolve/29.5.0 + jest-snapshot: registry.npmmirror.com/jest-snapshot/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + slash: registry.npmmirror.com/slash/3.0.0 + strip-bom: registry.npmmirror.com/strip-bom/4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/jest-snapshot/29.5.0: + resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz} + name: jest-snapshot + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.21.3 + '@babel/generator': registry.npmmirror.com/@babel/generator/7.21.3 + '@babel/plugin-syntax-jsx': registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.21.3 + '@babel/plugin-syntax-typescript': registry.npmmirror.com/@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.21.3 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + '@jest/expect-utils': registry.npmmirror.com/@jest/expect-utils/29.5.0 + '@jest/transform': registry.npmmirror.com/@jest/transform/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse/7.18.3 + '@types/prettier': registry.npmmirror.com/@types/prettier/2.7.2 + babel-preset-current-node-syntax: registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1_@babel+core@7.21.3 + chalk: registry.npmmirror.com/chalk/4.1.2 + expect: registry.npmmirror.com/expect/29.5.0 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + jest-diff: registry.npmmirror.com/jest-diff/29.5.0 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + jest-matcher-utils: registry.npmmirror.com/jest-matcher-utils/29.5.0 + jest-message-util: registry.npmmirror.com/jest-message-util/29.5.0 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + natural-compare: registry.npmmirror.com/natural-compare/1.4.0 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + semver: registry.npmmirror.com/semver/7.3.8 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/jest-util/29.5.0: + resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-util/-/jest-util-29.5.0.tgz} + name: jest-util + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + chalk: registry.npmmirror.com/chalk/4.1.2 + ci-info: registry.npmmirror.com/ci-info/3.8.0 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + + registry.npmmirror.com/jest-validate/29.5.0: + resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-validate/-/jest-validate-29.5.0.tgz} + name: jest-validate + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + camelcase: registry.npmmirror.com/camelcase/6.3.0 + chalk: registry.npmmirror.com/chalk/4.1.2 + jest-get-type: registry.npmmirror.com/jest-get-type/29.4.3 + leven: registry.npmmirror.com/leven/3.1.0 + pretty-format: registry.npmmirror.com/pretty-format/29.5.0 + dev: true + + registry.npmmirror.com/jest-watcher/29.5.0: + resolution: {integrity: sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-watcher/-/jest-watcher-29.5.0.tgz} + name: jest-watcher + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': registry.npmmirror.com/@jest/test-result/29.5.0 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + ansi-escapes: registry.npmmirror.com/ansi-escapes/4.3.2 + chalk: registry.npmmirror.com/chalk/4.1.2 + emittery: registry.npmmirror.com/emittery/0.13.1 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + string-length: registry.npmmirror.com/string-length/4.0.2 + dev: true + + registry.npmmirror.com/jest-worker/27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} + name: jest-worker + version: 27.5.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + merge-stream: registry.npmmirror.com/merge-stream/2.0.0 + supports-color: registry.npmmirror.com/supports-color/8.1.1 + dev: true + + registry.npmmirror.com/jest-worker/29.5.0: + resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest-worker/-/jest-worker-29.5.0.tgz} + name: jest-worker + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + merge-stream: registry.npmmirror.com/merge-stream/2.0.0 + supports-color: registry.npmmirror.com/supports-color/8.1.1 + dev: true + + registry.npmmirror.com/jest/29.3.1_zfha7dvnw4nti6zkbsmhmn6xo4: + resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jest/-/jest-29.3.1.tgz} + id: registry.npmmirror.com/jest/29.3.1 + name: jest + version: 29.3.1 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': registry.npmmirror.com/@jest/core/29.5.0_ts-node@10.9.1 + '@jest/types': registry.npmmirror.com/@jest/types/29.5.0 + import-local: registry.npmmirror.com/import-local/3.1.0 + jest-cli: registry.npmmirror.com/jest-cli/29.5.0_zfha7dvnw4nti6zkbsmhmn6xo4 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + + registry.npmmirror.com/jimp/0.22.7: + resolution: {integrity: sha512-TJCTJ4ZcFUw6W8XZnR6ajdEu8vSyPi3AuoChs+zLHalXnhAPZgwkzwcXnxey4LNjh1p9dfIUkg8YSQ+q8pBW0A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jimp/-/jimp-0.22.7.tgz} + name: jimp + version: 0.22.7 + dependencies: + '@jimp/custom': registry.npmmirror.com/@jimp/custom/0.22.7 + '@jimp/plugins': registry.npmmirror.com/@jimp/plugins/0.22.7_@jimp+custom@0.22.7 + '@jimp/types': registry.npmmirror.com/@jimp/types/0.22.7_@jimp+custom@0.22.7 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime/0.13.11 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/jpeg-js/0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.4.4.tgz} + name: jpeg-js + version: 0.4.4 + dev: false + + registry.npmmirror.com/js-beautify/1.14.7: + resolution: {integrity: sha512-5SOX1KXPFKx+5f6ZrPsIPEY7NwKeQz47n3jm2i+XeHx9MoRsfQenlOP13FQhWvg8JRS0+XLO6XYUQ2GX+q+T9A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-beautify/-/js-beautify-1.14.7.tgz} + name: js-beautify + version: 1.14.7 + engines: {node: '>=10'} + hasBin: true + dependencies: + config-chain: registry.npmmirror.com/config-chain/1.1.13 + editorconfig: registry.npmmirror.com/editorconfig/0.15.3 + glob: registry.npmmirror.com/glob/8.1.0 + nopt: registry.npmmirror.com/nopt/6.0.0 + dev: false + + registry.npmmirror.com/js-sdsl/4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.4.0.tgz} + name: js-sdsl + version: 4.4.0 + dev: true + + registry.npmmirror.com/js-stringify/1.0.2: + resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-stringify/-/js-stringify-1.0.2.tgz} + name: js-stringify + version: 1.0.2 + dev: false + + registry.npmmirror.com/js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + + registry.npmmirror.com/js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz} + name: js-yaml + version: 3.14.1 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse/1.0.10 + esprima: registry.npmmirror.com/esprima/4.0.1 + dev: true + + registry.npmmirror.com/js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse/2.0.1 + + registry.npmmirror.com/jsbn/0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsbn/-/jsbn-0.1.1.tgz} + name: jsbn + version: 0.1.1 + dev: false + + registry.npmmirror.com/jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + name: jsesc + version: 2.5.2 + engines: {node: '>=4'} + hasBin: true + dev: true + + registry.npmmirror.com/json-buffer/3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} + name: json-buffer + version: 3.0.1 + dev: false + + registry.npmmirror.com/json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + + registry.npmmirror.com/json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + + registry.npmmirror.com/json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + name: json-schema-traverse + version: 1.0.0 + + registry.npmmirror.com/json-schema-typed/7.0.3: + resolution: {integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz} + name: json-schema-typed + version: 7.0.3 + dev: false + + registry.npmmirror.com/json-schema-typed/8.0.1: + resolution: {integrity: sha512-XQmWYj2Sm4kn4WeTYvmpKEbyPsL7nBsb647c7pMe6l02/yx2+Jfc4dT6UZkEXnIUb5LhD55r2HPsJ1milQ4rDg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-8.0.1.tgz} + name: json-schema-typed + version: 8.0.1 + dev: false + + registry.npmmirror.com/json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-schema/-/json-schema-0.4.0.tgz} + name: json-schema + version: 0.4.0 + dev: false + + registry.npmmirror.com/json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz} + name: json-stable-stringify-without-jsonify + version: 1.0.1 + dev: true + + registry.npmmirror.com/json-stringify-safe/5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz} + name: json-stringify-safe + version: 5.0.1 + dev: false + + registry.npmmirror.com/json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} + name: json5 + version: 2.2.3 + engines: {node: '>=6'} + hasBin: true + dev: true + + registry.npmmirror.com/jsonc-parser/3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz} + name: jsonc-parser + version: 3.2.0 + dev: true + + registry.npmmirror.com/jsonfile/4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz} + name: jsonfile + version: 4.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + dev: false + + registry.npmmirror.com/jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify/2.0.0 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + dev: true + + registry.npmmirror.com/jsonwebtoken/9.0.0: + resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz} + name: jsonwebtoken + version: 9.0.0 + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: registry.npmmirror.com/jws/3.2.2 + lodash: registry.npmmirror.com/lodash/4.17.21 + ms: registry.npmmirror.com/ms/2.1.3 + semver: registry.npmmirror.com/semver/7.3.8 + dev: false + + registry.npmmirror.com/jsprim/1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jsprim/-/jsprim-1.4.2.tgz} + name: jsprim + version: 1.4.2 + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: registry.npmmirror.com/assert-plus/1.0.0 + extsprintf: registry.npmmirror.com/extsprintf/1.3.0 + json-schema: registry.npmmirror.com/json-schema/0.4.0 + verror: registry.npmmirror.com/verror/1.10.0 + dev: false + + registry.npmmirror.com/jstransformer/1.0.0: + resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jstransformer/-/jstransformer-1.0.0.tgz} + name: jstransformer + version: 1.0.0 + dependencies: + is-promise: registry.npmmirror.com/is-promise/2.2.2 + promise: registry.npmmirror.com/promise/7.3.1 + dev: false + + registry.npmmirror.com/juice/9.0.0: + resolution: {integrity: sha512-s/IwgQ4caZq3bSnQZlKfdGUqJWy9WzTzB12WSPko9G8uK74H8BJEQvX7GLmFAQ6SLFgAppqC/TUYepKZZaV+JA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/juice/-/juice-9.0.0.tgz} + name: juice + version: 9.0.0 + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + cheerio: registry.npmmirror.com/cheerio/1.0.0-rc.12 + commander: registry.npmmirror.com/commander/6.2.1 + mensch: registry.npmmirror.com/mensch/0.3.4 + slick: registry.npmmirror.com/slick/1.12.2 + web-resource-inliner: registry.npmmirror.com/web-resource-inliner/6.0.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/jwa/1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jwa/-/jwa-1.4.1.tgz} + name: jwa + version: 1.4.1 + dependencies: + buffer-equal-constant-time: registry.npmmirror.com/buffer-equal-constant-time/1.0.1 + ecdsa-sig-formatter: registry.npmmirror.com/ecdsa-sig-formatter/1.0.11 + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + dev: false + + registry.npmmirror.com/jws/3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/jws/-/jws-3.2.2.tgz} + name: jws + version: 3.2.2 + dependencies: + jwa: registry.npmmirror.com/jwa/1.4.1 + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + dev: false + + registry.npmmirror.com/keyv/4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/keyv/-/keyv-4.5.2.tgz} + name: keyv + version: 4.5.2 + dependencies: + json-buffer: registry.npmmirror.com/json-buffer/3.0.1 + dev: false + + registry.npmmirror.com/kleur/3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz} + name: kleur + version: 3.0.3 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/leac/0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/leac/-/leac-0.6.0.tgz} + name: leac + version: 0.6.0 + dev: false + + registry.npmmirror.com/leven/3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/leven/-/leven-3.1.0.tgz} + name: leven + version: 3.1.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/levn/0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/levn/-/levn-0.3.0.tgz} + name: levn + version: 0.3.0 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls/1.1.2 + type-check: registry.npmmirror.com/type-check/0.3.2 + dev: false + + registry.npmmirror.com/levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} + name: levn + version: 0.4.1 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 + type-check: registry.npmmirror.com/type-check/0.4.0 + dev: true + + registry.npmmirror.com/libbase64/1.2.1: + resolution: {integrity: sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/libbase64/-/libbase64-1.2.1.tgz} + name: libbase64 + version: 1.2.1 + dev: false + + registry.npmmirror.com/libmime/5.2.0: + resolution: {integrity: sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/libmime/-/libmime-5.2.0.tgz} + name: libmime + version: 5.2.0 + dependencies: + encoding-japanese: registry.npmmirror.com/encoding-japanese/2.0.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.6.3 + libbase64: registry.npmmirror.com/libbase64/1.2.1 + libqp: registry.npmmirror.com/libqp/2.0.1 + dev: false + + registry.npmmirror.com/libmime/5.2.1: + resolution: {integrity: sha512-A0z9O4+5q+ZTj7QwNe/Juy1KARNb4WaviO4mYeFC4b8dBT2EEqK2pkM+GC8MVnkOjqhl5nYQxRgnPYRRTNmuSQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/libmime/-/libmime-5.2.1.tgz} + name: libmime + version: 5.2.1 + dependencies: + encoding-japanese: registry.npmmirror.com/encoding-japanese/2.0.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.6.3 + libbase64: registry.npmmirror.com/libbase64/1.2.1 + libqp: registry.npmmirror.com/libqp/2.0.1 + dev: false + + registry.npmmirror.com/libphonenumber-js/1.10.24: + resolution: {integrity: sha512-3Dk8f5AmrcWqg+oHhmm9hwSTqpWHBdSqsHmjCJGroULFubi0+x7JEIGmRZCuL3TI8Tx39xaKqfnhsDQ4ALa/Nw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/libphonenumber-js/-/libphonenumber-js-1.10.24.tgz} + name: libphonenumber-js + version: 1.10.24 + + registry.npmmirror.com/libqp/2.0.1: + resolution: {integrity: sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/libqp/-/libqp-2.0.1.tgz} + name: libqp + version: 2.0.1 + dev: false + + registry.npmmirror.com/lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + + registry.npmmirror.com/linkify-it/4.0.1: + resolution: {integrity: sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/linkify-it/-/linkify-it-4.0.1.tgz} + name: linkify-it + version: 4.0.1 + dependencies: + uc.micro: registry.npmmirror.com/uc.micro/1.0.6 + dev: false + + registry.npmmirror.com/list-stylesheets/2.0.1: + resolution: {integrity: sha512-UUEFowqvgRKT1+OJ59Ga5gTfVOP3hkbFo7DwNIZcMuXzJRWndYMHyDYbuqKe6lrw8KCY7c/GN5mEoLx0c54HAw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/list-stylesheets/-/list-stylesheets-2.0.1.tgz} + name: list-stylesheets + version: 2.0.1 + dependencies: + cheerio: registry.npmmirror.com/cheerio/1.0.0-rc.12 + pick-util: registry.npmmirror.com/pick-util/1.1.5 + dev: false + + registry.npmmirror.com/load-bmfont/1.4.1: + resolution: {integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.1.tgz} + name: load-bmfont + version: 1.4.1 + dependencies: + buffer-equal: registry.npmmirror.com/buffer-equal/0.0.1 + mime: registry.npmmirror.com/mime/1.6.0 + parse-bmfont-ascii: registry.npmmirror.com/parse-bmfont-ascii/1.0.6 + parse-bmfont-binary: registry.npmmirror.com/parse-bmfont-binary/1.0.6 + parse-bmfont-xml: registry.npmmirror.com/parse-bmfont-xml/1.1.4 + phin: registry.npmmirror.com/phin/2.9.3 + xhr: registry.npmmirror.com/xhr/2.6.0 + xtend: registry.npmmirror.com/xtend/4.0.2 + dev: false + + registry.npmmirror.com/loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz} + name: loader-runner + version: 4.3.0 + engines: {node: '>=6.11.5'} + dev: true + + registry.npmmirror.com/locate-path/3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz} + name: locate-path + version: 3.0.0 + engines: {node: '>=6'} + dependencies: + p-locate: registry.npmmirror.com/p-locate/3.0.0 + path-exists: registry.npmmirror.com/path-exists/3.0.0 + dev: false + + registry.npmmirror.com/locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} + name: locate-path + version: 5.0.0 + engines: {node: '>=8'} + dependencies: + p-locate: registry.npmmirror.com/p-locate/4.1.0 + dev: true + + registry.npmmirror.com/locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} + name: locate-path + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + p-locate: registry.npmmirror.com/p-locate/5.0.0 + dev: true + + registry.npmmirror.com/locate-path/7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/locate-path/-/locate-path-7.2.0.tgz} + name: locate-path + version: 7.2.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-locate: registry.npmmirror.com/p-locate/6.0.0 + dev: false + + registry.npmmirror.com/lodash.clonedeep/4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz} + name: lodash.clonedeep + version: 4.5.0 + + registry.npmmirror.com/lodash.defaults/4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz} + name: lodash.defaults + version: 4.2.0 + dev: false + + registry.npmmirror.com/lodash.flatten/4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz} + name: lodash.flatten + version: 4.4.0 + dev: false + + registry.npmmirror.com/lodash.get/4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz} + name: lodash.get + version: 4.4.2 + dev: false + + registry.npmmirror.com/lodash.isarguments/3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz} + name: lodash.isarguments + version: 3.1.0 + dev: false + + registry.npmmirror.com/lodash.memoize/4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz} + name: lodash.memoize + version: 4.1.2 + dev: true + + registry.npmmirror.com/lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} + name: lodash.merge + version: 4.6.2 + dev: true + + registry.npmmirror.com/lodash.set/4.3.2: + resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash.set/-/lodash.set-4.3.2.tgz} + name: lodash.set + version: 4.3.2 + dev: false + + registry.npmmirror.com/lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + + registry.npmmirror.com/log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/log-symbols/-/log-symbols-4.1.0.tgz} + name: log-symbols + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported/0.1.0 + dev: true + + registry.npmmirror.com/long/5.2.1: + resolution: {integrity: sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/long/-/long-5.2.1.tgz} + name: long + version: 5.2.1 + dev: false + + registry.npmmirror.com/lower-case/1.1.4: + resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz} + name: lower-case + version: 1.1.4 + dev: false + + registry.npmmirror.com/lru-cache/4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz} + name: lru-cache + version: 4.1.5 + dependencies: + pseudomap: registry.npmmirror.com/pseudomap/1.0.2 + yallist: registry.npmmirror.com/yallist/2.1.2 + dev: false + + registry.npmmirror.com/lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + name: lru-cache + version: 5.1.1 + dependencies: + yallist: registry.npmmirror.com/yallist/3.1.1 + + registry.npmmirror.com/lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist/4.0.0 + + registry.npmmirror.com/lru-cache/7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz} + name: lru-cache + version: 7.18.3 + engines: {node: '>=12'} + + registry.npmmirror.com/lru-cache/9.1.1: + resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/lru-cache/-/lru-cache-9.1.1.tgz} + name: lru-cache + version: 9.1.1 + engines: {node: 14 || >=16.14} + + registry.npmmirror.com/macos-release/2.5.1: + resolution: {integrity: sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/macos-release/-/macos-release-2.5.1.tgz} + name: macos-release + version: 2.5.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/magic-string/0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/magic-string/-/magic-string-0.26.7.tgz} + name: magic-string + version: 0.26.7 + engines: {node: '>=12'} + dependencies: + sourcemap-codec: registry.npmmirror.com/sourcemap-codec/1.4.8 + dev: true + + registry.npmmirror.com/magic-string/0.29.0: + resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/magic-string/-/magic-string-0.29.0.tgz} + name: magic-string + version: 0.29.0 + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + dev: true + + registry.npmmirror.com/mailparser/3.6.4: + resolution: {integrity: sha512-4bDgbLdlcBKX8jtVskfn/G93nZo3lf7pyuLbAQ031SHQLihEqxtRwHrb9SXMTqiTkEGlOdpDrZE5uH18O+2A+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mailparser/-/mailparser-3.6.4.tgz} + name: mailparser + version: 3.6.4 + dependencies: + encoding-japanese: registry.npmmirror.com/encoding-japanese/2.0.0 + he: registry.npmmirror.com/he/1.2.0 + html-to-text: registry.npmmirror.com/html-to-text/9.0.4 + iconv-lite: registry.npmmirror.com/iconv-lite/0.6.3 + libmime: registry.npmmirror.com/libmime/5.2.1 + linkify-it: registry.npmmirror.com/linkify-it/4.0.1 + mailsplit: registry.npmmirror.com/mailsplit/5.4.0 + nodemailer: registry.npmmirror.com/nodemailer/6.9.1 + tlds: registry.npmmirror.com/tlds/1.236.0 + dev: false + + registry.npmmirror.com/mailsplit/5.4.0: + resolution: {integrity: sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mailsplit/-/mailsplit-5.4.0.tgz} + name: mailsplit + version: 5.4.0 + dependencies: + libbase64: registry.npmmirror.com/libbase64/1.2.1 + libmime: registry.npmmirror.com/libmime/5.2.0 + libqp: registry.npmmirror.com/libqp/2.0.1 + dev: false + + registry.npmmirror.com/make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz} + name: make-dir + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + semver: registry.npmmirror.com/semver/6.3.0 + + registry.npmmirror.com/make-error/1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/make-error/-/make-error-1.3.6.tgz} + name: make-error + version: 1.3.6 + + registry.npmmirror.com/makeerror/1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz} + name: makeerror + version: 1.0.12 + dependencies: + tmpl: registry.npmmirror.com/tmpl/1.0.5 + dev: true + + registry.npmmirror.com/media-typer/0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz} + name: media-typer + version: 0.3.0 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/mediaquery-text/1.2.0: + resolution: {integrity: sha512-cJyRqgYQi+hsYhRkyd5le0s4LsEPvOB7r+6X3jdEELNqVlM9mRIgyUPg9BzF+PuTqQH1ZekgIjYVOeWSXWq35Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mediaquery-text/-/mediaquery-text-1.2.0.tgz} + name: mediaquery-text + version: 1.2.0 + dependencies: + cssom: registry.npmmirror.com/cssom/0.5.0 + dev: false + + registry.npmmirror.com/memfs/3.4.13: + resolution: {integrity: sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/memfs/-/memfs-3.4.13.tgz} + name: memfs + version: 3.4.13 + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: registry.npmmirror.com/fs-monkey/1.0.3 + dev: true + + registry.npmmirror.com/mensch/0.3.4: + resolution: {integrity: sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mensch/-/mensch-0.3.4.tgz} + name: mensch + version: 0.3.4 + dev: false + + registry.npmmirror.com/merge-descriptors/1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz} + name: merge-descriptors + version: 1.0.1 + + registry.npmmirror.com/merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: true + + registry.npmmirror.com/merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/methods/1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/methods/-/methods-1.1.2.tgz} + name: methods + version: 1.1.2 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces/3.0.2 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + + registry.npmmirror.com/mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} + name: mime-db + version: 1.52.0 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} + name: mime-types + version: 2.1.35 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.npmmirror.com/mime-db/1.52.0 + + registry.npmmirror.com/mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + name: mime + version: 1.6.0 + engines: {node: '>=4'} + hasBin: true + + registry.npmmirror.com/mime/2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mime/-/mime-2.6.0.tgz} + name: mime + version: 2.6.0 + engines: {node: '>=4.0.0'} + hasBin: true + + registry.npmmirror.com/mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + + registry.npmmirror.com/mimic-fn/3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mimic-fn/-/mimic-fn-3.1.0.tgz} + name: mimic-fn + version: 3.1.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/mimic-fn/4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} + name: mimic-fn + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/min-document/2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz} + name: min-document + version: 2.19.0 + dependencies: + dom-walk: registry.npmmirror.com/dom-walk/0.1.2 + dev: false + + registry.npmmirror.com/minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/1.1.11 + + registry.npmmirror.com/minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz} + name: minimatch + version: 5.1.6 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/2.0.1 + dev: false + + registry.npmmirror.com/minimatch/7.4.3: + resolution: {integrity: sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimatch/-/minimatch-7.4.3.tgz} + name: minimatch + version: 7.4.3 + engines: {node: '>=10'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion/2.0.1 + dev: true + + registry.npmmirror.com/minimist/1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + + registry.npmmirror.com/minipass/4.2.5: + resolution: {integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/minipass/-/minipass-4.2.5.tgz} + name: minipass + version: 4.2.5 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/mjml-accordion/4.14.1: + resolution: {integrity: sha512-dpNXyjnhYwhM75JSjD4wFUa9JgHm86M2pa0CoTzdv1zOQz67ilc4BoK5mc2S0gOjJpjBShM5eOJuCyVIuAPC6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-accordion/-/mjml-accordion-4.14.1.tgz} + name: mjml-accordion + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-body/4.14.1: + resolution: {integrity: sha512-YpXcK3o2o1U+fhI8f60xahrhXuHmav6BZez9vIN3ZEJOxPFSr+qgr1cT2iyFz50L5+ZsLIVj2ZY+ALQjdsg8ig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-body/-/mjml-body-4.14.1.tgz} + name: mjml-body + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-button/4.14.1: + resolution: {integrity: sha512-V1Tl1vQ3lXYvvqHJHvGcc8URr7V1l/ZOsv7iLV4QRrh7kjKBXaRS7uUJtz6/PzEbNsGQCiNtXrODqcijLWlgaw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-button/-/mjml-button-4.14.1.tgz} + name: mjml-button + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-carousel/4.14.1: + resolution: {integrity: sha512-Ku3MUWPk/TwHxVgKEUtzspy/ePaWtN/3z6/qvNik0KIn0ZUIZ4zvR2JtaVL5nd30LHSmUaNj30XMPkCjYiKkFA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-carousel/-/mjml-carousel-4.14.1.tgz} + name: mjml-carousel + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-cli/4.14.1: + resolution: {integrity: sha512-Gy6MnSygFXs0U1qOXTHqBg2vZX2VL/fAacgQzD4MHq4OuybWaTNSzXRwxBXYCxT3IJB874n2Q0Mxp+Xka+tnZg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-cli/-/mjml-cli-4.14.1.tgz} + name: mjml-cli + version: 4.14.1 + hasBin: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + chokidar: registry.npmmirror.com/chokidar/3.5.3 + glob: registry.npmmirror.com/glob/7.2.3 + html-minifier: registry.npmmirror.com/html-minifier/4.0.0 + js-beautify: registry.npmmirror.com/js-beautify/1.14.7 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + mjml-migrate: registry.npmmirror.com/mjml-migrate/4.14.1 + mjml-parser-xml: registry.npmmirror.com/mjml-parser-xml/4.14.1 + mjml-validator: registry.npmmirror.com/mjml-validator/4.13.0 + yargs: registry.npmmirror.com/yargs/16.2.0 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-column/4.14.1: + resolution: {integrity: sha512-iixVCIX1YJtpQuwG2WbDr7FqofQrlTtGQ4+YAZXGiLThs0En3xNIJFQX9xJ8sgLEGGltyooHiNICBRlzSp9fDg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-column/-/mjml-column-4.14.1.tgz} + name: mjml-column + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-core/4.14.1: + resolution: {integrity: sha512-di88rSfX+8r4r+cEqlQCO7CRM4mYZrfe2wSCu2je38i+ujjkLpF72cgLnjBlSG5aOUCZgYvlsZ85stqIz9LQfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-core/-/mjml-core-4.14.1.tgz} + name: mjml-core + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + cheerio: registry.npmmirror.com/cheerio/1.0.0-rc.12 + detect-node: registry.npmmirror.com/detect-node/2.1.0 + html-minifier: registry.npmmirror.com/html-minifier/4.0.0 + js-beautify: registry.npmmirror.com/js-beautify/1.14.7 + juice: registry.npmmirror.com/juice/9.0.0 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-migrate: registry.npmmirror.com/mjml-migrate/4.14.1 + mjml-parser-xml: registry.npmmirror.com/mjml-parser-xml/4.14.1 + mjml-validator: registry.npmmirror.com/mjml-validator/4.13.0 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-divider/4.14.1: + resolution: {integrity: sha512-agqWY0aW2xaMiUOhYKDvcAAfOLalpbbtjKZAl1vWmNkURaoK4L7MgDilKHSJDFUlHGm2ZOArTrq8i6K0iyThBQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-divider/-/mjml-divider-4.14.1.tgz} + name: mjml-divider + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-group/4.14.1: + resolution: {integrity: sha512-dJt5batgEJ7wxlxzqOfHOI94ABX+8DZBvAlHuddYO4CsLFHYv6XRIArLAMMnAKU76r6p3X8JxYeOjKZXdv49kg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-group/-/mjml-group-4.14.1.tgz} + name: mjml-group + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-attributes/4.14.1: + resolution: {integrity: sha512-XdUNOp2csK28kBDSistInOyzWNwmu5HDNr4y1Z7vSQ1PfkmiuS6jWG7jHUjdoMhs27e6Leuyyc6a8gWSpqSWrg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-attributes/-/mjml-head-attributes-4.14.1.tgz} + name: mjml-head-attributes + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-breakpoint/4.14.1: + resolution: {integrity: sha512-Qw9l/W/I5Z9p7I4ShgnEpAL9if4472ejcznbBnp+4Gq+sZoPa7iYoEPsa9UCGutlaCh3N3tIi2qKhl9qD8DFxA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-breakpoint/-/mjml-head-breakpoint-4.14.1.tgz} + name: mjml-head-breakpoint + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-font/4.14.1: + resolution: {integrity: sha512-oBYm1gaOdEMjE5BoZouRRD4lCNZ1jcpz92NR/F7xDyMaKCGN6T/+r4S5dq1gOLm9zWqClRHaECdFJNEmrDpZqA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-font/-/mjml-head-font-4.14.1.tgz} + name: mjml-head-font + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-html-attributes/4.14.1: + resolution: {integrity: sha512-vlJsJc1Sm4Ml2XvLmp01zsdmWmzm6+jNCO7X3eYi9ngEh8LjMCLIQOncnOgjqm9uGpQu2EgUhwvYFZP2luJOVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-html-attributes/-/mjml-head-html-attributes-4.14.1.tgz} + name: mjml-head-html-attributes + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-preview/4.14.1: + resolution: {integrity: sha512-89gQtt3fhl2dkYpHLF5HDQXz/RLpzecU6wmAIT7Dz6etjLGE1dgq2Ay6Bu/OeHjDcT1gbM131zvBwuXw8OydNw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-preview/-/mjml-head-preview-4.14.1.tgz} + name: mjml-head-preview + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-style/4.14.1: + resolution: {integrity: sha512-XryOuf32EDuUCBT2k99C1+H87IOM919oY6IqxKFJCDkmsbywKIum7ibhweJdcxiYGONKTC6xjuibGD3fQTTYNQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-style/-/mjml-head-style-4.14.1.tgz} + name: mjml-head-style + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head-title/4.14.1: + resolution: {integrity: sha512-aIfpmlQdf1eJZSSrFodmlC4g5GudBti2eMyG42M7/3NeLM6anEWoe+UkF/6OG4Zy0tCQ40BDJ5iBZlMsjQICzw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head-title/-/mjml-head-title-4.14.1.tgz} + name: mjml-head-title + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-head/4.14.1: + resolution: {integrity: sha512-KoCbtSeTAhx05Ugn9TB2UYt5sQinSCb7RGRer5iPQ3CrXj8hT5B5Svn6qvf/GACPkWl4auExHQh+XgLB+r3OEA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-head/-/mjml-head-4.14.1.tgz} + name: mjml-head + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-hero/4.14.1: + resolution: {integrity: sha512-TQJ3yfjrKYGkdEWjHLHhL99u/meKFYgnfJvlo9xeBvRjSM696jIjdqaPHaunfw4CP6d2OpCIMuacgOsvqQMWOA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-hero/-/mjml-hero-4.14.1.tgz} + name: mjml-hero + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-image/4.14.1: + resolution: {integrity: sha512-jfKLPHXuFq83okwlNM1Um/AEWeVDgs2JXIOsWp2TtvXosnRvGGMzA5stKLYdy1x6UfKF4c1ovpMS162aYGp+xQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-image/-/mjml-image-4.14.1.tgz} + name: mjml-image + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-migrate/4.14.1: + resolution: {integrity: sha512-d+9HKQOhZi3ZFAaFSDdjzJX9eDQGjMf3BArLWNm2okC4ZgfJSpOc77kgCyFV8ugvwc8fFegPnSV60Jl4xtvK2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-migrate/-/mjml-migrate-4.14.1.tgz} + name: mjml-migrate + version: 4.14.1 + hasBin: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + js-beautify: registry.npmmirror.com/js-beautify/1.14.7 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + mjml-parser-xml: registry.npmmirror.com/mjml-parser-xml/4.14.1 + yargs: registry.npmmirror.com/yargs/16.2.0 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-navbar/4.14.1: + resolution: {integrity: sha512-rNy1Kw8CR3WQ+M55PFBAUDz2VEOjz+sk06OFnsnmNjoMVCjo1EV7OFLDAkmxAwqkC8h4zQWEOFY0MBqqoAg7+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-navbar/-/mjml-navbar-4.14.1.tgz} + name: mjml-navbar + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-parser-xml/4.14.1: + resolution: {integrity: sha512-9WQVeukbXfq9DUcZ8wOsHC6BTdhaVwTAJDYMIQglXLwKwN7I4pTCguDDHy5d0kbbzK5OCVxCdZe+bfVI6XANOQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-parser-xml/-/mjml-parser-xml-4.14.1.tgz} + name: mjml-parser-xml + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + detect-node: registry.npmmirror.com/detect-node/2.0.4 + htmlparser2: registry.npmmirror.com/htmlparser2/8.0.2 + lodash: registry.npmmirror.com/lodash/4.17.21 + dev: false + + registry.npmmirror.com/mjml-preset-core/4.14.1: + resolution: {integrity: sha512-uUCqK9Z9d39rwB/+JDV2KWSZGB46W7rPQpc9Xnw1DRP7wD7qAfJwK6AZFCwfTgWdSxw0PwquVNcrUS9yBa9uhw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-preset-core/-/mjml-preset-core-4.14.1.tgz} + name: mjml-preset-core + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + mjml-accordion: registry.npmmirror.com/mjml-accordion/4.14.1 + mjml-body: registry.npmmirror.com/mjml-body/4.14.1 + mjml-button: registry.npmmirror.com/mjml-button/4.14.1 + mjml-carousel: registry.npmmirror.com/mjml-carousel/4.14.1 + mjml-column: registry.npmmirror.com/mjml-column/4.14.1 + mjml-divider: registry.npmmirror.com/mjml-divider/4.14.1 + mjml-group: registry.npmmirror.com/mjml-group/4.14.1 + mjml-head: registry.npmmirror.com/mjml-head/4.14.1 + mjml-head-attributes: registry.npmmirror.com/mjml-head-attributes/4.14.1 + mjml-head-breakpoint: registry.npmmirror.com/mjml-head-breakpoint/4.14.1 + mjml-head-font: registry.npmmirror.com/mjml-head-font/4.14.1 + mjml-head-html-attributes: registry.npmmirror.com/mjml-head-html-attributes/4.14.1 + mjml-head-preview: registry.npmmirror.com/mjml-head-preview/4.14.1 + mjml-head-style: registry.npmmirror.com/mjml-head-style/4.14.1 + mjml-head-title: registry.npmmirror.com/mjml-head-title/4.14.1 + mjml-hero: registry.npmmirror.com/mjml-hero/4.14.1 + mjml-image: registry.npmmirror.com/mjml-image/4.14.1 + mjml-navbar: registry.npmmirror.com/mjml-navbar/4.14.1 + mjml-raw: registry.npmmirror.com/mjml-raw/4.14.1 + mjml-section: registry.npmmirror.com/mjml-section/4.14.1 + mjml-social: registry.npmmirror.com/mjml-social/4.14.1 + mjml-spacer: registry.npmmirror.com/mjml-spacer/4.14.1 + mjml-table: registry.npmmirror.com/mjml-table/4.14.1 + mjml-text: registry.npmmirror.com/mjml-text/4.14.1 + mjml-wrapper: registry.npmmirror.com/mjml-wrapper/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-raw/4.14.1: + resolution: {integrity: sha512-9+4wzoXnCtfV6QPmjfJkZ50hxFB4Z8QZnl2Ac0D1Cn3dUF46UkmO5NLMu7UDIlm5DdFyycZrMOwvZS4wv9ksPw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-raw/-/mjml-raw-4.14.1.tgz} + name: mjml-raw + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-section/4.14.1: + resolution: {integrity: sha512-Ik5pTUhpT3DOfB3hEmAWp8rZ0ilWtIivnL8XdUJRfgYE9D+MCRn+reIO+DAoJHxiQoI6gyeKkIP4B9OrQ7cHQw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-section/-/mjml-section-4.14.1.tgz} + name: mjml-section + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-social/4.14.1: + resolution: {integrity: sha512-G44aOZXgZHukirjkeQWTTV36UywtE2YvSwWGNfo/8d+k5JdJJhCIrlwaahyKEAyH63G1B0Zt8b2lEWx0jigYUw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-social/-/mjml-social-4.14.1.tgz} + name: mjml-social + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-spacer/4.14.1: + resolution: {integrity: sha512-5SfQCXTd3JBgRH1pUy6NVZ0lXBiRqFJPVHBdtC3OFvUS3q1w16eaAXlIUWMKTfy8CKhQrCiE6m65kc662ZpYxA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-spacer/-/mjml-spacer-4.14.1.tgz} + name: mjml-spacer + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-table/4.14.1: + resolution: {integrity: sha512-aVBdX3WpyKVGh/PZNn2KgRem+PQhWlvnD00DKxDejRBsBSKYSwZ0t3EfFvZOoJ9DzfHsN0dHuwd6Z18Ps44NFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-table/-/mjml-table-4.14.1.tgz} + name: mjml-table + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-text/4.14.1: + resolution: {integrity: sha512-yZuvf5z6qUxEo5CqOhCUltJlR6oySKVcQNHwoV5sneMaKdmBiaU4VDnlYFera9gMD9o3KBHIX6kUg7EHnCwBRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-text/-/mjml-text-4.14.1.tgz} + name: mjml-text + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml-validator/4.13.0: + resolution: {integrity: sha512-uURYfyQYtHJ6Qz/1A7/+E9ezfcoISoLZhYK3olsxKRViwaA2Mm8gy/J3yggZXnsUXWUns7Qymycm5LglLEIiQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-validator/-/mjml-validator-4.13.0.tgz} + name: mjml-validator + version: 4.13.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + dev: false + + registry.npmmirror.com/mjml-wrapper/4.14.1: + resolution: {integrity: sha512-aA5Xlq6d0hZ5LY+RvSaBqmVcLkvPvdhyAv3vQf3G41Gfhel4oIPmkLnVpHselWhV14A0KwIOIAKVxHtSAxyOTQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml-wrapper/-/mjml-wrapper-4.14.1.tgz} + name: mjml-wrapper + version: 4.14.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + lodash: registry.npmmirror.com/lodash/4.17.21 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + mjml-section: registry.npmmirror.com/mjml-section/4.14.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mjml/4.14.1: + resolution: {integrity: sha512-f/wnWWIVbeb/ge3ff7c/KYYizI13QbGIp03odwwkCThsJsacw4gpZZAU7V4gXY3HxSXP2/q3jxOfaHVbkfNpOQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mjml/-/mjml-4.14.1.tgz} + name: mjml + version: 4.14.1 + hasBin: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.21.5 + mjml-cli: registry.npmmirror.com/mjml-cli/4.14.1 + mjml-core: registry.npmmirror.com/mjml-core/4.14.1 + mjml-migrate: registry.npmmirror.com/mjml-migrate/4.14.1 + mjml-preset-core: registry.npmmirror.com/mjml-preset-core/4.14.1 + mjml-validator: registry.npmmirror.com/mjml-validator/4.13.0 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/mkdirp/0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz} + name: mkdirp + version: 0.5.6 + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist/1.2.8 + + registry.npmmirror.com/mkdirp/2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mkdirp/-/mkdirp-2.1.6.tgz} + name: mkdirp + version: 2.1.6 + engines: {node: '>=10'} + hasBin: true + dev: false + + registry.npmmirror.com/ms/2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} + name: ms + version: 2.0.0 + + registry.npmmirror.com/ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + + registry.npmmirror.com/ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + + registry.npmmirror.com/multer/1.4.4-lts.1: + resolution: {integrity: sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/multer/-/multer-1.4.4-lts.1.tgz} + name: multer + version: 1.4.4-lts.1 + engines: {node: '>= 6.0.0'} + dependencies: + append-field: registry.npmmirror.com/append-field/1.0.0 + busboy: registry.npmmirror.com/busboy/1.6.0 + concat-stream: registry.npmmirror.com/concat-stream/1.6.2 + mkdirp: registry.npmmirror.com/mkdirp/0.5.6 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + type-is: registry.npmmirror.com/type-is/1.6.18 + xtend: registry.npmmirror.com/xtend/4.0.2 + + registry.npmmirror.com/mute-stream/0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.8.tgz} + name: mute-stream + version: 0.0.8 + dev: true + + registry.npmmirror.com/mysql2/3.2.0: + resolution: {integrity: sha512-0Vn6a9WSrq6fWwvPgrvIwnOCldiEcgbzapVRDAtDZ4cMTxN7pnGqCTx8EG32S/NYXl6AXkdO+9hV1tSIi/LigA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mysql2/-/mysql2-3.2.0.tgz} + name: mysql2 + version: 3.2.0 + engines: {node: '>= 8.0'} + dependencies: + denque: registry.npmmirror.com/denque/2.1.0 + generate-function: registry.npmmirror.com/generate-function/2.3.1 + iconv-lite: registry.npmmirror.com/iconv-lite/0.6.3 + long: registry.npmmirror.com/long/5.2.1 + lru-cache: registry.npmmirror.com/lru-cache/7.18.3 + named-placeholders: registry.npmmirror.com/named-placeholders/1.1.3 + seq-queue: registry.npmmirror.com/seq-queue/0.0.5 + sqlstring: registry.npmmirror.com/sqlstring/2.3.3 + dev: false + + registry.npmmirror.com/mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/mz/-/mz-2.7.0.tgz} + name: mz + version: 2.7.0 + dependencies: + any-promise: registry.npmmirror.com/any-promise/1.3.0 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + thenify-all: registry.npmmirror.com/thenify-all/1.6.0 + dev: false + + registry.npmmirror.com/named-placeholders/1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/named-placeholders/-/named-placeholders-1.1.3.tgz} + name: named-placeholders + version: 1.1.3 + engines: {node: '>=12.0.0'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache/7.18.3 + dev: false + + registry.npmmirror.com/natural-compare-lite/1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} + name: natural-compare-lite + version: 1.4.0 + dev: true + + registry.npmmirror.com/natural-compare/1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz} + name: natural-compare + version: 1.4.0 + dev: true + + registry.npmmirror.com/negotiator/0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz} + name: negotiator + version: 0.6.3 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/neo-async/2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + + registry.npmmirror.com/nestjs-config/1.4.10_@nestjs+common@9.3.12: + resolution: {integrity: sha512-el7iGCOsIVN5htafFVJMt8PNZ/We3cwg9iBuAkwW0aXW9ysKfAScgeeC60zljpQ16eBY6ODlB1w173Gdy8kzgA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/nestjs-config/-/nestjs-config-1.4.10.tgz} + id: registry.npmmirror.com/nestjs-config/1.4.10 + name: nestjs-config + version: 1.4.10 + peerDependencies: + '@nestjs/common': ^5.1.0 || ^6.0.3 || ^7.0.1 || ^8.0.0 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/9.3.12_3gxeobzg7dgrq6xqptevvug4ee + '@types/node': registry.npmmirror.com/@types/node/16.18.22 + dotenv: registry.npmmirror.com/dotenv/10.0.0 + glob: registry.npmmirror.com/glob/7.2.3 + lodash.get: registry.npmmirror.com/lodash.get/4.4.2 + lodash.set: registry.npmmirror.com/lodash.set/4.3.2 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + dev: false + + registry.npmmirror.com/nestjs-redis/1.3.3_s5rej4fzqtcfwqauf64fv5fuwq: + resolution: {integrity: sha512-YLvWtVKP38Uica7pL8T955jPi0MFmJ4+Wj3R/IHbLpsdCJkdA9wtfO9NoUpiZpM1aO1dEGcOBoStvgb0Uy7MGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/nestjs-redis/-/nestjs-redis-1.3.3.tgz} + id: registry.npmmirror.com/nestjs-redis/1.3.3 + name: nestjs-redis + version: 1.3.3 + dependencies: + '@nestjs/common': registry.npmmirror.com/@nestjs/common/7.6.18_cssggd7bgje7flcm2hyqe42oay + '@nestjs/core': registry.npmmirror.com/@nestjs/core/7.6.18_l64abdknzt6t7ahqbqk2upmxpy + '@types/ioredis': registry.npmmirror.com/@types/ioredis/5.0.0 + '@types/uuid': registry.npmmirror.com/@types/uuid/9.0.1 + ioredis: registry.npmmirror.com/ioredis/4.28.5 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + rxjs: registry.npmmirror.com/rxjs/6.6.7 + uuid: registry.npmmirror.com/uuid/8.3.2 + transitivePeerDependencies: + - '@nestjs/microservices' + - '@nestjs/platform-express' + - '@nestjs/websockets' + - cache-manager + - class-transformer + - class-validator + - debug + - encoding + - supports-color + dev: false + + registry.npmmirror.com/netmask/2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/netmask/-/netmask-2.0.2.tgz} + name: netmask + version: 2.0.2 + engines: {node: '>= 0.4.0'} + dev: false + + registry.npmmirror.com/no-case/2.3.2: + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/no-case/-/no-case-2.3.2.tgz} + name: no-case + version: 2.3.2 + dependencies: + lower-case: registry.npmmirror.com/lower-case/1.1.4 + dev: false + + registry.npmmirror.com/node-abort-controller/3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz} + name: node-abort-controller + version: 3.1.1 + dev: true + + registry.npmmirror.com/node-emoji/1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-emoji/-/node-emoji-1.11.0.tgz} + name: node-emoji + version: 1.11.0 + dependencies: + lodash: registry.npmmirror.com/lodash/4.17.21 + dev: true + + registry.npmmirror.com/node-fetch/2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz} + name: node-fetch + version: 2.6.9 + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: registry.npmmirror.com/whatwg-url/5.0.0 + + registry.npmmirror.com/node-int64/0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz} + name: node-int64 + version: 0.4.0 + dev: true + + registry.npmmirror.com/node-releases/2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/node-releases/-/node-releases-2.0.10.tgz} + name: node-releases + version: 2.0.10 + dev: true + + registry.npmmirror.com/nodemailer/6.9.1: + resolution: {integrity: sha512-qHw7dOiU5UKNnQpXktdgQ1d3OFgRAekuvbJLcdG5dnEo/GtcTHRYM7+UfJARdOFU9WUQO8OiIamgWPmiSFHYAA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/nodemailer/-/nodemailer-6.9.1.tgz} + name: nodemailer + version: 6.9.1 + engines: {node: '>=6.0.0'} + dev: false + + registry.npmmirror.com/nopt/6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/nopt/-/nopt-6.0.0.tgz} + name: nopt + version: 6.0.0 + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + abbrev: registry.npmmirror.com/abbrev/1.1.1 + dev: false + + registry.npmmirror.com/normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + name: normalize-package-data + version: 3.0.3 + engines: {node: '>=10'} + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info/4.1.0 + is-core-module: registry.npmmirror.com/is-core-module/2.11.0 + semver: registry.npmmirror.com/semver/7.3.8 + validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license/3.0.4 + dev: false + + registry.npmmirror.com/normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + name: normalize-path + version: 3.0.0 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz} + name: npm-run-path + version: 4.0.1 + engines: {node: '>=8'} + dependencies: + path-key: registry.npmmirror.com/path-key/3.1.1 + dev: true + + registry.npmmirror.com/nth-check/2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz} + name: nth-check + version: 2.1.1 + dependencies: + boolbase: registry.npmmirror.com/boolbase/1.0.0 + dev: false + + registry.npmmirror.com/oauth-sign/0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/oauth-sign/-/oauth-sign-0.9.0.tgz} + name: oauth-sign + version: 0.9.0 + dev: false + + registry.npmmirror.com/object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/object-hash/2.1.1: + resolution: {integrity: sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-hash/-/object-hash-2.1.1.tgz} + name: object-hash + version: 2.1.1 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz} + name: object-inspect + version: 1.12.3 + + registry.npmmirror.com/omggif/1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz} + name: omggif + version: 1.0.10 + dev: false + + registry.npmmirror.com/on-finished/2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz} + name: on-finished + version: 2.4.1 + engines: {node: '>= 0.8'} + dependencies: + ee-first: registry.nlark.com/ee-first/1.1.1 + + registry.npmmirror.com/once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy/1.0.2 + + registry.npmmirror.com/onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn/2.1.0 + + registry.npmmirror.com/open/7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/open/-/open-7.4.2.tgz} + name: open + version: 7.4.2 + engines: {node: '>=8'} + dependencies: + is-docker: registry.npmmirror.com/is-docker/2.2.1 + is-wsl: registry.npmmirror.com/is-wsl/2.2.0 + dev: false + + registry.npmmirror.com/optionator/0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/optionator/-/optionator-0.8.3.tgz} + name: optionator + version: 0.8.3 + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: registry.npmmirror.com/deep-is/0.1.4 + fast-levenshtein: registry.npmmirror.com/fast-levenshtein/2.0.6 + levn: registry.npmmirror.com/levn/0.3.0 + prelude-ls: registry.npmmirror.com/prelude-ls/1.1.2 + type-check: registry.npmmirror.com/type-check/0.3.2 + word-wrap: registry.npmmirror.com/word-wrap/1.2.3 + dev: false + + registry.npmmirror.com/optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz} + name: optionator + version: 0.9.1 + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: registry.npmmirror.com/deep-is/0.1.4 + fast-levenshtein: registry.npmmirror.com/fast-levenshtein/2.0.6 + levn: registry.npmmirror.com/levn/0.4.1 + prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 + type-check: registry.npmmirror.com/type-check/0.4.0 + word-wrap: registry.npmmirror.com/word-wrap/1.2.3 + dev: true + + registry.npmmirror.com/ora/5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ora/-/ora-5.4.1.tgz} + name: ora + version: 5.4.1 + engines: {node: '>=10'} + dependencies: + bl: registry.npmmirror.com/bl/4.1.0 + chalk: registry.npmmirror.com/chalk/4.1.2 + cli-cursor: registry.npmmirror.com/cli-cursor/3.1.0 + cli-spinners: registry.npmmirror.com/cli-spinners/2.7.0 + is-interactive: registry.npmmirror.com/is-interactive/1.0.0 + is-unicode-supported: registry.npmmirror.com/is-unicode-supported/0.1.0 + log-symbols: registry.npmmirror.com/log-symbols/4.1.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + wcwidth: registry.npmmirror.com/wcwidth/1.0.1 + dev: true + + registry.npmmirror.com/os-name/4.0.1: + resolution: {integrity: sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/os-name/-/os-name-4.0.1.tgz} + name: os-name + version: 4.0.1 + engines: {node: '>=10'} + dependencies: + macos-release: registry.npmmirror.com/macos-release/2.5.1 + windows-release: registry.npmmirror.com/windows-release/4.0.0 + dev: true + + registry.npmmirror.com/os-tmpdir/1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} + name: os-tmpdir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} + name: p-limit + version: 2.3.0 + engines: {node: '>=6'} + dependencies: + p-try: registry.npmmirror.com/p-try/2.2.0 + + registry.npmmirror.com/p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} + name: p-limit + version: 3.1.0 + engines: {node: '>=10'} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue/0.1.0 + dev: true + + registry.npmmirror.com/p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-limit/-/p-limit-4.0.0.tgz} + name: p-limit + version: 4.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue/1.0.0 + dev: false + + registry.npmmirror.com/p-locate/3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz} + name: p-locate + version: 3.0.0 + engines: {node: '>=6'} + dependencies: + p-limit: registry.npmmirror.com/p-limit/2.3.0 + dev: false + + registry.npmmirror.com/p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} + name: p-locate + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + p-limit: registry.npmmirror.com/p-limit/2.3.0 + dev: true + + registry.npmmirror.com/p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} + name: p-locate + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + p-limit: registry.npmmirror.com/p-limit/3.1.0 + dev: true + + registry.npmmirror.com/p-locate/6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-locate/-/p-locate-6.0.0.tgz} + name: p-locate + version: 6.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + p-limit: registry.npmmirror.com/p-limit/4.0.0 + dev: false + + registry.npmmirror.com/p-map/2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-map/-/p-map-2.1.0.tgz} + name: p-map + version: 2.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/p-timeout/6.1.1: + resolution: {integrity: sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-timeout/-/p-timeout-6.1.1.tgz} + name: p-timeout + version: 6.1.1 + engines: {node: '>=14.16'} + dev: false + + registry.npmmirror.com/p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} + name: p-try + version: 2.2.0 + engines: {node: '>=6'} + + registry.npmmirror.com/pac-proxy-agent/5.0.0: + resolution: {integrity: sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz} + name: pac-proxy-agent + version: 5.0.0 + engines: {node: '>= 8'} + dependencies: + '@tootallnate/once': registry.npmmirror.com/@tootallnate/once/1.1.2 + agent-base: registry.npmmirror.com/agent-base/6.0.2 + debug: registry.npmmirror.com/debug/4.3.4 + get-uri: registry.npmmirror.com/get-uri/3.0.2 + http-proxy-agent: registry.npmmirror.com/http-proxy-agent/4.0.1 + https-proxy-agent: registry.npmmirror.com/https-proxy-agent/5.0.1 + pac-resolver: registry.npmmirror.com/pac-resolver/5.0.1 + raw-body: registry.npmmirror.com/raw-body/2.5.2 + socks-proxy-agent: registry.npmmirror.com/socks-proxy-agent/5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/pac-resolver/5.0.1: + resolution: {integrity: sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pac-resolver/-/pac-resolver-5.0.1.tgz} + name: pac-resolver + version: 5.0.1 + engines: {node: '>= 8'} + dependencies: + degenerator: registry.npmmirror.com/degenerator/3.0.4 + ip: registry.npmmirror.com/ip/1.1.8 + netmask: registry.npmmirror.com/netmask/2.0.2 + dev: false + + registry.npmmirror.com/pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pako/-/pako-1.0.11.tgz} + name: pako + version: 1.0.11 + dev: false + + registry.npmmirror.com/param-case/2.1.1: + resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/param-case/-/param-case-2.1.1.tgz} + name: param-case + version: 2.1.1 + dependencies: + no-case: registry.npmmirror.com/no-case/2.3.2 + dev: false + + registry.npmmirror.com/parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmmirror.com/callsites/3.1.0 + dev: true + + registry.npmmirror.com/parse-bmfont-ascii/1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz} + name: parse-bmfont-ascii + version: 1.0.6 + dev: false + + registry.npmmirror.com/parse-bmfont-binary/1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz} + name: parse-bmfont-binary + version: 1.0.6 + dev: false + + registry.npmmirror.com/parse-bmfont-xml/1.1.4: + resolution: {integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz} + name: parse-bmfont-xml + version: 1.1.4 + dependencies: + xml-parse-from-string: registry.npmmirror.com/xml-parse-from-string/1.0.1 + xml2js: registry.npmmirror.com/xml2js/0.4.23 + dev: false + + registry.npmmirror.com/parse-headers/2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.5.tgz} + name: parse-headers + version: 2.0.5 + dev: false + + registry.npmmirror.com/parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} + name: parse-json + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + error-ex: registry.npmmirror.com/error-ex/1.3.2 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors/2.3.1 + lines-and-columns: registry.npmmirror.com/lines-and-columns/1.2.4 + + registry.npmmirror.com/parse5-htmlparser2-tree-adapter/6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz} + name: parse5-htmlparser2-tree-adapter + version: 6.0.1 + dependencies: + parse5: registry.npmmirror.com/parse5/6.0.1 + dev: false + + registry.npmmirror.com/parse5-htmlparser2-tree-adapter/7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz} + name: parse5-htmlparser2-tree-adapter + version: 7.0.0 + dependencies: + domhandler: registry.npmmirror.com/domhandler/5.0.3 + parse5: registry.npmmirror.com/parse5/7.1.2 + dev: false + + registry.npmmirror.com/parse5/5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse5/-/parse5-5.1.1.tgz} + name: parse5 + version: 5.1.1 + dev: false + + registry.npmmirror.com/parse5/6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz} + name: parse5 + version: 6.0.1 + dev: false + + registry.npmmirror.com/parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz} + name: parse5 + version: 7.1.2 + dependencies: + entities: registry.npmmirror.com/entities/4.5.0 + dev: false + + registry.npmmirror.com/parseley/0.11.0: + resolution: {integrity: sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parseley/-/parseley-0.11.0.tgz} + name: parseley + version: 0.11.0 + dependencies: + leac: registry.npmmirror.com/leac/0.6.0 + peberminta: registry.npmmirror.com/peberminta/0.8.0 + dev: false + + registry.npmmirror.com/parseurl/1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz} + name: parseurl + version: 1.3.3 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/passport-jwt/4.0.1: + resolution: {integrity: sha512-UCKMDYhNuGOBE9/9Ycuoyh7vP6jpeTp/+sfMJl7nLff/t6dps+iaeE0hhNkKN8/HZHcJ7lCdOyDxHdDoxoSvdQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/passport-jwt/-/passport-jwt-4.0.1.tgz} + name: passport-jwt + version: 4.0.1 + dependencies: + jsonwebtoken: registry.npmmirror.com/jsonwebtoken/9.0.0 + passport-strategy: registry.npmmirror.com/passport-strategy/1.0.0 + dev: false + + registry.npmmirror.com/passport-strategy/1.0.0: + resolution: {integrity: sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/passport-strategy/-/passport-strategy-1.0.0.tgz} + name: passport-strategy + version: 1.0.0 + engines: {node: '>= 0.4.0'} + dev: false + + registry.npmmirror.com/passport/0.6.0: + resolution: {integrity: sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/passport/-/passport-0.6.0.tgz} + name: passport + version: 0.6.0 + engines: {node: '>= 0.4.0'} + dependencies: + passport-strategy: registry.npmmirror.com/passport-strategy/1.0.0 + pause: registry.npmmirror.com/pause/0.0.1 + utils-merge: registry.npmmirror.com/utils-merge/1.0.1 + dev: false + + registry.npmmirror.com/path-exists/3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz} + name: path-exists + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/path-exists/5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-exists/-/path-exists-5.0.0.tgz} + name: path-exists + version: 5.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + + registry.npmmirror.com/path-scurry/1.6.3: + resolution: {integrity: sha512-RAmB+n30SlN+HnNx6EbcpoDy9nwdpcGPnEKrJnu6GZoDWBdIjo1UQMVtW2ybtC7LC2oKLcMq8y5g8WnKLiod9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-scurry/-/path-scurry-1.6.3.tgz} + name: path-scurry + version: 1.6.3 + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache/7.18.3 + minipass: registry.npmmirror.com/minipass/4.2.5 + dev: true + + registry.npmmirror.com/path-to-regexp/0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz} + name: path-to-regexp + version: 0.1.7 + + registry.npmmirror.com/path-to-regexp/3.2.0: + resolution: {integrity: sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-3.2.0.tgz} + name: path-to-regexp + version: 3.2.0 + + registry.npmmirror.com/path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/pause/0.0.1: + resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pause/-/pause-0.0.1.tgz} + name: pause + version: 0.0.1 + dev: false + + registry.npmmirror.com/peberminta/0.8.0: + resolution: {integrity: sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/peberminta/-/peberminta-0.8.0.tgz} + name: peberminta + version: 0.8.0 + dev: false + + registry.npmmirror.com/peek-readable/4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/peek-readable/-/peek-readable-4.1.0.tgz} + name: peek-readable + version: 4.1.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/performance-now/2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz} + name: performance-now + version: 2.1.0 + dev: false + + registry.npmmirror.com/phin/2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/phin/-/phin-2.9.3.tgz} + name: phin + version: 2.9.3 + dev: false + + registry.npmmirror.com/pick-util/1.1.5: + resolution: {integrity: sha512-H0MaM8T7wpQ/azvB12ChZw7kpSFzjsgv3Z+N7fUWnL1McTGSEeroCngcK4eOPiFQq08rAyKX3hadcAB1kUqfXA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pick-util/-/pick-util-1.1.5.tgz} + name: pick-util + version: 1.1.5 + dependencies: + '@jonkemp/package-utils': registry.npmmirror.com/@jonkemp/package-utils/1.0.8 + dev: false + + registry.npmmirror.com/picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: true + + registry.npmmirror.com/picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + + registry.npmmirror.com/pirates/4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pirates/-/pirates-4.0.5.tgz} + name: pirates + version: 4.0.5 + engines: {node: '>= 6'} + dev: true + + registry.npmmirror.com/pixelmatch/4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz} + name: pixelmatch + version: 4.0.2 + hasBin: true + dependencies: + pngjs: registry.npmmirror.com/pngjs/3.4.0 + dev: false + + registry.npmmirror.com/pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz} + name: pkg-dir + version: 4.2.0 + engines: {node: '>=8'} + dependencies: + find-up: registry.npmmirror.com/find-up/4.1.0 + dev: true + + registry.npmmirror.com/pkg-up/3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz} + name: pkg-up + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + find-up: registry.npmmirror.com/find-up/3.0.0 + dev: false + + registry.npmmirror.com/pluralize/8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz} + name: pluralize + version: 8.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/pngjs/3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz} + name: pngjs + version: 3.4.0 + engines: {node: '>=4.0.0'} + dev: false + + registry.npmmirror.com/pngjs/6.0.0: + resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pngjs/-/pngjs-6.0.0.tgz} + name: pngjs + version: 6.0.0 + engines: {node: '>=12.13.0'} + dev: false + + registry.npmmirror.com/prelude-ls/1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz} + name: prelude-ls + version: 1.1.2 + engines: {node: '>= 0.8.0'} + dev: false + + registry.npmmirror.com/prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz} + name: prelude-ls + version: 1.2.1 + engines: {node: '>= 0.8.0'} + dev: true + + registry.npmmirror.com/prettier-linter-helpers/1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz} + name: prettier-linter-helpers + version: 1.0.0 + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: registry.npmmirror.com/fast-diff/1.2.0 + dev: true + + registry.npmmirror.com/prettier/2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/prettier/-/prettier-2.8.7.tgz} + name: prettier + version: 2.8.7 + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + registry.npmmirror.com/pretty-format/29.5.0: + resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pretty-format/-/pretty-format-29.5.0.tgz} + name: pretty-format + version: 29.5.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': registry.npmmirror.com/@jest/schemas/29.4.3 + ansi-styles: registry.npmmirror.com/ansi-styles/5.2.0 + react-is: registry.npmmirror.com/react-is/18.2.0 + dev: true + + registry.npmmirror.com/preview-email/3.0.5: + resolution: {integrity: sha512-q37jdkVw+wic0o/7xYhOTBS4kF0WX3two0OepmR1Fhxp9NTpO3rJTccAjQm95gJx/2Wa/Nv98sr9pXIQ77/foA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/preview-email/-/preview-email-3.0.5.tgz} + name: preview-email + version: 3.0.5 + engines: {node: '>=10'} + deprecated: Please upgrade to v3.0.7+ as we have added iOS Simulator support to previewing emails! See and screenshots at . + dependencies: + dayjs: registry.npmmirror.com/dayjs/1.11.7 + debug: registry.npmmirror.com/debug/4.3.4 + mailparser: registry.npmmirror.com/mailparser/3.6.4 + nodemailer: registry.npmmirror.com/nodemailer/6.9.1 + open: registry.npmmirror.com/open/7.4.2 + pug: registry.npmmirror.com/pug/3.0.2 + uuid: registry.npmmirror.com/uuid/8.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + name: process-nextick-args + version: 2.0.1 + + registry.npmmirror.com/process/0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/process/-/process-0.11.10.tgz} + name: process + version: 0.11.10 + engines: {node: '>= 0.6.0'} + dev: false + + registry.npmmirror.com/promise/7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/promise/-/promise-7.3.1.tgz} + name: promise + version: 7.3.1 + dependencies: + asap: registry.npmmirror.com/asap/2.0.6 + dev: false + + registry.npmmirror.com/prompts/2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz} + name: prompts + version: 2.4.2 + engines: {node: '>= 6'} + dependencies: + kleur: registry.npmmirror.com/kleur/3.0.3 + sisteransi: registry.npmmirror.com/sisteransi/1.0.5 + dev: true + + registry.npmmirror.com/proto-list/1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/proto-list/-/proto-list-1.2.4.tgz} + name: proto-list + version: 1.2.4 + dev: false + + registry.npmmirror.com/proxy-addr/2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz} + name: proxy-addr + version: 2.0.7 + engines: {node: '>= 0.10'} + dependencies: + forwarded: registry.npmmirror.com/forwarded/0.2.0 + ipaddr.js: registry.npmmirror.com/ipaddr.js/1.9.1 + + registry.npmmirror.com/proxy-agent/5.0.0: + resolution: {integrity: sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/proxy-agent/-/proxy-agent-5.0.0.tgz} + name: proxy-agent + version: 5.0.0 + engines: {node: '>= 8'} + dependencies: + agent-base: registry.npmmirror.com/agent-base/6.0.2 + debug: registry.npmmirror.com/debug/4.3.4 + http-proxy-agent: registry.npmmirror.com/http-proxy-agent/4.0.1 + https-proxy-agent: registry.npmmirror.com/https-proxy-agent/5.0.1 + lru-cache: registry.npmmirror.com/lru-cache/5.1.1 + pac-proxy-agent: registry.npmmirror.com/pac-proxy-agent/5.0.0 + proxy-from-env: registry.npmmirror.com/proxy-from-env/1.1.0 + socks-proxy-agent: registry.npmmirror.com/socks-proxy-agent/5.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/proxy-from-env/1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz} + name: proxy-from-env + version: 1.1.0 + dev: false + + registry.npmmirror.com/pseudomap/1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz} + name: pseudomap + version: 1.0.2 + dev: false + + registry.npmmirror.com/psl/1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/psl/-/psl-1.9.0.tgz} + name: psl + version: 1.9.0 + dev: false + + registry.npmmirror.com/pug-attrs/3.0.0: + resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-attrs/-/pug-attrs-3.0.0.tgz} + name: pug-attrs + version: 3.0.0 + dependencies: + constantinople: registry.npmmirror.com/constantinople/4.0.1 + js-stringify: registry.npmmirror.com/js-stringify/1.0.2 + pug-runtime: registry.npmmirror.com/pug-runtime/3.0.1 + dev: false + + registry.npmmirror.com/pug-code-gen/3.0.2: + resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz} + name: pug-code-gen + version: 3.0.2 + dependencies: + constantinople: registry.npmmirror.com/constantinople/4.0.1 + doctypes: registry.npmmirror.com/doctypes/1.1.0 + js-stringify: registry.npmmirror.com/js-stringify/1.0.2 + pug-attrs: registry.npmmirror.com/pug-attrs/3.0.0 + pug-error: registry.npmmirror.com/pug-error/2.0.0 + pug-runtime: registry.npmmirror.com/pug-runtime/3.0.1 + void-elements: registry.npmmirror.com/void-elements/3.1.0 + with: registry.npmmirror.com/with/7.0.2 + dev: false + + registry.npmmirror.com/pug-error/2.0.0: + resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-error/-/pug-error-2.0.0.tgz} + name: pug-error + version: 2.0.0 + dev: false + + registry.npmmirror.com/pug-filters/4.0.0: + resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-filters/-/pug-filters-4.0.0.tgz} + name: pug-filters + version: 4.0.0 + dependencies: + constantinople: registry.npmmirror.com/constantinople/4.0.1 + jstransformer: registry.npmmirror.com/jstransformer/1.0.0 + pug-error: registry.npmmirror.com/pug-error/2.0.0 + pug-walk: registry.npmmirror.com/pug-walk/2.0.0 + resolve: registry.npmmirror.com/resolve/1.22.1 + dev: false + + registry.npmmirror.com/pug-lexer/5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-lexer/-/pug-lexer-5.0.1.tgz} + name: pug-lexer + version: 5.0.1 + dependencies: + character-parser: registry.npmmirror.com/character-parser/2.2.0 + is-expression: registry.npmmirror.com/is-expression/4.0.0 + pug-error: registry.npmmirror.com/pug-error/2.0.0 + dev: false + + registry.npmmirror.com/pug-linker/4.0.0: + resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-linker/-/pug-linker-4.0.0.tgz} + name: pug-linker + version: 4.0.0 + dependencies: + pug-error: registry.npmmirror.com/pug-error/2.0.0 + pug-walk: registry.npmmirror.com/pug-walk/2.0.0 + dev: false + + registry.npmmirror.com/pug-load/3.0.0: + resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-load/-/pug-load-3.0.0.tgz} + name: pug-load + version: 3.0.0 + dependencies: + object-assign: registry.npmmirror.com/object-assign/4.1.1 + pug-walk: registry.npmmirror.com/pug-walk/2.0.0 + dev: false + + registry.npmmirror.com/pug-parser/6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-parser/-/pug-parser-6.0.0.tgz} + name: pug-parser + version: 6.0.0 + dependencies: + pug-error: registry.npmmirror.com/pug-error/2.0.0 + token-stream: registry.npmmirror.com/token-stream/1.0.0 + dev: false + + registry.npmmirror.com/pug-runtime/3.0.1: + resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-runtime/-/pug-runtime-3.0.1.tgz} + name: pug-runtime + version: 3.0.1 + dev: false + + registry.npmmirror.com/pug-strip-comments/2.0.0: + resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz} + name: pug-strip-comments + version: 2.0.0 + dependencies: + pug-error: registry.npmmirror.com/pug-error/2.0.0 + dev: false + + registry.npmmirror.com/pug-walk/2.0.0: + resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug-walk/-/pug-walk-2.0.0.tgz} + name: pug-walk + version: 2.0.0 + dev: false + + registry.npmmirror.com/pug/3.0.2: + resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pug/-/pug-3.0.2.tgz} + name: pug + version: 3.0.2 + dependencies: + pug-code-gen: registry.npmmirror.com/pug-code-gen/3.0.2 + pug-filters: registry.npmmirror.com/pug-filters/4.0.0 + pug-lexer: registry.npmmirror.com/pug-lexer/5.0.1 + pug-linker: registry.npmmirror.com/pug-linker/4.0.0 + pug-load: registry.npmmirror.com/pug-load/3.0.0 + pug-parser: registry.npmmirror.com/pug-parser/6.0.0 + pug-runtime: registry.npmmirror.com/pug-runtime/3.0.1 + pug-strip-comments: registry.npmmirror.com/pug-strip-comments/2.0.0 + dev: false + + registry.npmmirror.com/pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pump/-/pump-3.0.0.tgz} + name: pump + version: 3.0.0 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream/1.4.4 + once: registry.npmmirror.com/once/1.4.0 + dev: true + + registry.npmmirror.com/punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz} + name: punycode + version: 2.3.0 + engines: {node: '>=6'} + + registry.npmmirror.com/pure-rand/6.0.1: + resolution: {integrity: sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/pure-rand/-/pure-rand-6.0.1.tgz} + name: pure-rand + version: 6.0.1 + dev: true + + registry.npmmirror.com/qs/6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/qs/-/qs-6.11.0.tgz} + name: qs + version: 6.11.0 + engines: {node: '>=0.6'} + dependencies: + side-channel: registry.npmmirror.com/side-channel/1.0.4 + + registry.npmmirror.com/qs/6.11.1: + resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/qs/-/qs-6.11.1.tgz} + name: qs + version: 6.11.1 + engines: {node: '>=0.6'} + dependencies: + side-channel: registry.npmmirror.com/side-channel/1.0.4 + + registry.npmmirror.com/qs/6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/qs/-/qs-6.5.3.tgz} + name: qs + version: 6.5.3 + engines: {node: '>=0.6'} + dev: false + + registry.npmmirror.com/queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: true + + registry.npmmirror.com/quick-lru/6.1.1: + resolution: {integrity: sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/quick-lru/-/quick-lru-6.1.1.tgz} + name: quick-lru + version: 6.1.1 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/randombytes/2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} + name: randombytes + version: 2.1.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + dev: true + + registry.npmmirror.com/range-parser/1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz} + name: range-parser + version: 1.2.1 + engines: {node: '>= 0.6'} + + registry.npmmirror.com/raw-body/2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz} + name: raw-body + version: 2.5.1 + engines: {node: '>= 0.8'} + dependencies: + bytes: registry.npmmirror.com/bytes/3.1.2 + http-errors: registry.npmmirror.com/http-errors/2.0.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + unpipe: registry.npmmirror.com/unpipe/1.0.0 + + registry.npmmirror.com/raw-body/2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz} + name: raw-body + version: 2.5.2 + engines: {node: '>= 0.8'} + dependencies: + bytes: registry.npmmirror.com/bytes/3.1.2 + http-errors: registry.npmmirror.com/http-errors/2.0.0 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 + unpipe: registry.npmmirror.com/unpipe/1.0.0 + + registry.npmmirror.com/react-is/18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz} + name: react-is + version: 18.2.0 + dev: true + + registry.npmmirror.com/read-pkg-up/9.1.0: + resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz} + name: read-pkg-up + version: 9.1.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + find-up: registry.npmmirror.com/find-up/6.3.0 + read-pkg: registry.npmmirror.com/read-pkg/7.1.0 + type-fest: registry.npmmirror.com/type-fest/2.19.0 + dev: false + + registry.npmmirror.com/read-pkg/7.1.0: + resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/read-pkg/-/read-pkg-7.1.0.tgz} + name: read-pkg + version: 7.1.0 + engines: {node: '>=12.20'} + dependencies: + '@types/normalize-package-data': registry.npmmirror.com/@types/normalize-package-data/2.4.1 + normalize-package-data: registry.npmmirror.com/normalize-package-data/3.0.3 + parse-json: registry.npmmirror.com/parse-json/5.2.0 + type-fest: registry.npmmirror.com/type-fest/2.19.0 + dev: false + + registry.npmmirror.com/readable-stream/1.1.14: + resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readable-stream/-/readable-stream-1.1.14.tgz} + name: readable-stream + version: 1.1.14 + dependencies: + core-util-is: registry.npmmirror.com/core-util-is/1.0.3 + inherits: registry.npmmirror.com/inherits/2.0.4 + isarray: registry.npmmirror.com/isarray/0.0.1 + string_decoder: registry.npmmirror.com/string_decoder/0.10.31 + dev: false + + registry.npmmirror.com/readable-stream/2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz} + name: readable-stream + version: 2.3.8 + dependencies: + core-util-is: registry.npmmirror.com/core-util-is/1.0.3 + inherits: registry.npmmirror.com/inherits/2.0.4 + isarray: registry.npmmirror.com/isarray/1.0.0 + process-nextick-args: registry.npmmirror.com/process-nextick-args/2.0.1 + safe-buffer: registry.npmmirror.com/safe-buffer/5.1.2 + string_decoder: registry.npmmirror.com/string_decoder/1.1.1 + util-deprecate: registry.npmmirror.com/util-deprecate/1.0.2 + + registry.npmmirror.com/readable-stream/3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} + name: readable-stream + version: 3.6.2 + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits/2.0.4 + string_decoder: registry.npmmirror.com/string_decoder/1.3.0 + util-deprecate: registry.npmmirror.com/util-deprecate/1.0.2 + + registry.npmmirror.com/readable-web-to-node-stream/3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz} + name: readable-web-to-node-stream + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + readable-stream: registry.npmmirror.com/readable-stream/3.6.2 + dev: false + + registry.npmmirror.com/readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + name: readdirp + version: 3.6.0 + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.npmmirror.com/picomatch/2.3.1 + + registry.npmmirror.com/rechoir/0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rechoir/-/rechoir-0.6.2.tgz} + name: rechoir + version: 0.6.2 + engines: {node: '>= 0.10'} + dependencies: + resolve: registry.npmmirror.com/resolve/1.22.1 + dev: true + + registry.npmmirror.com/redis-commands/1.7.0: + resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/redis-commands/-/redis-commands-1.7.0.tgz} + name: redis-commands + version: 1.7.0 + dev: false + + registry.npmmirror.com/redis-errors/1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/redis-errors/-/redis-errors-1.2.0.tgz} + name: redis-errors + version: 1.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/redis-parser/3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/redis-parser/-/redis-parser-3.0.0.tgz} + name: redis-parser + version: 3.0.0 + engines: {node: '>=4'} + dependencies: + redis-errors: registry.npmmirror.com/redis-errors/1.2.0 + dev: false + + registry.npmmirror.com/redis/4.6.6: + resolution: {integrity: sha512-aLs2fuBFV/VJ28oLBqYykfnhGGkFxvx0HdCEBYdJ99FFbSEMZ7c1nVKwR6ZRv+7bb7JnC0mmCzaqu8frgOYhpA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/redis/-/redis-4.6.6.tgz} + name: redis + version: 4.6.6 + dependencies: + '@redis/bloom': registry.npmmirror.com/@redis/bloom/1.2.0_@redis+client@1.5.7 + '@redis/client': registry.npmmirror.com/@redis/client/1.5.7 + '@redis/graph': registry.npmmirror.com/@redis/graph/1.1.0_@redis+client@1.5.7 + '@redis/json': registry.npmmirror.com/@redis/json/1.0.4_@redis+client@1.5.7 + '@redis/search': registry.npmmirror.com/@redis/search/1.1.2_@redis+client@1.5.7 + '@redis/time-series': registry.npmmirror.com/@redis/time-series/1.0.4_@redis+client@1.5.7 + dev: false + + registry.npmmirror.com/reflect-metadata/0.1.13: + resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz} + name: reflect-metadata + version: 0.1.13 + + registry.npmmirror.com/regenerator-runtime/0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + dev: false + + registry.npmmirror.com/relateurl/0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz} + name: relateurl + version: 0.2.7 + engines: {node: '>= 0.10'} + dev: false + + registry.npmmirror.com/remote-content/3.0.1: + resolution: {integrity: sha512-zEMsvb4GgxVKBBTHgy2tte67RYBZx2Kyg9mTYpg+JfATHDqYJqhuC3zG1VoiYhDVP5JaB5+mPKcAvdnT0n3jxA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/remote-content/-/remote-content-3.0.1.tgz} + name: remote-content + version: 3.0.1 + dependencies: + proxy-from-env: registry.npmmirror.com/proxy-from-env/1.1.0 + superagent: registry.npmmirror.com/superagent/8.0.9 + superagent-proxy: registry.npmmirror.com/superagent-proxy/3.0.0_superagent@8.0.9 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/request/2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/request/-/request-2.88.2.tgz} + name: request + version: 2.88.2 + engines: {node: '>= 6'} + deprecated: request has been deprecated, see http://github.com/request/request/issues/3142 + dependencies: + aws-sign2: registry.npmmirror.com/aws-sign2/0.7.0 + aws4: registry.npmmirror.com/aws4/1.12.0 + caseless: registry.npmmirror.com/caseless/0.12.0 + combined-stream: registry.npmmirror.com/combined-stream/1.0.8 + extend: registry.npmmirror.com/extend/3.0.2 + forever-agent: registry.npmmirror.com/forever-agent/0.6.1 + form-data: registry.npmmirror.com/form-data/2.3.3 + har-validator: registry.npmmirror.com/har-validator/5.1.5 + http-signature: registry.npmmirror.com/http-signature/1.2.0 + is-typedarray: registry.npmmirror.com/is-typedarray/1.0.0 + isstream: registry.npmmirror.com/isstream/0.1.2 + json-stringify-safe: registry.npmmirror.com/json-stringify-safe/5.0.1 + mime-types: registry.npmmirror.com/mime-types/2.1.35 + oauth-sign: registry.npmmirror.com/oauth-sign/0.9.0 + performance-now: registry.npmmirror.com/performance-now/2.1.0 + qs: registry.npmmirror.com/qs/6.5.3 + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + tough-cookie: registry.npmmirror.com/tough-cookie/2.5.0 + tunnel-agent: registry.npmmirror.com/tunnel-agent/0.6.0 + uuid: registry.npmmirror.com/uuid/3.4.0 + dev: false + + registry.npmmirror.com/require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} + name: require-directory + version: 2.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} + name: require-from-string + version: 2.0.2 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/resolve-cwd/3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz} + name: resolve-cwd + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + resolve-from: registry.npmmirror.com/resolve-from/5.0.0 + dev: true + + registry.npmmirror.com/resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz} + name: resolve-from + version: 5.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/resolve.exports/2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve.exports/-/resolve.exports-2.0.2.tgz} + name: resolve.exports + version: 2.0.2 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} + name: resolve + version: 1.22.1 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module/2.11.0 + path-parse: registry.npmmirror.com/path-parse/1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 + + registry.npmmirror.com/restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/restore-cursor/-/restore-cursor-3.1.0.tgz} + name: restore-cursor + version: 3.1.0 + engines: {node: '>=8'} + dependencies: + onetime: registry.npmmirror.com/onetime/5.1.2 + signal-exit: registry.npmmirror.com/signal-exit/3.0.7 + dev: true + + registry.npmmirror.com/reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/7.2.3 + dev: true + + registry.npmmirror.com/rimraf/4.4.0: + resolution: {integrity: sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rimraf/-/rimraf-4.4.0.tgz} + name: rimraf + version: 4.4.0 + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/9.3.2 + dev: true + + registry.npmmirror.com/run-async/2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz} + name: run-async + version: 2.4.1 + engines: {node: '>=0.12.0'} + dev: true + + registry.npmmirror.com/run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask/1.2.3 + dev: true + + registry.npmmirror.com/rxjs/6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz} + name: rxjs + version: 6.6.7 + engines: {npm: '>=2.0.0'} + dependencies: + tslib: registry.npmmirror.com/tslib/1.14.1 + + registry.npmmirror.com/rxjs/7.8.0: + resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/rxjs/-/rxjs-7.8.0.tgz} + name: rxjs + version: 7.8.0 + dependencies: + tslib: registry.npmmirror.com/tslib/2.5.0 + + registry.npmmirror.com/safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} + name: safe-buffer + version: 5.1.2 + + registry.npmmirror.com/safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + name: safe-buffer + version: 5.2.1 + + registry.npmmirror.com/safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} + name: safer-buffer + version: 2.1.2 + + registry.npmmirror.com/sax/1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} + name: sax + version: 1.2.4 + dev: false + + registry.npmmirror.com/schema-utils/3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz} + name: schema-utils + version: 3.1.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.11 + ajv: registry.npmmirror.com/ajv/6.12.6 + ajv-keywords: registry.npmmirror.com/ajv-keywords/3.5.2_ajv@6.12.6 + dev: true + + registry.npmmirror.com/selderee/0.10.0: + resolution: {integrity: sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/selderee/-/selderee-0.10.0.tgz} + name: selderee + version: 0.10.0 + dependencies: + parseley: registry.npmmirror.com/parseley/0.11.0 + dev: false + + registry.npmmirror.com/semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/semver/-/semver-5.7.1.tgz} + name: semver + version: 5.7.1 + hasBin: true + dev: false + + registry.npmmirror.com/semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/semver/-/semver-6.3.0.tgz} + name: semver + version: 6.3.0 + hasBin: true + + registry.npmmirror.com/semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/semver/-/semver-7.3.8.tgz} + name: semver + version: 7.3.8 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache/6.0.0 + + registry.npmmirror.com/send/0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/send/-/send-0.18.0.tgz} + name: send + version: 0.18.0 + engines: {node: '>= 0.8.0'} + dependencies: + debug: registry.npmmirror.com/debug/2.6.9 + depd: registry.npmmirror.com/depd/2.0.0 + destroy: registry.npmmirror.com/destroy/1.2.0 + encodeurl: registry.npmmirror.com/encodeurl/1.0.2 + escape-html: registry.npmmirror.com/escape-html/1.0.3 + etag: registry.npmmirror.com/etag/1.8.1 + fresh: registry.npmmirror.com/fresh/0.5.2 + http-errors: registry.npmmirror.com/http-errors/2.0.0 + mime: registry.npmmirror.com/mime/1.6.0 + ms: registry.npmmirror.com/ms/2.1.3 + on-finished: registry.npmmirror.com/on-finished/2.4.1 + range-parser: registry.npmmirror.com/range-parser/1.2.1 + statuses: registry.npmmirror.com/statuses/2.0.1 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/seq-queue/0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/seq-queue/-/seq-queue-0.0.5.tgz} + name: seq-queue + version: 0.0.5 + dev: false + + registry.npmmirror.com/serialize-javascript/6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz} + name: serialize-javascript + version: 6.0.1 + dependencies: + randombytes: registry.npmmirror.com/randombytes/2.1.0 + dev: true + + registry.npmmirror.com/serve-static/1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz} + name: serve-static + version: 1.15.0 + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: registry.npmmirror.com/encodeurl/1.0.2 + escape-html: registry.npmmirror.com/escape-html/1.0.3 + parseurl: registry.npmmirror.com/parseurl/1.3.3 + send: registry.npmmirror.com/send/0.18.0 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/sha.js/2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz} + name: sha.js + version: 2.4.11 + hasBin: true + dependencies: + inherits: registry.npmmirror.com/inherits/2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + dev: false + + registry.npmmirror.com/shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex/3.0.0 + dev: true + + registry.npmmirror.com/shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/shelljs/0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/shelljs/-/shelljs-0.8.5.tgz} + name: shelljs + version: 0.8.5 + engines: {node: '>=4'} + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/7.2.3 + interpret: registry.npmmirror.com/interpret/1.4.0 + rechoir: registry.npmmirror.com/rechoir/0.6.2 + dev: true + + registry.npmmirror.com/side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind/1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic/1.2.0 + object-inspect: registry.npmmirror.com/object-inspect/1.12.3 + + registry.npmmirror.com/sigmund/1.0.1: + resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sigmund/-/sigmund-1.0.1.tgz} + name: sigmund + version: 1.0.1 + dev: false + + registry.npmmirror.com/signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} + name: signal-exit + version: 3.0.7 + dev: true + + registry.npmmirror.com/sisteransi/1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz} + name: sisteransi + version: 1.0.5 + dev: true + + registry.npmmirror.com/slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/slick/1.12.2: + resolution: {integrity: sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/slick/-/slick-1.12.2.tgz} + name: slick + version: 1.12.2 + dev: false + + registry.npmmirror.com/smart-buffer/4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/smart-buffer/-/smart-buffer-4.2.0.tgz} + name: smart-buffer + version: 4.2.0 + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: false + + registry.npmmirror.com/socks-proxy-agent/5.0.1: + resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz} + name: socks-proxy-agent + version: 5.0.1 + engines: {node: '>= 6'} + dependencies: + agent-base: registry.npmmirror.com/agent-base/6.0.2 + debug: registry.npmmirror.com/debug/4.3.4 + socks: registry.npmmirror.com/socks/2.7.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/socks/2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/socks/-/socks-2.7.1.tgz} + name: socks + version: 2.7.1 + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: registry.npmmirror.com/ip/2.0.0 + smart-buffer: registry.npmmirror.com/smart-buffer/4.2.0 + dev: false + + registry.npmmirror.com/source-map-support/0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.13.tgz} + name: source-map-support + version: 0.5.13 + dependencies: + buffer-from: registry.npmmirror.com/buffer-from/1.1.2 + source-map: registry.npmmirror.com/source-map/0.6.1 + dev: true + + registry.npmmirror.com/source-map-support/0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmmirror.com/buffer-from/1.1.2 + source-map: registry.npmmirror.com/source-map/0.6.1 + dev: true + + registry.npmmirror.com/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map/0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} + name: source-map + version: 0.7.4 + engines: {node: '>= 8'} + dev: true + + registry.npmmirror.com/sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz} + name: sourcemap-codec + version: 1.4.8 + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + registry.npmmirror.com/spdx-correct/3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} + name: spdx-correct + version: 3.2.0 + dependencies: + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse/3.0.1 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids/3.0.13 + dev: false + + registry.npmmirror.com/spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} + name: spdx-exceptions + version: 2.3.0 + dev: false + + registry.npmmirror.com/spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + name: spdx-expression-parse + version: 3.0.1 + dependencies: + spdx-exceptions: registry.npmmirror.com/spdx-exceptions/2.3.0 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids/3.0.13 + dev: false + + registry.npmmirror.com/spdx-license-ids/3.0.13: + resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz} + name: spdx-license-ids + version: 3.0.13 + dev: false + + registry.npmmirror.com/specificity/0.4.1: + resolution: {integrity: sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/specificity/-/specificity-0.4.1.tgz} + name: specificity + version: 0.4.1 + hasBin: true + dev: false + + registry.npmmirror.com/sprintf-js/1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz} + name: sprintf-js + version: 1.0.3 + dev: true + + registry.npmmirror.com/sqlstring/2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.3.tgz} + name: sqlstring + version: 2.3.3 + engines: {node: '>= 0.6'} + dev: false + + registry.npmmirror.com/sshpk/1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz} + name: sshpk + version: 1.17.0 + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: registry.npmmirror.com/asn1/0.2.6 + assert-plus: registry.npmmirror.com/assert-plus/1.0.0 + bcrypt-pbkdf: registry.npmmirror.com/bcrypt-pbkdf/1.0.2 + dashdash: registry.npmmirror.com/dashdash/1.14.1 + ecc-jsbn: registry.npmmirror.com/ecc-jsbn/0.1.2 + getpass: registry.npmmirror.com/getpass/0.1.7 + jsbn: registry.npmmirror.com/jsbn/0.1.1 + safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2 + tweetnacl: registry.npmmirror.com/tweetnacl/0.14.5 + dev: false + + registry.npmmirror.com/stack-utils/2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/stack-utils/-/stack-utils-2.0.6.tgz} + name: stack-utils + version: 2.0.6 + engines: {node: '>=10'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/2.0.0 + dev: true + + registry.npmmirror.com/standard-as-callback/2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz} + name: standard-as-callback + version: 2.1.0 + dev: false + + registry.npmmirror.com/statuses/2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz} + name: statuses + version: 2.0.1 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/streamsearch/1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/streamsearch/-/streamsearch-1.1.0.tgz} + name: streamsearch + version: 1.1.0 + engines: {node: '>=10.0.0'} + + registry.npmmirror.com/string-length/4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz} + name: string-length + version: 4.0.2 + engines: {node: '>=10'} + dependencies: + char-regex: registry.npmmirror.com/char-regex/1.0.2 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + dev: true + + registry.npmmirror.com/string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + name: string-width + version: 4.2.3 + engines: {node: '>=8'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex/8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point/3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + + registry.npmmirror.com/string_decoder/0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz} + name: string_decoder + version: 0.10.31 + dev: false + + registry.npmmirror.com/string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} + name: string_decoder + version: 1.1.1 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.1.2 + + registry.npmmirror.com/string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} + name: string_decoder + version: 1.3.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + + registry.npmmirror.com/strip-ansi/6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex/5.0.1 + + registry.npmmirror.com/strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-bom/-/strip-bom-3.0.0.tgz} + name: strip-bom + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz} + name: strip-bom + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} + name: strip-final-newline + version: 2.0.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} + name: strip-json-comments + version: 3.1.1 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/strnum/1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strnum/-/strnum-1.0.5.tgz} + name: strnum + version: 1.0.5 + dev: false + + registry.npmmirror.com/strtok3/6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/strtok3/-/strtok3-6.3.0.tgz} + name: strtok3 + version: 6.3.0 + engines: {node: '>=10'} + dependencies: + '@tokenizer/token': registry.npmmirror.com/@tokenizer/token/0.3.0 + peek-readable: registry.npmmirror.com/peek-readable/4.1.0 + dev: false + + registry.npmmirror.com/stubborn-fs/1.2.4: + resolution: {integrity: sha512-KRa4nIRJ8q6uApQbPwYZVhOof8979fw4xbajBWa5kPJFa4nyY3aFaMWVyIVCDnkNCCG/3HLipUZ4QaNlYsmX1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/stubborn-fs/-/stubborn-fs-1.2.4.tgz} + name: stubborn-fs + version: 1.2.4 + dev: false + + registry.npmmirror.com/style-data/2.0.1: + resolution: {integrity: sha512-frUbteLGDoNEJhbMIWtyNE1VRduZXmZozhct4F+qN++OzIQZNZJ8KToZlDEl3eaedRYlDfKvUoMFMyrZj4x/sg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/style-data/-/style-data-2.0.1.tgz} + name: style-data + version: 2.0.1 + dependencies: + cheerio: registry.npmmirror.com/cheerio/1.0.0-rc.12 + mediaquery-text: registry.npmmirror.com/mediaquery-text/1.2.0 + pick-util: registry.npmmirror.com/pick-util/1.1.5 + dev: false + + registry.npmmirror.com/superagent-proxy/3.0.0_superagent@8.0.9: + resolution: {integrity: sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/superagent-proxy/-/superagent-proxy-3.0.0.tgz} + id: registry.npmmirror.com/superagent-proxy/3.0.0 + name: superagent-proxy + version: 3.0.0 + engines: {node: '>=6'} + peerDependencies: + superagent: '>= 0.15.4 || 1 || 2 || 3' + dependencies: + debug: registry.npmmirror.com/debug/4.3.4 + proxy-agent: registry.npmmirror.com/proxy-agent/5.0.0 + superagent: registry.npmmirror.com/superagent/8.0.9 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/superagent/8.0.9: + resolution: {integrity: sha512-4C7Bh5pyHTvU33KpZgwrNKh/VQnvgtCSqPRfJAUdmrtSYePVzVg4E4OzsrbkhJj9O7SO6Bnv75K/F8XVZT8YHA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/superagent/-/superagent-8.0.9.tgz} + name: superagent + version: 8.0.9 + engines: {node: '>=6.4.0 <13 || >=14'} + dependencies: + component-emitter: registry.npmmirror.com/component-emitter/1.3.0 + cookiejar: registry.npmmirror.com/cookiejar/2.1.4 + debug: registry.npmmirror.com/debug/4.3.4 + fast-safe-stringify: registry.npmmirror.com/fast-safe-stringify/2.1.1 + form-data: registry.npmmirror.com/form-data/4.0.0 + formidable: registry.npmmirror.com/formidable/2.1.2 + methods: registry.npmmirror.com/methods/1.1.2 + mime: registry.npmmirror.com/mime/2.6.0 + qs: registry.npmmirror.com/qs/6.11.1 + semver: registry.npmmirror.com/semver/7.3.8 + transitivePeerDependencies: + - supports-color + + registry.npmmirror.com/supertest/6.3.3: + resolution: {integrity: sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supertest/-/supertest-6.3.3.tgz} + name: supertest + version: 6.3.3 + engines: {node: '>=6.4.0'} + dependencies: + methods: registry.npmmirror.com/methods/1.1.2 + superagent: registry.npmmirror.com/superagent/8.0.9 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag/3.0.0 + + registry.npmmirror.com/supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag/4.0.0 + + registry.npmmirror.com/supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} + name: supports-color + version: 8.1.1 + engines: {node: '>=10'} + dependencies: + has-flag: registry.npmmirror.com/has-flag/4.0.0 + dev: true + + registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + + registry.npmmirror.com/swagger-ui-dist/4.15.5: + resolution: {integrity: sha512-V3eIa28lwB6gg7/wfNvAbjwJYmDXy1Jo1POjyTzlB6wPcHiGlRxq39TSjYGVjQrUSAzpv+a7nzp7mDxgNy57xA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/swagger-ui-dist/-/swagger-ui-dist-4.15.5.tgz} + name: swagger-ui-dist + version: 4.15.5 + dev: false + + registry.npmmirror.com/swagger-ui-dist/4.18.1: + resolution: {integrity: sha512-n7AT4wzKIPpHy/BGflJOepGMrbY/7Cd5yVd9ptVczaJGAKScbVJrZxFbAE2ZSZa8KmqdQ0+pOs3/5mWY5tSMZQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/swagger-ui-dist/-/swagger-ui-dist-4.18.1.tgz} + name: swagger-ui-dist + version: 4.18.1 + dev: false + + registry.npmmirror.com/swagger-ui-express/4.6.2_express@4.18.2: + resolution: {integrity: sha512-MHIOaq9JrTTB3ygUJD+08PbjM5Tt/q7x80yz9VTFIatw8j5uIWKcr90S0h5NLMzFEDC6+eVprtoeA5MDZXCUKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/swagger-ui-express/-/swagger-ui-express-4.6.2.tgz} + id: registry.npmmirror.com/swagger-ui-express/4.6.2 + name: swagger-ui-express + version: 4.6.2 + engines: {node: '>= v0.10.32'} + peerDependencies: + express: '>=4.0.0' + dependencies: + express: registry.npmmirror.com/express/4.18.2 + swagger-ui-dist: registry.npmmirror.com/swagger-ui-dist/4.18.1 + dev: false + + registry.npmmirror.com/symbol-observable/4.0.0: + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/symbol-observable/-/symbol-observable-4.0.0.tgz} + name: symbol-observable + version: 4.0.0 + engines: {node: '>=0.10'} + dev: true + + registry.npmmirror.com/tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/terser-webpack-plugin/5.3.7_webpack@5.76.2: + resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.7.tgz} + id: registry.npmmirror.com/terser-webpack-plugin/5.3.7 + name: terser-webpack-plugin + version: 5.3.7 + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + jest-worker: registry.npmmirror.com/jest-worker/27.5.1 + schema-utils: registry.npmmirror.com/schema-utils/3.1.1 + serialize-javascript: registry.npmmirror.com/serialize-javascript/6.0.1 + terser: registry.npmmirror.com/terser/5.16.8 + webpack: registry.npmmirror.com/webpack/5.76.2 + dev: true + + registry.npmmirror.com/terser/5.16.8: + resolution: {integrity: sha512-QI5g1E/ef7d+PsDifb+a6nnVgC4F22Bg6T0xrBrz6iloVB4PUkkunp6V8nzoOOZJIzjWVdAGqCdlKlhLq/TbIA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/terser/-/terser-5.16.8.tgz} + name: terser + version: 5.16.8 + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': registry.npmmirror.com/@jridgewell/source-map/0.3.2 + acorn: registry.npmmirror.com/acorn/8.8.2 + commander: registry.npmmirror.com/commander/2.20.3 + source-map-support: registry.npmmirror.com/source-map-support/0.5.21 + dev: true + + registry.npmmirror.com/test-exclude/6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz} + name: test-exclude + version: 6.0.0 + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema/0.1.3 + glob: registry.npmmirror.com/glob/7.2.3 + minimatch: registry.npmmirror.com/minimatch/3.1.2 + dev: true + + registry.npmmirror.com/text-table/0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz} + name: text-table + version: 0.2.0 + dev: true + + registry.npmmirror.com/thenify-all/1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz} + name: thenify-all + version: 1.6.0 + engines: {node: '>=0.8'} + dependencies: + thenify: registry.npmmirror.com/thenify/3.3.1 + dev: false + + registry.npmmirror.com/thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz} + name: thenify + version: 3.3.1 + dependencies: + any-promise: registry.npmmirror.com/any-promise/1.3.0 + dev: false + + registry.npmmirror.com/through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/through/-/through-2.3.8.tgz} + name: through + version: 2.3.8 + dev: true + + registry.npmmirror.com/timm/1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/timm/-/timm-1.7.1.tgz} + name: timm + version: 1.7.1 + dev: false + + registry.npmmirror.com/tinycolor2/1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz} + name: tinycolor2 + version: 1.6.0 + dev: false + + registry.npmmirror.com/tlds/1.236.0: + resolution: {integrity: sha512-oP2PZ3KeGlgpHgsEfrtva3/K9kzsJUNliQSbCfrJ7JMCWFoCdtG+9YMq/g2AnADQ1v5tVlbtvKJZ4KLpy/P6MA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tlds/-/tlds-1.236.0.tgz} + name: tlds + version: 1.236.0 + hasBin: true + dev: false + + registry.npmmirror.com/tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz} + name: tmp + version: 0.0.33 + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: registry.npmmirror.com/os-tmpdir/1.0.2 + dev: true + + registry.npmmirror.com/tmpl/1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz} + name: tmpl + version: 1.0.5 + dev: true + + registry.npmmirror.com/to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + + registry.npmmirror.com/to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number/7.0.0 + + registry.npmmirror.com/toidentifier/1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz} + name: toidentifier + version: 1.0.1 + engines: {node: '>=0.6'} + + registry.npmmirror.com/token-stream/1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/token-stream/-/token-stream-1.0.0.tgz} + name: token-stream + version: 1.0.0 + dev: false + + registry.npmmirror.com/token-types/4.2.1: + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/token-types/-/token-types-4.2.1.tgz} + name: token-types + version: 4.2.1 + engines: {node: '>=10'} + dependencies: + '@tokenizer/token': registry.npmmirror.com/@tokenizer/token/0.3.0 + ieee754: registry.npmmirror.com/ieee754/1.2.1 + dev: false + + registry.npmmirror.com/tough-cookie/2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tough-cookie/-/tough-cookie-2.5.0.tgz} + name: tough-cookie + version: 2.5.0 + engines: {node: '>=0.8'} + dependencies: + psl: registry.npmmirror.com/psl/1.9.0 + punycode: registry.npmmirror.com/punycode/2.3.0 + dev: false + + registry.npmmirror.com/tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz} + name: tr46 + version: 0.0.3 + + registry.npmmirror.com/tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz} + name: tree-kill + version: 1.2.2 + hasBin: true + dev: true + + registry.npmmirror.com/ts-jest/29.0.3_hfbqr3rujuziiw7lzul6vua4r4: + resolution: {integrity: sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ts-jest/-/ts-jest-29.0.3.tgz} + id: registry.npmmirror.com/ts-jest/29.0.3 + name: ts-jest + version: 29.0.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + bs-logger: registry.npmmirror.com/bs-logger/0.2.6 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify/2.1.0 + jest: registry.npmmirror.com/jest/29.3.1_zfha7dvnw4nti6zkbsmhmn6xo4 + jest-util: registry.npmmirror.com/jest-util/29.5.0 + json5: registry.npmmirror.com/json5/2.2.3 + lodash.memoize: registry.npmmirror.com/lodash.memoize/4.1.2 + make-error: registry.npmmirror.com/make-error/1.3.6 + semver: registry.npmmirror.com/semver/7.3.8 + typescript: registry.npmmirror.com/typescript/4.9.5 + yargs-parser: registry.npmmirror.com/yargs-parser/21.1.1 + dev: true + + registry.npmmirror.com/ts-loader/9.4.2_typescript@4.9.5: + resolution: {integrity: sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ts-loader/-/ts-loader-9.4.2.tgz} + id: registry.npmmirror.com/ts-loader/9.4.2 + name: ts-loader + version: 9.4.2 + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve/5.12.0 + micromatch: registry.npmmirror.com/micromatch/4.0.5 + semver: registry.npmmirror.com/semver/7.3.8 + typescript: registry.npmmirror.com/typescript/4.9.5 + dev: true + + registry.npmmirror.com/ts-node/10.9.1_bdgp3l2zgaopogaavxusmetvge: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/ts-node/-/ts-node-10.9.1.tgz} + id: registry.npmmirror.com/ts-node/10.9.1 + name: ts-node + version: 10.9.1 + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': registry.npmmirror.com/@cspotcode/source-map-support/0.8.1 + '@tsconfig/node10': registry.npmmirror.com/@tsconfig/node10/1.0.9 + '@tsconfig/node12': registry.npmmirror.com/@tsconfig/node12/1.0.11 + '@tsconfig/node14': registry.npmmirror.com/@tsconfig/node14/1.0.3 + '@tsconfig/node16': registry.npmmirror.com/@tsconfig/node16/1.0.3 + '@types/node': registry.npmmirror.com/@types/node/18.11.18 + acorn: registry.npmmirror.com/acorn/8.8.2 + acorn-walk: registry.npmmirror.com/acorn-walk/8.2.0 + arg: registry.npmmirror.com/arg/4.1.3 + create-require: registry.npmmirror.com/create-require/1.1.1 + diff: registry.npmmirror.com/diff/4.0.2 + make-error: registry.npmmirror.com/make-error/1.3.6 + typescript: registry.npmmirror.com/typescript/4.9.5 + v8-compile-cache-lib: registry.npmmirror.com/v8-compile-cache-lib/3.0.1 + yn: registry.npmmirror.com/yn/3.1.1 + + registry.npmmirror.com/tsconfig-paths-webpack-plugin/4.0.1: + resolution: {integrity: sha512-m5//KzLoKmqu2MVix+dgLKq70MnFi8YL8sdzQZ6DblmCdfuq/y3OqvJd5vMndg2KEVCOeNz8Es4WVZhYInteLw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.0.1.tgz} + name: tsconfig-paths-webpack-plugin + version: 4.0.1 + engines: {node: '>=10.13.0'} + dependencies: + chalk: registry.npmmirror.com/chalk/4.1.2 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve/5.12.0 + tsconfig-paths: registry.npmmirror.com/tsconfig-paths/4.1.2 + dev: true + + registry.npmmirror.com/tsconfig-paths/4.1.1: + resolution: {integrity: sha512-VgPrtLKpRgEAJsMj5Q/I/mXouC6A/7eJ/X4Nuk6o0cRPwBtznYxTCU4FodbexbzH9somBPEXYi0ZkUViUpJ21Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.1.1.tgz} + name: tsconfig-paths + version: 4.1.1 + engines: {node: '>=6'} + dependencies: + json5: registry.npmmirror.com/json5/2.2.3 + minimist: registry.npmmirror.com/minimist/1.2.8 + strip-bom: registry.npmmirror.com/strip-bom/3.0.0 + dev: true + + registry.npmmirror.com/tsconfig-paths/4.1.2: + resolution: {integrity: sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz} + name: tsconfig-paths + version: 4.1.2 + engines: {node: '>=6'} + dependencies: + json5: registry.npmmirror.com/json5/2.2.3 + minimist: registry.npmmirror.com/minimist/1.2.8 + strip-bom: registry.npmmirror.com/strip-bom/3.0.0 + dev: true + + registry.npmmirror.com/tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + + registry.npmmirror.com/tslib/2.2.0: + resolution: {integrity: sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-2.2.0.tgz} + name: tslib + version: 2.2.0 + dev: false + + registry.npmmirror.com/tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz} + name: tslib + version: 2.5.0 + + registry.npmmirror.com/tsutils/3.21.0_typescript@4.9.5: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz} + id: registry.npmmirror.com/tsutils/3.21.0 + name: tsutils + version: 3.21.0 + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: registry.npmmirror.com/tslib/1.14.1 + typescript: registry.npmmirror.com/typescript/4.9.5 + dev: true + + registry.npmmirror.com/tunnel-agent/0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz} + name: tunnel-agent + version: 0.6.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer/5.2.1 + dev: false + + registry.npmmirror.com/tweetnacl/0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz} + name: tweetnacl + version: 0.14.5 + dev: false + + registry.npmmirror.com/type-check/0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-check/-/type-check-0.3.2.tgz} + name: type-check + version: 0.3.2 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls/1.1.2 + dev: false + + registry.npmmirror.com/type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz} + name: type-check + version: 0.4.0 + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: registry.npmmirror.com/prelude-ls/1.2.1 + dev: true + + registry.npmmirror.com/type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-detect/-/type-detect-4.0.8.tgz} + name: type-detect + version: 4.0.8 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz} + name: type-fest + version: 0.20.2 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-0.21.3.tgz} + name: type-fest + version: 0.21.3 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/type-fest/2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz} + name: type-fest + version: 2.19.0 + engines: {node: '>=12.20'} + dev: false + + registry.npmmirror.com/type-is/1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz} + name: type-is + version: 1.6.18 + engines: {node: '>= 0.6'} + dependencies: + media-typer: registry.npmmirror.com/media-typer/0.3.0 + mime-types: registry.npmmirror.com/mime-types/2.1.35 + + registry.npmmirror.com/typedarray/0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz} + name: typedarray + version: 0.0.6 + + registry.npmmirror.com/typeorm/0.3.12_4ypsa45gt7d65iggtgknlaajbi: + resolution: {integrity: sha512-sYSxBmCf1nJLLTcYtwqZ+lQIRtLPyUoO93rHTOKk9vJCyT4UfRtU7oRsJvfvKP3nnZTD1hzz2SEy2zwPEN6OyA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/typeorm/-/typeorm-0.3.12.tgz} + id: registry.npmmirror.com/typeorm/0.3.12 + name: typeorm + version: 0.3.12 + engines: {node: '>= 12.9.0'} + hasBin: true + peerDependencies: + '@google-cloud/spanner': ^5.18.0 + '@sap/hana-client': ^2.12.25 + better-sqlite3: ^7.1.2 || ^8.0.0 + hdb-pool: ^0.1.6 + ioredis: ^5.0.4 + mongodb: ^3.6.0 + mssql: ^7.3.0 + mysql2: ^2.2.5 || ^3.0.1 + oracledb: ^5.1.0 + pg: ^8.5.1 + pg-native: ^3.0.0 + pg-query-stream: ^4.0.0 + redis: ^3.1.1 || ^4.0.0 + sql.js: ^1.4.0 + sqlite3: ^5.0.3 + ts-node: ^10.7.0 + typeorm-aurora-data-api-driver: ^2.0.0 + peerDependenciesMeta: + '@google-cloud/spanner': + optional: true + '@sap/hana-client': + optional: true + better-sqlite3: + optional: true + hdb-pool: + optional: true + ioredis: + optional: true + mongodb: + optional: true + mssql: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-native: + optional: true + pg-query-stream: + optional: true + redis: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + ts-node: + optional: true + typeorm-aurora-data-api-driver: + optional: true + dependencies: + '@sqltools/formatter': registry.npmmirror.com/@sqltools/formatter/1.2.5 + app-root-path: registry.npmmirror.com/app-root-path/3.1.0 + buffer: registry.npmmirror.com/buffer/6.0.3 + chalk: registry.npmmirror.com/chalk/4.1.2 + cli-highlight: registry.npmmirror.com/cli-highlight/2.1.11 + date-fns: registry.npmmirror.com/date-fns/2.29.3 + debug: registry.npmmirror.com/debug/4.3.4 + dotenv: registry.npmmirror.com/dotenv/16.0.3 + glob: registry.npmmirror.com/glob/8.1.0 + js-yaml: registry.npmmirror.com/js-yaml/4.1.0 + mkdirp: registry.npmmirror.com/mkdirp/2.1.6 + mysql2: registry.npmmirror.com/mysql2/3.2.0 + redis: registry.npmmirror.com/redis/4.6.6 + reflect-metadata: registry.npmmirror.com/reflect-metadata/0.1.13 + sha.js: registry.npmmirror.com/sha.js/2.4.11 + ts-node: registry.npmmirror.com/ts-node/10.9.1_bdgp3l2zgaopogaavxusmetvge + tslib: registry.npmmirror.com/tslib/2.5.0 + uuid: registry.npmmirror.com/uuid/9.0.0 + xml2js: registry.npmmirror.com/xml2js/0.4.23 + yargs: registry.npmmirror.com/yargs/17.7.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/typescript/4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz} + name: typescript + version: 4.9.5 + engines: {node: '>=4.2.0'} + hasBin: true + + registry.npmmirror.com/uc.micro/1.0.6: + resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uc.micro/-/uc.micro-1.0.6.tgz} + name: uc.micro + version: 1.0.6 + dev: false + + registry.npmmirror.com/uglify-js/3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uglify-js/-/uglify-js-3.17.4.tgz} + name: uglify-js + version: 3.17.4 + engines: {node: '>=0.8.0'} + hasBin: true + dev: false + + registry.npmmirror.com/uid/2.0.1: + resolution: {integrity: sha512-PF+1AnZgycpAIEmNtjxGBVmKbZAQguaa4pBUq6KNaGEcpzZ2klCNZLM34tsjp76maN00TttiiUf6zkIBpJQm2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uid/-/uid-2.0.1.tgz} + name: uid + version: 2.0.1 + engines: {node: '>=8'} + dependencies: + '@lukeed/csprng': registry.npmmirror.com/@lukeed/csprng/1.0.1 + + registry.npmmirror.com/universalify/0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz} + name: universalify + version: 0.1.2 + engines: {node: '>= 4.0.0'} + dev: false + + registry.npmmirror.com/universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz} + name: universalify + version: 2.0.0 + engines: {node: '>= 10.0.0'} + dev: true + + registry.npmmirror.com/unpipe/1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz} + name: unpipe + version: 1.0.0 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.10 + name: update-browserslist-db + version: 1.0.10 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist/4.21.5 + escalade: registry.npmmirror.com/escalade/3.1.1 + picocolors: registry.npmmirror.com/picocolors/1.0.0 + dev: true + + registry.npmmirror.com/upper-case/1.1.3: + resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/upper-case/-/upper-case-1.1.3.tgz} + name: upper-case + version: 1.1.3 + dev: false + + registry.npmmirror.com/uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode/2.3.0 + + registry.npmmirror.com/utif2/4.0.1: + resolution: {integrity: sha512-KMaD76dbzK1VjbwsckHJiqDjhP3pbpwyV+FdqkY6XFQenc2o/HS6pjPSYdu4+NQMHf2NLTW+nVP/eFP1CvOYQQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/utif2/-/utif2-4.0.1.tgz} + name: utif2 + version: 4.0.1 + dependencies: + pako: registry.npmmirror.com/pako/1.0.11 + dev: false + + registry.npmmirror.com/util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + name: util-deprecate + version: 1.0.2 + + registry.npmmirror.com/utils-merge/1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz} + name: utils-merge + version: 1.0.1 + engines: {node: '>= 0.4.0'} + + registry.npmmirror.com/uuid/3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz} + name: uuid + version: 3.4.0 + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See http://v8.dev/blog/math-random for details. + hasBin: true + dev: false + + registry.npmmirror.com/uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} + name: uuid + version: 8.3.2 + hasBin: true + dev: false + + registry.npmmirror.com/uuid/9.0.0: + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/uuid/-/uuid-9.0.0.tgz} + name: uuid + version: 9.0.0 + hasBin: true + dev: false + + registry.npmmirror.com/v8-compile-cache-lib/3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz} + name: v8-compile-cache-lib + version: 3.0.1 + + registry.npmmirror.com/v8-to-istanbul/9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz} + name: v8-to-istanbul + version: 9.1.0 + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4 + convert-source-map: registry.npmmirror.com/convert-source-map/1.9.0 + dev: true + + registry.npmmirror.com/valid-data-url/3.0.1: + resolution: {integrity: sha512-jOWVmzVceKlVVdwjNSenT4PbGghU0SBIizAev8ofZVgivk/TVHXSbNL8LP6M3spZvkR9/QolkyJavGSX5Cs0UA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/valid-data-url/-/valid-data-url-3.0.1.tgz} + name: valid-data-url + version: 3.0.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + name: validate-npm-package-license + version: 3.0.4 + dependencies: + spdx-correct: registry.npmmirror.com/spdx-correct/3.2.0 + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse/3.0.1 + dev: false + + registry.npmmirror.com/validator/13.9.0: + resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/validator/-/validator-13.9.0.tgz} + name: validator + version: 13.9.0 + engines: {node: '>= 0.10'} + + registry.npmmirror.com/vary/1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} + name: vary + version: 1.1.2 + engines: {node: '>= 0.8'} + + registry.npmmirror.com/verror/1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/verror/-/verror-1.10.0.tgz} + name: verror + version: 1.10.0 + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: registry.npmmirror.com/assert-plus/1.0.0 + core-util-is: registry.npmmirror.com/core-util-is/1.0.2 + extsprintf: registry.npmmirror.com/extsprintf/1.3.0 + dev: false + + registry.npmmirror.com/vm2/3.9.17: + resolution: {integrity: sha512-AqwtCnZ/ERcX+AVj9vUsphY56YANXxRuqMb7GsDtAr0m0PcQX3u0Aj3KWiXM0YAHy7i6JEeHrwOnwXbGYgRpAw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/vm2/-/vm2-3.9.17.tgz} + name: vm2 + version: 3.9.17 + engines: {node: '>=6.0'} + hasBin: true + dependencies: + acorn: registry.npmmirror.com/acorn/8.8.2 + acorn-walk: registry.npmmirror.com/acorn-walk/8.2.0 + dev: false + + registry.npmmirror.com/void-elements/3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/void-elements/-/void-elements-3.1.0.tgz} + name: void-elements + version: 3.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/walk/2.3.15: + resolution: {integrity: sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/walk/-/walk-2.3.15.tgz} + name: walk + version: 2.3.15 + dependencies: + foreachasync: registry.npmmirror.com/foreachasync/3.0.0 + dev: false + + registry.npmmirror.com/walker/1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/walker/-/walker-1.0.8.tgz} + name: walker + version: 1.0.8 + dependencies: + makeerror: registry.npmmirror.com/makeerror/1.0.12 + dev: true + + registry.npmmirror.com/watchpack/2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz} + name: watchpack + version: 2.4.0 + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: registry.npmmirror.com/glob-to-regexp/0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + dev: true + + registry.npmmirror.com/wcwidth/1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wcwidth/-/wcwidth-1.0.1.tgz} + name: wcwidth + version: 1.0.1 + dependencies: + defaults: registry.npmmirror.com/defaults/1.0.4 + dev: true + + registry.npmmirror.com/web-resource-inliner/6.0.1: + resolution: {integrity: sha512-kfqDxt5dTB1JhqsCUQVFDj0rmY+4HLwGQIsLPbyrsN9y9WV/1oFDSx3BQ4GfCv9X+jVeQ7rouTqwK53rA/7t8A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz} + name: web-resource-inliner + version: 6.0.1 + engines: {node: '>=10.0.0'} + dependencies: + ansi-colors: registry.npmmirror.com/ansi-colors/4.1.3 + escape-goat: registry.npmmirror.com/escape-goat/3.0.0 + htmlparser2: registry.npmmirror.com/htmlparser2/5.0.1 + mime: registry.npmmirror.com/mime/2.6.0 + node-fetch: registry.npmmirror.com/node-fetch/2.6.9 + valid-data-url: registry.npmmirror.com/valid-data-url/3.0.1 + transitivePeerDependencies: + - encoding + dev: false + + registry.npmmirror.com/webidl-conversions/3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz} + name: webidl-conversions + version: 3.0.1 + + registry.npmmirror.com/webpack-node-externals/3.0.0: + resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz} + name: webpack-node-externals + version: 3.0.0 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/webpack-sources/3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} + name: webpack-sources + version: 3.2.3 + engines: {node: '>=10.13.0'} + dev: true + + registry.npmmirror.com/webpack/5.76.2: + resolution: {integrity: sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/webpack/-/webpack-5.76.2.tgz} + name: webpack + version: 5.76.2 + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': registry.npmmirror.com/@types/eslint-scope/3.7.4 + '@types/estree': registry.npmmirror.com/@types/estree/0.0.51 + '@webassemblyjs/ast': registry.nlark.com/@webassemblyjs/ast/1.11.1 + '@webassemblyjs/wasm-edit': registry.nlark.com/@webassemblyjs/wasm-edit/1.11.1 + '@webassemblyjs/wasm-parser': registry.nlark.com/@webassemblyjs/wasm-parser/1.11.1 + acorn: registry.npmmirror.com/acorn/8.8.2 + acorn-import-assertions: registry.npmmirror.com/acorn-import-assertions/1.8.0_acorn@8.8.2 + browserslist: registry.npmmirror.com/browserslist/4.21.5 + chrome-trace-event: registry.npmmirror.com/chrome-trace-event/1.0.3 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve/5.12.0 + es-module-lexer: registry.npmmirror.com/es-module-lexer/0.9.3 + eslint-scope: registry.npmmirror.com/eslint-scope/5.1.1 + events: registry.npmmirror.com/events/3.3.0 + glob-to-regexp: registry.npmmirror.com/glob-to-regexp/0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.11 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors/2.3.1 + loader-runner: registry.npmmirror.com/loader-runner/4.3.0 + mime-types: registry.npmmirror.com/mime-types/2.1.35 + neo-async: registry.npmmirror.com/neo-async/2.6.2 + schema-utils: registry.npmmirror.com/schema-utils/3.1.1 + tapable: registry.npmmirror.com/tapable/2.2.1 + terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin/5.3.7_webpack@5.76.2 + watchpack: registry.npmmirror.com/watchpack/2.4.0 + webpack-sources: registry.npmmirror.com/webpack-sources/3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + registry.npmmirror.com/whatwg-fetch/3.6.2: + resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz} + name: whatwg-fetch + version: 3.6.2 + dev: false + + registry.npmmirror.com/whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz} + name: whatwg-url + version: 5.0.0 + dependencies: + tr46: registry.npmmirror.com/tr46/0.0.3 + webidl-conversions: registry.npmmirror.com/webidl-conversions/3.0.1 + + registry.npmmirror.com/when-exit/2.1.0: + resolution: {integrity: sha512-H85ulNwUBU1e6PGxkWUDgxnbohSXD++ah6Xw1VHAN7CtypcbZaC4aYjQ+C2PMVaDkURDuOinNAT+Lnz3utWXxQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/when-exit/-/when-exit-2.1.0.tgz} + name: when-exit + version: 2.1.0 + dev: false + + registry.npmmirror.com/which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe/2.0.0 + dev: true + + registry.npmmirror.com/windows-release/4.0.0: + resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/windows-release/-/windows-release-4.0.0.tgz} + name: windows-release + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + execa: registry.npmmirror.com/execa/4.1.0 + dev: true + + registry.npmmirror.com/with/7.0.2: + resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/with/-/with-7.0.2.tgz} + name: with + version: 7.0.2 + engines: {node: '>= 10.0.0'} + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser/7.21.3 + '@babel/types': registry.npmmirror.com/@babel/types/7.21.3 + assert-never: registry.npmmirror.com/assert-never/1.2.1 + babel-walk: registry.npmmirror.com/babel-walk/3.0.0-canary-5 + dev: false + + registry.npmmirror.com/word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz} + name: word-wrap + version: 1.2.3 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/wordwrap/1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wordwrap/-/wordwrap-1.0.0.tgz} + name: wordwrap + version: 1.0.0 + dev: false + + registry.npmmirror.com/wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + name: wrap-ansi + version: 7.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 + string-width: registry.npmmirror.com/string-width/4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1 + + registry.npmmirror.com/wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + + registry.npmmirror.com/write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz} + name: write-file-atomic + version: 4.0.2 + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: registry.npmmirror.com/imurmurhash/0.1.4 + signal-exit: registry.npmmirror.com/signal-exit/3.0.7 + dev: true + + registry.npmmirror.com/xhr/2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz} + name: xhr + version: 2.6.0 + dependencies: + global: registry.npmmirror.com/global/4.4.0 + is-function: registry.npmmirror.com/is-function/1.0.2 + parse-headers: registry.npmmirror.com/parse-headers/2.0.5 + xtend: registry.npmmirror.com/xtend/4.0.2 + dev: false + + registry.npmmirror.com/xml-parse-from-string/1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz} + name: xml-parse-from-string + version: 1.0.1 + dev: false + + registry.npmmirror.com/xml2js/0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xml2js/-/xml2js-0.4.23.tgz} + name: xml2js + version: 0.4.23 + engines: {node: '>=4.0.0'} + dependencies: + sax: registry.npmmirror.com/sax/1.2.4 + xmlbuilder: registry.npmmirror.com/xmlbuilder/11.0.1 + dev: false + + registry.npmmirror.com/xmlbuilder/11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz} + name: xmlbuilder + version: 11.0.1 + engines: {node: '>=4.0'} + dev: false + + registry.npmmirror.com/xregexp/2.0.0: + resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xregexp/-/xregexp-2.0.0.tgz} + name: xregexp + version: 2.0.0 + dev: false + + registry.npmmirror.com/xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} + name: xtend + version: 4.0.2 + engines: {node: '>=0.4'} + + registry.npmmirror.com/y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} + name: y18n + version: 5.0.8 + engines: {node: '>=10'} + + registry.npmmirror.com/yallist/2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz} + name: yallist + version: 2.1.2 + dev: false + + registry.npmmirror.com/yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} + name: yallist + version: 3.1.1 + + registry.npmmirror.com/yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + + registry.npmmirror.com/yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} + name: yaml + version: 1.10.2 + engines: {node: '>= 6'} + dev: true + + registry.npmmirror.com/yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} + name: yargs-parser + version: 20.2.9 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/yargs-parser/21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz} + name: yargs-parser + version: 21.1.1 + engines: {node: '>=12'} + + registry.npmmirror.com/yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yargs/-/yargs-16.2.0.tgz} + name: yargs + version: 16.2.0 + engines: {node: '>=10'} + dependencies: + cliui: registry.npmmirror.com/cliui/7.0.4 + escalade: registry.npmmirror.com/escalade/3.1.1 + get-caller-file: registry.npmmirror.com/get-caller-file/2.0.5 + require-directory: registry.npmmirror.com/require-directory/2.1.1 + string-width: registry.npmmirror.com/string-width/4.2.3 + y18n: registry.npmmirror.com/y18n/5.0.8 + yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 + dev: false + + registry.npmmirror.com/yargs/17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yargs/-/yargs-17.7.1.tgz} + name: yargs + version: 17.7.1 + engines: {node: '>=12'} + dependencies: + cliui: registry.npmmirror.com/cliui/8.0.1 + escalade: registry.npmmirror.com/escalade/3.1.1 + get-caller-file: registry.npmmirror.com/get-caller-file/2.0.5 + require-directory: registry.npmmirror.com/require-directory/2.1.1 + string-width: registry.npmmirror.com/string-width/4.2.3 + y18n: registry.npmmirror.com/y18n/5.0.8 + yargs-parser: registry.npmmirror.com/yargs-parser/21.1.1 + + registry.npmmirror.com/yn/3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yn/-/yn-3.1.1.tgz} + name: yn + version: 3.1.1 + engines: {node: '>=6'} + + registry.npmmirror.com/yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} + name: yocto-queue + version: 0.1.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, registry: http://registry.npm.taobao.org/, tarball: http://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz} + name: yocto-queue + version: 1.0.0 + engines: {node: '>=12.20'} + dev: false diff --git a/service/public/favicon.ico b/service/public/favicon.ico new file mode 100644 index 0000000..2069ec7 Binary files /dev/null and b/service/public/favicon.ico differ diff --git a/service/public/index.html b/service/public/index.html new file mode 100644 index 0000000..ce5625e --- /dev/null +++ b/service/public/index.html @@ -0,0 +1,57 @@ + + + + + Yi Ai + + + + +
+
+
+ +

Welcome Use Yi Ai

+ + + + diff --git a/service/src/app.module.ts b/service/src/app.module.ts new file mode 100644 index 0000000..686bfb5 --- /dev/null +++ b/service/src/app.module.ts @@ -0,0 +1,86 @@ +import { Global, Module } from '@nestjs/common'; +import { ConfigModule } from 'nestjs-config'; +import { AbortInterceptor } from '@/common/interceptors/abort.interceptor'; +import { DatabaseModule } from './modules/database/database.module'; +import { resolve } from 'path'; +import { UserModule } from './modules/user/user.module'; +import { AuthModule } from './modules/auth/auth.module'; +import { MailerModule } from './modules/mailer/mailer.module'; +import { VerificationModule } from './modules/verification/verification.module'; +import { ChatgptModule } from './modules/chatgpt/chatgpt.module'; +import { CramiModule } from './modules/crami/crami.module'; +import { UserBalanceModule } from './modules/userBalance/userBalance.module'; +import { ChatLogModule } from './modules/chatLog/chatLog.module'; +import { UploadModule } from './modules/upload/upload.module'; +import { DrawModule } from './modules/draw/draw.module'; +import { RedisCacheModule } from './modules/redisCache/redisCache.module'; +import { GlobalConfigModule } from './modules/globalConfig/globalConfig.module'; +import { StatisticModule } from './modules/statistic/statistic.module'; +import { BadwordsModule } from './modules/badwords/badwords.module'; +import { AutoreplyModule } from './modules/autoreply/autoreply.module'; +import { AppModule as ApplicationModule } from './modules/app/app.module'; +// import { MjModule } from './modules/mj/mj.module'; +import { PayModule } from './modules/pay/pay.module'; +import { OrderModule } from './modules/order/order.module'; +import { FanyiModule } from './modules/fanyi/fanyi.module'; +import { OfficialModule } from './modules/official/official.module'; +import { TaskModule } from './modules/task/task.module'; +import { QueueModule } from './modules/queue/queue.module'; +import { MidjourneyModule } from './modules/midjourney/midjourney.module'; +import { ChatGroupModule } from './modules/chatGroup/chatGroup.module'; +import { ServeStaticModule } from '@nestjs/serve-static'; +import * as fetch from 'isomorphic-fetch'; +import { join } from 'path'; +global.fetch = fetch; +import { APP_INTERCEPTOR } from '@nestjs/core'; +import { SalesModule } from './modules/sales/sales.module'; +import { SigninModule } from './modules/signin/signin.module'; +import { MenuModule } from './modules/menu/menu.module'; +import { ModelsModule } from './modules/models/models.module'; + +@Global() +@Module({ + imports: [ + ServeStaticModule.forRoot({ + rootPath: join(__dirname, '..', 'public'), + }), + ConfigModule.load(resolve(__dirname, 'config', '**/!(*.d).{ts,js}')), + DatabaseModule, + UserModule, + AuthModule, + MailerModule, + VerificationModule, + ChatgptModule, + CramiModule, + UserBalanceModule, + ChatLogModule, + UploadModule, + DrawModule, + RedisCacheModule, + GlobalConfigModule, + StatisticModule, + BadwordsModule, + AutoreplyModule, + ApplicationModule, + // MjModule, + PayModule, + OrderModule, + FanyiModule, + OfficialModule, + TaskModule, + QueueModule, + MidjourneyModule, + ChatGroupModule, + SalesModule, + SigninModule, + MenuModule, + ModelsModule, + ], + providers: [ + { + provide: APP_INTERCEPTOR, + useClass: AbortInterceptor, + }, + ], +}) +export class AppModule {} diff --git a/service/src/common/auth/adminAuth.guard.ts b/service/src/common/auth/adminAuth.guard.ts new file mode 100644 index 0000000..6361bc9 --- /dev/null +++ b/service/src/common/auth/adminAuth.guard.ts @@ -0,0 +1,19 @@ +import { Injectable, ExecutionContext, UnauthorizedException } from '@nestjs/common'; +import { JwtAuthGuard } from './jwtAuth.guard'; + +@Injectable() +export class AdminAuthGuard extends JwtAuthGuard { + async canActivate(context: ExecutionContext): Promise { + const isAuthorized = await super.canActivate(context); + if (!isAuthorized) { + return false; + } + const request = context.switchToHttp().getRequest(); + const user = request.user; + if (user && ['admin', 'super'].includes(user.role)) { + return true; + } else { + throw new UnauthorizedException('非法操作、您的权限等级不足、无法执行当前请求!'); + } + } +} diff --git a/service/src/common/auth/jwt.strategy.ts b/service/src/common/auth/jwt.strategy.ts new file mode 100644 index 0000000..35f0043 --- /dev/null +++ b/service/src/common/auth/jwt.strategy.ts @@ -0,0 +1,20 @@ +import { ConfigService } from 'nestjs-config'; +import { AuthService } from '../../modules/auth/auth.service'; +import { ExtractJwt, Strategy } from 'passport-jwt'; +import { PassportStrategy } from '@nestjs/passport'; +import { Injectable, UnauthorizedException } from '@nestjs/common'; + +@Injectable() +export class JwtStrategy extends PassportStrategy(Strategy) { + constructor(private readonly configService: ConfigService) { + super({ + jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), + secretOrKey: configService.get('jwt').secret, + }); + } + + /* fromat decode token return */ + async validate(payload): Promise { + return payload; + } +} diff --git a/service/src/common/auth/jwtAuth.guard.ts b/service/src/common/auth/jwtAuth.guard.ts new file mode 100644 index 0000000..a5aa04c --- /dev/null +++ b/service/src/common/auth/jwtAuth.guard.ts @@ -0,0 +1,70 @@ +import { RedisCacheService } from '@/modules/redisCache/redisCache.service'; +import { HttpException, HttpStatus, Injectable, UnauthorizedException } from '@nestjs/common'; +import { AuthGuard } from '@nestjs/passport'; +import * as jwt from 'jsonwebtoken'; +import { ModuleRef } from '@nestjs/core'; +import { GlobalConfigService } from '@/modules/globalConfig/globalConfig.service'; +import { atob, copyRightMsg, getRandomItemFromArray } from '../utils'; +import { AuthService } from '../../modules/auth/auth.service'; +@Injectable() +export class JwtAuthGuard extends AuthGuard('jwt') { + constructor( + private redisCacheService: RedisCacheService, + private readonly moduleRef: ModuleRef, + private readonly globalConfigService: GlobalConfigService, + private readonly authService: AuthService, + ) { + super(); + } + + async canActivate(context) { + if (!this.redisCacheService) { + this.redisCacheService = this.moduleRef.get(RedisCacheService, { strict: false }); + } + const request = context.switchToHttp().getRequest(); + // TODO 域名检测 + const domain = request.headers['x-website-domain']; + const token = this.extractToken(request); + request.user = this.validateToken(token); + const auth = this.globalConfigService.getNineAiToken(); + await this.redisCacheService.checkTokenAuth(token, request); + return true; + } + + private extractToken(request) { + if (!request.headers.authorization) { + if (request.headers.fingerprint) { + let id = request.headers.fingerprint; + /* 超过mysql最大值进行截取 */ + if (id > 2147483647) { + id = id.toString().slice(-9); + id = Number(String(Number(id))); + } + const token = this.authService.createTokenFromFingerprint(id); + return token; + } + return null; + } + const parts = request.headers.authorization.split(' '); + if (parts.length !== 2 || parts[0] !== 'Bearer') { + return null; + } + return parts[1]; + } + + private validateToken(token) { + try { + return jwt.verify(token, process.env.JWT_SECRET); + } catch (error) { + throw new HttpException('亲爱的用户,请登录后继续操作,我们正在等您的到来!', HttpStatus.UNAUTHORIZED); + } + } + + handleRequest(err, user, info) { + if (err || !user) { + console.log('err: ', err); + throw err || new UnauthorizedException(); + } + return user; + } +} diff --git a/service/src/common/auth/superAuth.guard.ts b/service/src/common/auth/superAuth.guard.ts new file mode 100644 index 0000000..dfc857b --- /dev/null +++ b/service/src/common/auth/superAuth.guard.ts @@ -0,0 +1,19 @@ +import { Injectable, ExecutionContext, UnauthorizedException } from '@nestjs/common'; +import { JwtAuthGuard } from './jwtAuth.guard'; + +@Injectable() +export class SuperAuthGuard extends JwtAuthGuard { + async canActivate(context: ExecutionContext): Promise { + const isAuthorized = await super.canActivate(context); + if (!isAuthorized) { + return false; + } + const request = context.switchToHttp().getRequest(); + const user = request.user; + if (user && user.role === 'super') { + return true; + } else { + throw new UnauthorizedException('非法操作、非超级管理员无权操作!'); + } + } +} diff --git a/service/src/common/constants/balance.constant.ts b/service/src/common/constants/balance.constant.ts new file mode 100644 index 0000000..ffab8ae --- /dev/null +++ b/service/src/common/constants/balance.constant.ts @@ -0,0 +1,32 @@ +export const DeductionType = { + BALANCE: 'BALANCE_TYPE', + CHAT: 'CHAT_TYPE', + PAINT: 'PAINT_TYPE', +}; + +/** + * @description: 扣费类型 + * @param {type} + * 1: 模型3 模型4 MJ TODO 新版更新已经修改了 TYPE 这里暂不处理 + */ +export const DeductionKey = { + BALANCE_TYPE: 'balance', + CHAT_TYPE: 'usesLeft', + PAINT_TYPE: 'paintCount', +}; + +/** + * @description: 账户充值类型 + * @param {type} + * 1: 注册赠送 2: 受邀请赠送 3: 邀请人赠送 4: 购买套餐赠送 5: 管理员赠送 6:扫码支付 7: 绘画失败退款 8: 签到奖励 + */ +export const RechargeType = { + REG_GIFT: 1, + INVITE_GIFT: 2, + REFER_GIFT: 3, + PACKAGE_GIFT: 4, + ADMIN_GIFT: 5, + SCAN_PAY: 6, + DRAW_FAIL_REFUND: 7, + SIGN_IN: 8, +}; diff --git a/service/src/common/constants/errorMessage.constant.ts b/service/src/common/constants/errorMessage.constant.ts new file mode 100644 index 0000000..9b912b0 --- /dev/null +++ b/service/src/common/constants/errorMessage.constant.ts @@ -0,0 +1,21 @@ +export enum ErrorMessageEnum { + USERNAME_OR_EMAIL_ALREADY_REGISTERED = '用户名或邮箱已注册!', + USER_NOT_FOUND = '用户不存在!', + VERIFICATION_NOT_FOUND = '验证记录不存在!', + VERIFICATION_CODE_EXPIRED = '验证码已过期!', + VERIFICATION_CODE_INVALID = '验证码无效!', + VERIFICATION_CODE_MISMATCH = '验证码不匹配!', + VERIFICATION_CODE_SEND_FAILED = '验证码发送失败!', + VERIFICATION_CODE_SEND_TOO_OFTEN = '验证码发送过于频繁!', +} + +export const OpenAiErrorCodeMessage: Record = { + 400: '[Inter Error] 服务端错误[400]', + 401: '[Inter Error] 服务出现错误、请稍后再试一次吧[401]', + 403: '[Inter Error] 服务器拒绝访问,请稍后再试 | Server refused to access, please try again later', + 429: '[Inter Error] 当前key调用频率过高、请重新对话再试一次吧[429]', + 502: '[Inter Error] 错误的网关 | Bad Gateway[502]', + 503: '[Inter Error] 服务器繁忙,请稍后再试 | Server is busy, please try again later[503]', + 504: '[Inter Error] 网关超时 | Gateway Time-out[504]', + 500: '[Inter Error] 服务器繁忙,请稍后再试 | Internal Server Error[500]', +}; diff --git a/service/src/common/constants/midjourney.constant.ts b/service/src/common/constants/midjourney.constant.ts new file mode 100644 index 0000000..a47b332 --- /dev/null +++ b/service/src/common/constants/midjourney.constant.ts @@ -0,0 +1,23 @@ +/** + * 任务状态枚举 1: 等待中 2: 绘制中 3: 绘制完成 4: 绘制失败 5: 绘制超时 + */ +export enum MidjourneyStatusEnum { + WAITING = 1, + DRAWING = 2, + DRAWED = 3, + DRAWFAIL = 4, + DRAWTIMEOUT = 5, +} + +/** + * 绘画动作枚举 1: 绘画 2: 放大 3: 变换 4: 图生图 5: 重新生成 6: 无线缩放 7: 单张变化【很大|微小】 + */ +export enum MidjourneyActionEnum { + DRAW = 1, + UPSCALE = 2, + VARIATION = 3, + GENERATE = 4, + REGENERATE = 5, + ZOOM = 6, + VARY = 7, +} diff --git a/service/src/common/constants/status.constant.ts b/service/src/common/constants/status.constant.ts new file mode 100644 index 0000000..22a2c68 --- /dev/null +++ b/service/src/common/constants/status.constant.ts @@ -0,0 +1,10 @@ +export enum VerificationUseStatusEnum { + UNUSED, + USED, +} + +export const ModelsMapCn = { + 1: 'Ai大模型', + 2: '百度千帆大模型', + 3: '清华智谱大模型' +} \ No newline at end of file diff --git a/service/src/common/constants/user.constant.ts b/service/src/common/constants/user.constant.ts new file mode 100644 index 0000000..f5c545f --- /dev/null +++ b/service/src/common/constants/user.constant.ts @@ -0,0 +1,19 @@ +/** + * PENDING: 审核中 + * ACTIVE: 正常状态 + * LOCKED: 账号锁定 + * BLACKLISTED: 黑名单账号 + */ +export enum UserStatusEnum { + PENDING, + ACTIVE, + LOCKED, + BLACKLISTED, +} + +export const UserStatusErrMsg = { + [UserStatusEnum.PENDING]: '当前账户未激活,请前往邮箱验证或重新发送验证码!', + [UserStatusEnum.ACTIVE]: '当前账户已激活!', + [UserStatusEnum.LOCKED]: '当前账户已锁定,请联系管理员解锁!', + [UserStatusEnum.BLACKLISTED]: '当前账户已被永久封禁!', +}; diff --git a/service/src/common/constants/verification.constant.ts b/service/src/common/constants/verification.constant.ts new file mode 100644 index 0000000..345e1b5 --- /dev/null +++ b/service/src/common/constants/verification.constant.ts @@ -0,0 +1,10 @@ +/** + * Registration: 注册账户 + * PasswordReset: 重置密码 + * ChangeEmail: 换绑邮箱 + */ +export enum VerificationEnum { + Registration, + PasswordReset, + ChangeEmail, +} diff --git a/service/src/common/entity/baseEntity.ts b/service/src/common/entity/baseEntity.ts new file mode 100644 index 0000000..8ac7649 --- /dev/null +++ b/service/src/common/entity/baseEntity.ts @@ -0,0 +1,16 @@ +import { Entity, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from 'typeorm'; + +@Entity() +export class BaseEntity { + @PrimaryGeneratedColumn() + id: number; + + @CreateDateColumn({ type: 'datetime', length: 0, nullable: false, name: 'createdAt', comment: '创建时间' }) + createdAt: Date; + + @UpdateDateColumn({ type: 'datetime', length: 0, nullable: false, name: 'updatedAt', comment: '更新时间' }) + updatedAt: Date; + + @DeleteDateColumn({ type: 'datetime', length: 0, nullable: false, name: 'deletedAt', comment: '删除时间' }) + deletedAt: Date; +} diff --git a/service/src/common/filters/allExceptions.filter.ts b/service/src/common/filters/allExceptions.filter.ts new file mode 100644 index 0000000..08139b4 --- /dev/null +++ b/service/src/common/filters/allExceptions.filter.ts @@ -0,0 +1,19 @@ +import { ArgumentsHost, Catch, ExceptionFilter, HttpException, HttpStatus, Logger } from '@nestjs/common'; +import { formatDate } from '@/common/utils/date'; +import { Result } from '@/common/result'; + +@Catch() +export class AllExceptionsFilter implements ExceptionFilter { + catch(exception: HttpException, host: ArgumentsHost) { + const ctx = host.switchToHttp(); + const response = ctx.getResponse(); + const request = ctx.getRequest(); + const exceptionRes: any = exception.getResponse() || 'inter server error'; + const message = exceptionRes?.message ? (Array.isArray(exceptionRes) ? exceptionRes['message'][0] : exceptionRes['message']) : exceptionRes; + const statusCode = exception.getStatus() || 400; + const status = exception instanceof HttpException ? exception.getStatus() : HttpStatus.INTERNAL_SERVER_ERROR; + response.status(status); + response.header('Content-Type', 'application/json; charset=utf-8'); + response.send(Result.fail(statusCode, Array.isArray(message) ? message[0] : message)); + } +} diff --git a/service/src/common/filters/typeOrmQueryFailed.filter.ts b/service/src/common/filters/typeOrmQueryFailed.filter.ts new file mode 100644 index 0000000..8eb9799 --- /dev/null +++ b/service/src/common/filters/typeOrmQueryFailed.filter.ts @@ -0,0 +1,23 @@ +import { Catch, ArgumentsHost, ExceptionFilter, BadRequestException } from '@nestjs/common'; +import { QueryFailedError } from 'typeorm'; + +@Catch(QueryFailedError) +export class TypeOrmQueryFailedFilter implements ExceptionFilter { + catch(exception: QueryFailedError, host: ArgumentsHost) { + const ctx = host.switchToHttp(); + const response = ctx.getResponse(); + const request = ctx.getRequest(); + if ((exception as any).code === 'ER_DUP_ENTRY') { + throw new BadRequestException('该记录已经存在,请勿重复添加!'); + } else { + console.log('other query error'); + } + + response.status(500).json({ + statusCode: 500, + timestamp: new Date().toISOString(), + path: request.url, + message: `Database query failed: ${exception.message}`, + }); + } +} diff --git a/service/src/common/guards/roles/roles.guard.ts b/service/src/common/guards/roles/roles.guard.ts new file mode 100644 index 0000000..2b75d1b --- /dev/null +++ b/service/src/common/guards/roles/roles.guard.ts @@ -0,0 +1,9 @@ +import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common'; +import { Observable } from 'rxjs'; + +@Injectable() +export class RolesGuard implements CanActivate { + canActivate(context: ExecutionContext): boolean | Promise | Observable { + return true; + } +} diff --git a/service/src/common/interceptors/abort.interceptor.ts b/service/src/common/interceptors/abort.interceptor.ts new file mode 100644 index 0000000..b32be9e --- /dev/null +++ b/service/src/common/interceptors/abort.interceptor.ts @@ -0,0 +1,13 @@ +import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common'; +import { Request } from 'express'; +import { AbortController } from 'abort-controller'; +import { Observable } from 'rxjs'; +@Injectable() +export class AbortInterceptor implements NestInterceptor { + intercept(context: ExecutionContext, next: CallHandler): Observable { + const request = context.switchToHttp().getRequest(); + const abortController = new AbortController(); + request.abortController = abortController; + return next.handle(); + } +} diff --git a/service/src/common/interceptors/transform.interceptor.ts b/service/src/common/interceptors/transform.interceptor.ts new file mode 100644 index 0000000..0ead1db --- /dev/null +++ b/service/src/common/interceptors/transform.interceptor.ts @@ -0,0 +1,28 @@ +import { CallHandler, ExecutionContext, Injectable, NestInterceptor, HttpException, HttpCode, HttpStatus, Logger } from '@nestjs/common'; +import { Observable, catchError, throwError } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { Result } from '@/common/result'; + +@Injectable() +export class TransformInterceptor implements NestInterceptor { + intercept(context: ExecutionContext, next: CallHandler): any { + return next.handle().pipe( + map((data) => { + const response = context.switchToHttp().getResponse(); + const request = context.switchToHttp().getRequest(); + response.statusCode = 200; + /* 微信类支付类通知接口需要原样输出 */ + if (request.path.includes('notify')) { + return data; + } + const message = response.status < 400 ? null : response.statusText; + return Result.success(data, message); + }), + catchError((error) => { + const statusCode = error.status || 500; + const message = (error.response || 'Internal server error') as string; + return throwError(new HttpException(message, statusCode)); + }), + ); + } +} diff --git a/service/src/common/middleware/xml.middleware.ts b/service/src/common/middleware/xml.middleware.ts new file mode 100644 index 0000000..c081863 --- /dev/null +++ b/service/src/common/middleware/xml.middleware.ts @@ -0,0 +1,13 @@ +import { Injectable, NestMiddleware } from '@nestjs/common'; +import * as bodyParser from 'body-parser'; + +const bodyParserMiddleware = bodyParser.text({ + type: 'application/xml', +}); + +@Injectable() +export class XMLMiddleware implements NestMiddleware { + use(req: any, res: any, next: () => void) { + bodyParserMiddleware(req, res, next); + } +} diff --git a/service/src/common/result/index.ts b/service/src/common/result/index.ts new file mode 100644 index 0000000..7ec0378 --- /dev/null +++ b/service/src/common/result/index.ts @@ -0,0 +1,21 @@ +export class Result { + code: number; + data?: T; + success: boolean; + message?: string; + + constructor(code: number, success: boolean, data?: T, message?: string) { + this.code = code; + this.data = data; + this.success = success; + this.message = message; + } + + static success(data?: T, message = '请求成功'): Result { + return new Result(200, true, data, message); + } + + static fail(code: number, message = '请求失败', data?: T): Result { + return new Result(code, false, data, message); + } +} diff --git a/service/src/common/swagger/index.ts b/service/src/common/swagger/index.ts new file mode 100644 index 0000000..1d4c9df --- /dev/null +++ b/service/src/common/swagger/index.ts @@ -0,0 +1,14 @@ +import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; +import { PORT, SWAGGERPREFIX, APIPREFIX } from '@/config/main'; + +const swaggerOptions = new DocumentBuilder() + .setTitle('Nine Team api document') + .setDescription('Nine Team api document') + .setVersion('1.0.0') + .addBearerAuth() + .build(); + +export function createSwagger(app) { + const document = SwaggerModule.createDocument(app, swaggerOptions); + SwaggerModule.setup('/nineai/swagger/docs', app, document); +} diff --git a/service/src/common/utils/base.ts b/service/src/common/utils/base.ts new file mode 100644 index 0000000..d6b24d1 --- /dev/null +++ b/service/src/common/utils/base.ts @@ -0,0 +1,24 @@ +import { Logger } from '@nestjs/common'; +import * as crypto from 'crypto'; + +const encryptionKey = 'bf3c116f2470cb4che9071240917c171'; +const initializationVector = '518363fh72eec1v4'; +const algorithm = 'aes-256-cbc'; + +export function encrypt(text: string): string { + const cipher = crypto.createCipheriv(algorithm, encryptionKey, initializationVector); + let encrypted = cipher.update(text, 'utf8', 'base64'); + encrypted += cipher.final('base64'); + return encrypted; +} + +export function decrypt(text: string): string { + try { + const decipher = crypto.createDecipheriv(algorithm, encryptionKey, initializationVector); + let decrypted = decipher.update(text, 'base64', 'utf8'); + decrypted += decipher.final('utf8'); + return decrypted; + } catch (error) { + process.exit(1); + } +} diff --git a/service/src/common/utils/compileNetwork.ts b/service/src/common/utils/compileNetwork.ts new file mode 100644 index 0000000..cda74fb --- /dev/null +++ b/service/src/common/utils/compileNetwork.ts @@ -0,0 +1,27 @@ +import axios from 'axios'; + +function formatSearchData(searchData, question) { + const formatStr = searchData.map(({ title, body, href }) => `'${title}' : ${body} ;`).join('\n\n'); + // const formatStr = searchData.map(({ title, body, href }) => `'${title}' : ${body} ; (${href})`).join('\n\n'); + const instructions = + 'Instructions: Reply to me in the language of my request or question above. Give a comprehensive answer to the question or request I have made above. Below are some results from a web search. Use the following results to summarize the answers \n\n'; + return `${question}\n\n${instructions}\n${formatStr}`; +} + +export async function compileNetwork(question: string, limit = 7) { + console.log('看看参数:', question); + let searchData = []; + try { + const responseData = await axios.get(`http://103.143.248.169:3000/search?q=${question}&max_results=${limit}`); + searchData = responseData.data; + } catch (error) { + console.log('error: ', error); + searchData = []; + } + console.log('看看是啥', searchData); + if (searchData.length === 0) { + return question; + } else { + return formatSearchData(searchData, question); + } +} diff --git a/service/src/common/utils/createOrderId.ts b/service/src/common/utils/createOrderId.ts new file mode 100644 index 0000000..a2ecef4 --- /dev/null +++ b/service/src/common/utils/createOrderId.ts @@ -0,0 +1,5 @@ +import { v1 as uuidv1 } from 'uuid'; + +export function createOrderId(): string { + return uuidv1().toString().replace(/-/g, ''); +} diff --git a/service/src/common/utils/createRandomCode.ts b/service/src/common/utils/createRandomCode.ts new file mode 100644 index 0000000..78bff49 --- /dev/null +++ b/service/src/common/utils/createRandomCode.ts @@ -0,0 +1,5 @@ +export function createRandomCode(): number { + const min = 100000; + const max = 999999; + return Math.floor(Math.random() * (max - min + 1) + min); +} diff --git a/service/src/common/utils/createRandomInviteCode.ts b/service/src/common/utils/createRandomInviteCode.ts new file mode 100644 index 0000000..7d13907 --- /dev/null +++ b/service/src/common/utils/createRandomInviteCode.ts @@ -0,0 +1,12 @@ +export function generateRandomString(): string { + const length = 10; + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + + let result = ''; + for (let i = 0; i < length; i++) { + const randomIndex: number = Math.floor(Math.random() * characters.length); + result += characters.charAt(randomIndex); + } + + return result; +} diff --git a/service/src/common/utils/createRandomNonceStr.ts b/service/src/common/utils/createRandomNonceStr.ts new file mode 100644 index 0000000..b998d41 --- /dev/null +++ b/service/src/common/utils/createRandomNonceStr.ts @@ -0,0 +1,8 @@ +export function createRandomNonceStr(len: number): string { + const data = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + let str = ''; + for (let i = 0; i < len; i++) { + str += data.charAt(parseInt((Math.random() * data.length).toFixed(0), 10)); + } + return str; +} diff --git a/service/src/common/utils/createRandomUid.ts b/service/src/common/utils/createRandomUid.ts new file mode 100644 index 0000000..a68aad9 --- /dev/null +++ b/service/src/common/utils/createRandomUid.ts @@ -0,0 +1,6 @@ +import { Guid } from 'guid-typescript'; + +export function createRandomUid(): string { + const uuid = Guid.create(); + return uuid.toString().substr(0, 10).replace('-', ''); +} diff --git a/service/src/common/utils/date.ts b/service/src/common/utils/date.ts new file mode 100644 index 0000000..7843330 --- /dev/null +++ b/service/src/common/utils/date.ts @@ -0,0 +1,41 @@ +import * as dayjs from 'dayjs'; +import 'dayjs/locale/zh-cn'; +import * as a from 'dayjs/plugin/utc'; +import * as b from 'dayjs/plugin/timezone'; + +dayjs.locale('zh-cn'); +dayjs.extend(a); +dayjs.extend(b); +dayjs.tz.setDefault('Asia/Shanghai'); + +export function formatDate(date: string | number | Date, format = 'YYYY-MM-DD HH:mm:ss'): string { + return dayjs(date).format(format); +} + +export function formatCreateOrUpdateDate(input, format = 'YYYY-MM-DD HH:mm:ss'): any[] { + if (Array.isArray(input)) { + return input.map((t: any) => { + t.createdAt = t?.createdAt ? dayjs(t.createdAt).format(format) : dayjs().format(format); + t.updatedAt = t?.updatedAt ? dayjs(t.updatedAt).format(format) : dayjs().format(format); + return t; + }); + } else { + let obj: any = {} + try { + obj = JSON.parse(JSON.stringify(input)); + } catch (error) { + + } + obj?.createdAt && (obj.createdAt = dayjs(obj.createdAt).format(format)); + obj?.updatedAt && (obj.updatedAt = dayjs(obj.updatedAt).format(format)); + return obj; + } +} + +export function isExpired(createdAt: Date, days: number): boolean { + const expireDate = new Date(createdAt.getTime() + days * 24 * 60 * 60 * 1000); + const now = new Date(); + return now > expireDate; +} + +export default dayjs; diff --git a/service/src/common/utils/encrypt.ts b/service/src/common/utils/encrypt.ts new file mode 100644 index 0000000..52efd81 --- /dev/null +++ b/service/src/common/utils/encrypt.ts @@ -0,0 +1,12 @@ +export function atob(str) { + return Buffer.from(str, 'base64').toString('utf-8'); +} + + +export const copyRightMsg = [ + 'agxoTstMY8m+DJO89Iwy4zqcFTqlcj/Fa/erMTvn0IexetXaDttr4K/BN2+RbtfouXOeFjPDYnxOfQ+IIpuJ3PmtyHAzmlGFls/HvBDeh6EXAQ3waALbvK9Ue96soAb5/3Tv6VuZE7npISqXiYhI6Vqx4yDVYf6vUUkEO9jvVotWQkLOLkr6M/guLK6sik/ZOgHvSlDYKAv79NFJJ0Tt0WkH2SyN8l+woMiWVTOKkdE=', + 'nXdXi8UU7J5av2eDOFjxQWlZDa+3bdASE4UwpqT6B11XSCweKKuzHxmFO2wx45iVlib/V0tt+NbEcOQZtzEWKqHsREkwEb5aqVCUl2Kj4nJeEFId2iyvY6MWEV1lHtCY+htpJoyqwQJc7yeNfpTl2SLBubWk77p4AHei1QFEs1rpOOwyE79lF0RqzY/Cpzhs', + 'VjVCGib1VFp7hNynpKGQPUrX+ishpxi2u5a4txHXzk2nyUP1NZfIomEDmGhDTQ7VRJLox+8urtVG1CBBSct1v+4OA2ucAcDUFoy1H1Kl1z+dndVcNU6gz5YGnDppsxY8uGFAVGsWrDl2DIOKxk7kMURaRiQCXCHRF/3sLGyIEmE6KL9Q4kDInB6vuzBScxupFShMXTq2XrOhwRgn2elcig==', + 'ZPcz1IaPDMGI3Yn9sm4QOT0qCZo7yZbJl4/c2RTrhUKINkjGB5yb0yN5vAnLtt/o8cmpoOoH3PUSOOWQa9aKD86NWK+1r8wBOVjwXZOpp2gbB1ZJLbWvjRbENvEJxVsLROXnpNDqUXVGxFMaIt+gmEi3Rp0thqC1soXUpvM1zqU4+LkQmunR7UytvzwXEmXBlIfPwz5hv+n/lxDsw526KWixC3jLLpeijw5433Zh7cI=', + 'YPo1HNzS6p6190ku4f1PQENUBa/ip+v+6sPuQXVyAn3axo6SLKQBszNr3PAW2EzWhZLy2o+nBgr3o3IOy9OgNit1JHrCklpVp172wbGDKh8sB8HCXyJoRv3BaZVY5UhyhpV5K+4nPoM2RUwvIGONUGFPQfPQv9N8MS8UCL7UnWYcVLzxWo0ZDg+UXFRr7NhXKu7KQ7e1+Wiqm0qE+olfDVowi4pGDRGrYL154wEEJUo=' +] \ No newline at end of file diff --git a/service/src/common/utils/generateCrami.ts b/service/src/common/utils/generateCrami.ts new file mode 100644 index 0000000..ee9cab8 --- /dev/null +++ b/service/src/common/utils/generateCrami.ts @@ -0,0 +1,6 @@ +import { v4 as uuidv4 } from 'uuid'; + +export function generateCramiCode(): string { + const code = uuidv4().replace(/-/g, '').slice(0, 16); + return code; +} diff --git a/service/src/common/utils/getClientIp.ts b/service/src/common/utils/getClientIp.ts new file mode 100644 index 0000000..45a28c7 --- /dev/null +++ b/service/src/common/utils/getClientIp.ts @@ -0,0 +1,51 @@ +import { Request } from 'express'; + +export function getClientIp(request: Request): string { + let ipAddress = ''; + + // 预定义的一组请求头列表,按优先级排序 + const headerList = [ + 'X-Client-IP', + 'X-Real-IP', + 'X-Forwarded-For', + 'CF-Connecting-IP', + 'True-Client-IP', + 'X-Cluster-Client-IP', + 'Proxy-Client-IP', + 'WL-Proxy-Client-IP', + 'HTTP_CLIENT_IP', + 'HTTP_X_FORWARDED_FOR', + ]; + + // 尝试从预定义的请求头列表中提取客户端的真实 IP 地址 + for (const header of headerList) { + const value = request.headers[header]; + if (value && typeof value === 'string') { + const ips = value.split(','); + // 取最左侧的 IP 地址作为客户端的真实 IP 地址 + ipAddress = ips[0].trim(); + break; + } + } + + // 如果无法从请求头中获取到客户端的真实 IP 地址,则回退到使用 connection.remoteAddress 属性 + if (!ipAddress) { + ipAddress = request.connection.remoteAddress || ''; + } + + // 对获取到的 IP 地址进行格式化和过滤操作 + if (ipAddress && ipAddress.includes('::')) { + const isLocal = /^(::1|fe80(:1)?::1(%.*)?)$/i.test(ipAddress); + if (isLocal) { + ipAddress = ''; + } else if (ipAddress.includes('::ffff:')) { + ipAddress = ipAddress.split(':').pop() || ''; + } + } + + // 如果获取到的 IP 地址不符合格式要求,则设置为空字符串 + if (!ipAddress || !/\d+\.\d+\.\d+\.\d+/.test(ipAddress)) { + ipAddress = ''; + } + return ipAddress; +} diff --git a/service/src/common/utils/getDiffArray.ts b/service/src/common/utils/getDiffArray.ts new file mode 100644 index 0000000..efc29ff --- /dev/null +++ b/service/src/common/utils/getDiffArray.ts @@ -0,0 +1,14 @@ +export function getDiffArray(aLength: number, bLength: number, str: string): string[] { + const a = Array.from({ length: aLength }, (_, i) => i + 1); + const b = Array.from({ length: bLength }, (_, i) => i + 1); + + const diffArray: string[] = []; + + for (let i = 0; i < a.length; i++) { + if (!b.includes(a[i])) { + diffArray.push(`${str}${a[i]}`); + } + } + + return diffArray; +} diff --git a/service/src/common/utils/getRandomItem.ts b/service/src/common/utils/getRandomItem.ts new file mode 100644 index 0000000..c76429f --- /dev/null +++ b/service/src/common/utils/getRandomItem.ts @@ -0,0 +1,4 @@ +export function getRandomItem(array: T[]): T { + const randomIndex = Math.floor(Math.random() * array.length); + return array[randomIndex]; +} diff --git a/service/src/common/utils/getRandomItemFromArray.ts b/service/src/common/utils/getRandomItemFromArray.ts new file mode 100644 index 0000000..ba4274e --- /dev/null +++ b/service/src/common/utils/getRandomItemFromArray.ts @@ -0,0 +1,7 @@ +export function getRandomItemFromArray(array: T[]): T | null { + if (array.length === 0) { + return null; + } + const randomIndex = Math.floor(Math.random() * array.length); + return array[randomIndex]; +} diff --git a/service/src/common/utils/hideString.ts b/service/src/common/utils/hideString.ts new file mode 100644 index 0000000..5b8db30 --- /dev/null +++ b/service/src/common/utils/hideString.ts @@ -0,0 +1,10 @@ +export function hideString(input: string, str?: string): string { + const length = input.length; + const start = input.slice(0, (length - 10) / 2); + const end = input.slice((length + 10) / 2, length); + const hidden = '*'.repeat(10); + if (str) { + return `**********${str}**********`; + } + return `${start}${hidden}${end}`; +} diff --git a/service/src/common/utils/index.ts b/service/src/common/utils/index.ts new file mode 100644 index 0000000..0d95924 --- /dev/null +++ b/service/src/common/utils/index.ts @@ -0,0 +1,22 @@ +export * from './date'; +export * from './createRandomCode'; +export * from './tools'; +export * from './createRandomInviteCode'; +export * from './maskEmail'; +export * from './createRandomUid'; +export * from './generateCrami'; +export * from './base'; +export * from './hideString'; +export * from './getDiffArray'; +export * from './getRandomItem'; +export * from './getClientIp'; +export * from './maskIpAddress'; +export * from './maskCrami'; +export * from './selectKeyWithWeight'; +export * from './createOrderId'; +export * from './createRandomNonceStr'; +export * from './utcformatTime'; +export * from './removeSpecialCharacters'; +export * from './encrypt'; +export * from './compileNetwork'; +export * from './getRandomItemFromArray' diff --git a/service/src/common/utils/maskCrami.ts b/service/src/common/utils/maskCrami.ts new file mode 100644 index 0000000..9da6577 --- /dev/null +++ b/service/src/common/utils/maskCrami.ts @@ -0,0 +1,8 @@ +export function maskCrami(str: string): string { + if (str.length !== 16) { + throw new Error('Invalid input'); + } + + const masked = str.substring(0, 6) + '****' + str.substring(10); + return masked; +} diff --git a/service/src/common/utils/maskEmail.ts b/service/src/common/utils/maskEmail.ts new file mode 100644 index 0000000..2aabf6e --- /dev/null +++ b/service/src/common/utils/maskEmail.ts @@ -0,0 +1,11 @@ +export function maskEmail(email: string): string { + if (!email) return ''; + const atIndex = email.indexOf('@'); + if (atIndex <= 1) { + return email; + } + const firstPart = email.substring(0, atIndex - 1); + const lastPart = email.substring(atIndex); + const maskedPart = '*'.repeat(firstPart.length - 1); + return `${firstPart.charAt(0)}${maskedPart}${email.charAt(atIndex - 1)}${lastPart}`; +} diff --git a/service/src/common/utils/maskIpAddress.ts b/service/src/common/utils/maskIpAddress.ts new file mode 100644 index 0000000..0a7d930 --- /dev/null +++ b/service/src/common/utils/maskIpAddress.ts @@ -0,0 +1,6 @@ +export function maskIpAddress(ipAddress: string): string { + if (!ipAddress) return ''; + const ipArray = ipAddress.split('.'); + ipArray[2] = '***'; + return ipArray.join('.'); +} diff --git a/service/src/common/utils/removeSpecialCharacters.ts b/service/src/common/utils/removeSpecialCharacters.ts new file mode 100644 index 0000000..f25c58a --- /dev/null +++ b/service/src/common/utils/removeSpecialCharacters.ts @@ -0,0 +1,3 @@ +export function removeSpecialCharacters(inputString) { + return inputString.replace(/[^\w\s-]/g, ''); +} diff --git a/service/src/common/utils/selectKeyWithWeight.ts b/service/src/common/utils/selectKeyWithWeight.ts new file mode 100644 index 0000000..ce0cdc5 --- /dev/null +++ b/service/src/common/utils/selectKeyWithWeight.ts @@ -0,0 +1,87 @@ +// export function selectKeyWithWeight(keys) { +// // 创建两个数组用于存储每个键值及其对应的概率分布 +// const values = []; +// const probabilities = []; + +// // 获取所有 keys 的总权重 +// const totalWeight = keys.reduce((prev, curr) => prev + curr.weight, 0); + +// // 计算每个键值所占的概率,并将其放入对应的数组中 +// for (let i = 0; i < keys.length; i++) { +// const probability = keys[i].weight / totalWeight; +// probabilities.push(probability); +// values.push(i); +// } + +// // 创建两个辅助数组,用于记录各个键值的别名(alias)和概率分布(prob) +// const alias = new Array(keys.length).fill(0); +// const prob = new Array(keys.length).fill(0); + +// // 创建两个栈,分别用于存储大于等于均值和小于均值的键值 +// const small = []; +// const large = []; + +// // 初始化栈以及 prob 和 alias 数组 +// for (let i = 0; i < keys.length; i++) { +// if (probabilities[i] < 1) { +// small.push(i); +// } else { +// large.push(i); +// } +// prob[i] = probabilities[i] * keys.length; +// } + +// // 循环填充 alias 和 prob 数组 +// while (small.length > 0 && large.length > 0) { +// const smallIndex = small.pop(); +// const largeIndex = large.pop(); + +// alias[smallIndex] = largeIndex; +// prob[largeIndex] = prob[largeIndex] + prob[smallIndex] - 1; + +// if (prob[largeIndex] < 1) { +// small.push(largeIndex); +// } else { +// large.push(largeIndex); +// } +// } + +// // 随机生成一个 [0, keys.length) 范围内的整数 +// const rand = Math.floor(Math.random() * keys.length); + +// // 根据随机值和对应的别名和概率分布数组,返回选中的键值 +// if (Math.random() < prob[rand]) { +// return keys[rand]; +// } else { +// return keys[alias[rand]]; +// } +// } + +export interface KeyItem { + id: number; + key: string; + weight: number; + model: string; +} + +/** + * 根据概率按权重随机选择一项 + * + * @param data 包含id、key和weight字段的Item数组 + * @returns 随机选择的一项 + */ +export function selectKeyWithWeight(data: KeyItem[]): KeyItem | undefined { + if (data.length === 0) return undefined; + + const totalWeight = data.reduce((sum, item) => sum + item.weight, 0); + let randomWeight = Math.random() * totalWeight; + + for (const item of data) { + randomWeight -= item.weight; + if (randomWeight < 0) { + return item; + } + } + + return data[data.length - 1]; +} diff --git a/service/src/common/utils/tools.ts b/service/src/common/utils/tools.ts new file mode 100644 index 0000000..cdeecf0 --- /dev/null +++ b/service/src/common/utils/tools.ts @@ -0,0 +1,6 @@ +export function isNotEmptyString(value: any): boolean { + return typeof value === 'string' && value.length > 0; +} + +// === await eval('import("module")'); +export const importDynamic = new Function('modulePath', 'return import(modulePath)'); diff --git a/service/src/common/utils/utcformatTime.ts b/service/src/common/utils/utcformatTime.ts new file mode 100644 index 0000000..0e1b4c0 --- /dev/null +++ b/service/src/common/utils/utcformatTime.ts @@ -0,0 +1,14 @@ +export function utcToShanghaiTime(utcTime: string, format = 'YYYY/MM/DD hh:mm:ss'): string { + const date = new Date(utcTime); + const shanghaiTime = date.getTime() + 8 * 60 * 60 * 1000; + const shanghaiDate = new Date(shanghaiTime); + + let result = format.replace('YYYY', shanghaiDate.getFullYear().toString()); + result = result.replace('MM', `0${shanghaiDate.getMonth() + 1}`.slice(-2)); + result = result.replace('DD', `0${shanghaiDate.getDate()}`.slice(-2)); + result = result.replace('hh', `0${shanghaiDate.getHours()}`.slice(-2)); + result = result.replace('mm', `0${shanghaiDate.getMinutes()}`.slice(-2)); + result = result.replace('ss', `0${shanghaiDate.getSeconds()}`.slice(-2)); + + return result; +} diff --git a/service/src/config/.env.example b/service/src/config/.env.example new file mode 100644 index 0000000..9da3382 --- /dev/null +++ b/service/src/config/.env.example @@ -0,0 +1,30 @@ +# 服务器ip +NINE_AI_HOST= +# 授权码 +NINE_AI_KEY= + +# mysql +DB_HOST=localhost +DB_PORT=3306 +DB_USER=root +DB_PASS=chat-nine-ai +DB_DATABASE=chatgpt +DB_LOG=false +DB_SYNC=true + +# mailer 邮件服务 +MAILER_HOST=smtp.163.com +MAILER_PORT=465 +MAILER_USER= +MAILER_PASS= +MAILER_FROM= + +# jwt token +JWT_SECRET=chat-cooper +JWT_EXPIRESIN=5 +SWAGGERPREFIX=/docs + +# 系统预设 请勿更改 +PORT=9520 +PREFIX=/docs +APIPREFIX=/api \ No newline at end of file diff --git a/service/src/config/cos.ts b/service/src/config/cos.ts new file mode 100644 index 0000000..2a2aa28 --- /dev/null +++ b/service/src/config/cos.ts @@ -0,0 +1,11 @@ +import * as Dotenv from 'dotenv'; +Dotenv.config({ path: '.env' }); + +const config = { + SecretId: process.env.TENTCENT_SECRET_ID, + SecretKey: process.env.TENTCENT_SECRET_KEY, + Bucket: process.env.COS_BUCKET_PUBLIC, + Region: process.env.COS_REGION, +}; + +export default config; diff --git a/service/src/config/database.ts b/service/src/config/database.ts new file mode 100644 index 0000000..bad09cf --- /dev/null +++ b/service/src/config/database.ts @@ -0,0 +1,18 @@ +import { join } from 'path'; +import { ConnectionOptions, Connection } from 'typeorm'; + +const config: ConnectionOptions = { + type: 'mysql', + port: parseInt(process.env.DB_PORT), + host: process.env.DB_HOST, + username: process.env.DB_USER, + password: process.env.DB_PASS, + database: process.env.DB_DATABASE, + entities: [__dirname + '/../**/*.entity{.ts,.js}'], + logging: false, + synchronize: true, + charset: 'utf8mb4', + // timezone: 'Z', + timezone: '+08:00', +}; +export default config; diff --git a/service/src/config/jwt.ts b/service/src/config/jwt.ts new file mode 100644 index 0000000..0edd24f --- /dev/null +++ b/service/src/config/jwt.ts @@ -0,0 +1,8 @@ +const config = { + secret: process.env.JWT_SECRET, + signOptions: { + expiresIn: process.env.JWT_EXPIRESIN || '7d', + }, +}; + +export default config; diff --git a/service/src/config/mailer.ts b/service/src/config/mailer.ts new file mode 100644 index 0000000..ac98a6b --- /dev/null +++ b/service/src/config/mailer.ts @@ -0,0 +1,25 @@ +import { HandlebarsAdapter } from '@nestjs-modules/mailer/dist/adapters/handlebars.adapter'; +import { MailerOptions } from '@nestjs-modules/mailer'; + +const mailConfig: MailerOptions = { + transport: { + host: process.env.MAILER_HOST || 'smtpdm.aliyun.com', + port: process.env.MAILER_PORT || '80', + auth: { + user: process.env.MAILER_USER, + pass: process.env.MAILER_PASS, + }, + }, + defaults: { + from: process.env.MAILER_FROM, + }, + template: { + dir: 'templates/mail', + adapter: new HandlebarsAdapter(), + options: { + strict: true, + }, + }, +}; + +export default mailConfig; diff --git a/service/src/config/main.ts b/service/src/config/main.ts new file mode 100644 index 0000000..614b155 --- /dev/null +++ b/service/src/config/main.ts @@ -0,0 +1,5 @@ +const PORT = process.env.PORT || 3000; +const SWAGGERPREFIX = process.env.SWAGGERPREFIX || '/docs'; +const APIPREFIX = process.env.APIPREFIX || '/api'; + +export { PORT, SWAGGERPREFIX, APIPREFIX }; diff --git a/service/src/config/redis.ts b/service/src/config/redis.ts new file mode 100644 index 0000000..4d37045 --- /dev/null +++ b/service/src/config/redis.ts @@ -0,0 +1,10 @@ +import { join } from 'path'; + +const config = { + port: parseInt(process.env.REDIS_PORT), + host: process.env.REDIS_HOST, + password: process.env.REDIS_PASSWORD, + username: process.env.REDIS_USER, +}; + +export default config; diff --git a/service/src/interfaces/mail.interface.ts b/service/src/interfaces/mail.interface.ts new file mode 100644 index 0000000..4155f5f --- /dev/null +++ b/service/src/interfaces/mail.interface.ts @@ -0,0 +1,6 @@ +export interface SendMailerOptions { + to: string; + subject: string; + html?: string; + content?: Record; +} diff --git a/service/src/main.ts b/service/src/main.ts new file mode 100644 index 0000000..0ff84a6 --- /dev/null +++ b/service/src/main.ts @@ -0,0 +1,40 @@ +import * as Dotenv from 'dotenv'; +Dotenv.config({ path: '.env' }); +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; +import { createSwagger } from '@/common/swagger'; +import { AllExceptionsFilter } from '@/common/filters/allExceptions.filter'; +import { TypeOrmQueryFailedFilter } from '@/common/filters/typeOrmQueryFailed.filter'; +import { ValidationPipe, Logger } from '@nestjs/common'; +import { TransformInterceptor } from '@/common/interceptors/transform.interceptor'; +import { join } from 'path'; +import * as express from 'express'; +import { PORT, APIPREFIX } from '@/config/main'; +import { initDatabase } from '@/modules/database/initDatabase'; +import * as compression from 'compression'; +import * as xmlBodyParser from 'express-xml-bodyparser'; +import { resolve } from 'path'; + +async function bootstrap() { + await initDatabase(); + const app = await NestFactory.create(AppModule); + app.use(compression()); + const www = resolve(__dirname, './public'); + app.use(xmlBodyParser()); + app.enableCors(); + app.setGlobalPrefix(APIPREFIX); + app.useGlobalInterceptors(new TransformInterceptor()); + app.useGlobalFilters(new TypeOrmQueryFailedFilter()); + app.useGlobalFilters(new AllExceptionsFilter()); + app.useGlobalPipes(new ValidationPipe()); + app.getHttpAdapter().getInstance().set('views', 'templates/pages'); + app.getHttpAdapter().getInstance().set('view engine', 'hbs'); + + createSwagger(app); + const server = await app.listen(PORT, () => { + Logger.log(`服务启动成功: http://localhost:${PORT}/nineai/swagger/docs`, 'Main'); + }); + server.timeout = 5 * 60 * 1000; +} + +bootstrap(); diff --git a/service/src/modules/app/app.controller.ts b/service/src/modules/app/app.controller.ts new file mode 100644 index 0000000..ef4afa7 --- /dev/null +++ b/service/src/modules/app/app.controller.ts @@ -0,0 +1,154 @@ +import { AppService } from './app.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { CreateCatsDto } from './dto/createCats.dto'; +import { UpdateCatsDto } from './dto/updateCats.dto'; +import { DeleteCatsDto } from './dto/deleteCats.dto'; +import { QuerCatsDto } from './dto/queryCats.dto'; +import { CreateAppDto } from './dto/createApp.dto'; +import { UpdateAppDto } from './dto/updateApp.dto'; +import { OperateAppDto } from './dto/deleteApp.dto'; +import { QuerAppDto } from './dto/queryApp.dto'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { CollectAppDto } from './dto/collectApp.dto'; +import { Request } from 'express'; +import { CustomAppDto } from './dto/custonApp.dto'; + +@ApiTags('App') +@Controller('app') +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get('queryAppCats') + @ApiOperation({ summary: '获取App分类列表' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + appCatsList(@Query() query: QuerCatsDto) { + return this.appService.appCatsList(query); + } + + @Get('queryCats') + @ApiOperation({ summary: '用户端获取App分类列表' }) + catsList() { + const params: QuerCatsDto = { status: 1, page: 1, size: 1000, name: '' }; + return this.appService.appCatsList(params); + } + + @Get('queryOneCat') + @ApiOperation({ summary: '用户端获取App分类列表' }) + queryOneCats(@Query() query) { + return this.appService.queryOneCat(query); + } + + @Post('createAppCats') + @ApiOperation({ summary: '添加App分类' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + createAppCat(@Body() body: CreateCatsDto) { + return this.appService.createAppCat(body); + } + + @Post('updateAppCats') + @ApiOperation({ summary: '修改App分类' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + updateAppCats(@Body() body: UpdateCatsDto) { + return this.appService.updateAppCats(body); + } + + @Post('delAppCats') + @ApiOperation({ summary: '删除App分类' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delAppCat(@Body() body: DeleteCatsDto) { + return this.appService.delAppCat(body); + } + + @Get('queryApp') + @ApiOperation({ summary: '获取App列表' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + appList(@Req() req: Request, @Query() query: QuerAppDto) { + return this.appService.appList(req, query); + } + + @Get('list') + @ApiOperation({ summary: '客户端获取App' }) + list(@Req() req: Request, @Query() query: QuerAppDto) { + return this.appService.frontAppList(req, query); + } + + @Post('createApp') + @ApiOperation({ summary: '添加App' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + createApp(@Body() body: CreateAppDto) { + return this.appService.createApp(body); + } + + @Post('customApp') + @ApiOperation({ summary: '添加自定义App' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + customApp(@Body() body: CustomAppDto, @Req() req: Request) { + return this.appService.customApp(body, req); + } + + @Post('updateApp') + @ApiOperation({ summary: '修改App' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + updateApp(@Body() body: UpdateAppDto) { + return this.appService.updateApp(body); + } + + @Post('delApp') + @ApiOperation({ summary: '删除App' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delApp(@Body() body: OperateAppDto) { + return this.appService.delApp(body); + } + + @Post('auditPass') + @ApiOperation({ summary: '审核通过App' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + auditPass(@Body() body: OperateAppDto) { + return this.appService.auditPass(body); + } + + @Post('auditFail') + @ApiOperation({ summary: '审核拒绝App' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + auditFail(@Body() body: OperateAppDto) { + return this.appService.auditFail(body); + } + + @Post('delMineApp') + @ApiOperation({ summary: '删除个人App' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + delMineApp(@Body() body: OperateAppDto, @Req() req: Request) { + return this.appService.delMineApp(body, req); + } + + @Post('collect') + @ApiOperation({ summary: '收藏/取消收藏App' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + collect(@Body() body: CollectAppDto, @Req() req: Request) { + return this.appService.collect(body, req); + } + + @Get('mineApps') + @ApiOperation({ summary: '我的收藏' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + mineApps(@Req() req: Request) { + return this.appService.mineApps(req); + } +} diff --git a/service/src/modules/app/app.entity.ts b/service/src/modules/app/app.entity.ts new file mode 100644 index 0000000..89b2a2f --- /dev/null +++ b/service/src/modules/app/app.entity.ts @@ -0,0 +1,39 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'app' }) +export class AppEntity extends BaseEntity { + @Column({ unique: true, comment: 'App应用名称' }) + name: string; + + @Column({ comment: 'App分类Id' }) + catId: number; + + @Column({ comment: 'App应用描述信息' }) + des: string; + + @Column({ comment: 'App应用预设场景信息', type: 'text' }) + preset: string; + + @Column({ comment: 'App应用封面图片', nullable: true }) + coverImg: string; + + @Column({ comment: 'App应用排序、数字越大越靠前', default: 100 }) + order: number; + + @Column({ comment: 'App应用是否启用中 0:禁用 1:启用', default: 1 }) + status: number; + + @Column({ comment: 'App示例数据', nullable: true, type: 'text' }) + demoData: string; + + @Column({ comment: 'App应用角色 system user', default: 'system' }) + role: string; + + @Column({ comment: 'App是否共享到应用广场', default: false }) + public: boolean; + + @Column({ comment: '用户Id', nullable: true }) + userId: number; +} diff --git a/service/src/modules/app/app.module.ts b/service/src/modules/app/app.module.ts new file mode 100644 index 0000000..41f3652 --- /dev/null +++ b/service/src/modules/app/app.module.ts @@ -0,0 +1,14 @@ +import { Module } from '@nestjs/common'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { AppCatsEntity } from './appCats.entity'; +import { AppEntity } from './app.entity'; +import { UserAppsEntity } from './userApps.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([AppCatsEntity, AppEntity, UserAppsEntity])], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule {} diff --git a/service/src/modules/app/app.service.ts b/service/src/modules/app/app.service.ts new file mode 100644 index 0000000..f58353f --- /dev/null +++ b/service/src/modules/app/app.service.ts @@ -0,0 +1,318 @@ +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { AppCatsEntity } from './appCats.entity'; +import { In, IsNull, Like, MoreThan, Not, Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; +import { CreateCatsDto } from './dto/createCats.dto'; +import { DeleteCatsDto } from './dto/deleteCats.dto'; +import { UpdateCatsDto } from './dto/updateCats.dto'; +import { QuerCatsDto } from './dto/queryCats.dto'; +import { CreateAppDto } from './dto/createApp.dto'; +import { UpdateAppDto } from './dto/updateApp.dto'; +import { OperateAppDto } from './dto/deleteApp.dto'; +import { QuerAppDto } from './dto/queryApp.dto'; +import { AppEntity } from './app.entity'; +import { CollectAppDto } from './dto/collectApp.dto'; +import { UserAppsEntity } from './userApps.entity'; +import { Request } from 'express'; +import { CustomAppDto } from './dto/custonApp.dto'; + +@Injectable() +export class AppService { + constructor( + @InjectRepository(AppCatsEntity) + private readonly appCatsEntity: Repository, + @InjectRepository(AppEntity) + private readonly appEntity: Repository, + @InjectRepository(UserAppsEntity) + private readonly userAppsEntity: Repository, + ) {} + + async createAppCat(body: CreateCatsDto) { + const { name } = body; + const c = await this.appCatsEntity.findOne({ where: { name } }); + if (c) { + throw new HttpException('该分类名称已存在!', HttpStatus.BAD_REQUEST); + } + return await this.appCatsEntity.save(body); + } + + async delAppCat(body: DeleteCatsDto) { + const { id } = body; + const c = await this.appCatsEntity.findOne({ where: { id } }); + if (!c) { + throw new HttpException('该分类不存在!', HttpStatus.BAD_REQUEST); + } + const count = await this.appEntity.count({ where: { catId: id } }); + if (count > 0) { + throw new HttpException('该分类下存在App,不可删除!', HttpStatus.BAD_REQUEST); + } + const res = await this.appCatsEntity.delete(id); + if (res.affected > 0) return '删除成功'; + throw new HttpException('删除失败!', HttpStatus.BAD_REQUEST); + } + + async updateAppCats(body: UpdateCatsDto) { + const { id, name } = body; + const c = await this.appCatsEntity.findOne({ where: { name, id: Not(id) } }); + if (c) { + throw new HttpException('该分类名称已存在!', HttpStatus.BAD_REQUEST); + } + const res = await this.appCatsEntity.update({ id }, body); + if (res.affected > 0) return '修改成功'; + throw new HttpException('修改失败!', HttpStatus.BAD_REQUEST); + } + + async queryOneCat(params){ + const {id} = params + if(!id){ + throw new HttpException('缺失必要参数!', HttpStatus.BAD_REQUEST); + } + const app = await this.appEntity.findOne({where: {id}}) + const { demoData: demo, coverImg, des, name } = app + return { + demoData: demo ? demo.split('\n') : [], + coverImg, + des, + name + } + } + + async appCatsList(query: QuerCatsDto) { + const { page = 1, size = 10, name, status } = query; + const where: any = {}; + name && (where.name = Like(`%${name}%`)); + [0, 1, '0', '1'].includes(status) && (where.status = status); + const [rows, count] = await this.appCatsEntity.findAndCount({ + where, + order: { order: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + // 查出所有分类下对应的App数量 + const catIds = rows.map((item) => item.id); + const apps = await this.appEntity.find({ where: { catId: In(catIds) } }); + const appCountMap = {}; + apps.forEach((item) => { + if (appCountMap[item.catId]) { + appCountMap[item.catId] += 1; + } else { + appCountMap[item.catId] = 1; + } + }); + rows.forEach((item: any) => (item.appCount = appCountMap[item.id] || 0)); + return { rows, count }; + } + + async appList(req: Request, query: QuerAppDto, orderKey = 'id') { + const { page = 1, size = 10, name, status, catId, role } = query; + const where: any = {}; + name && (where.name = Like(`%${name}%`)); + catId && (where.catId = catId); + role && (where.role = role); + status && (where.status = status); + const [rows, count] = await this.appEntity.findAndCount({ + where, + order: { [orderKey]: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const catIds = rows.map((item) => item.catId); + const cats = await this.appCatsEntity.find({ where: { id: In(catIds) } }); + rows.forEach((item: any) => { + const cat = cats.find((c) => c.id === item.catId); + item.catName = cat ? cat.name : ''; + }); + if (req?.user?.role !== 'super') { + rows.forEach((item: any) => { + delete item.preset; + }); + } + return { rows, count }; + } + + async frontAppList(req: Request, query: QuerAppDto, orderKey = 'id') { + const { page = 1, size = 1000, name, catId, role } = query; + const where: any = [ + { status: In([1, 4]), userId: IsNull(), public: false }, + { userId: MoreThan(0), public: true }, + ]; + const [rows, count] = await this.appEntity.findAndCount({ + where, + order: { order: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const catIds = rows.map((item) => item.catId); + const cats = await this.appCatsEntity.find({ where: { id: In(catIds) } }); + rows.forEach((item: any) => { + const cat = cats.find((c) => c.id === item.catId); + item.catName = cat ? cat.name : ''; + }); + if (req?.user?.role !== 'super') { + rows.forEach((item: any) => { + delete item.preset; + }); + } + return { rows, count }; + } + + async createApp(body: CreateAppDto) { + const { name, catId } = body; + body.role = 'system'; + const a = await this.appEntity.findOne({ where: { name } }); + if (a) { + throw new HttpException('该应用名称已存在!', HttpStatus.BAD_REQUEST); + } + const c = await this.appCatsEntity.findOne({ where: { id: catId } }); + if (!c) { + throw new HttpException('该分类不存在!', HttpStatus.BAD_REQUEST); + } + return await this.appEntity.save(body); + } + + async customApp(body: CustomAppDto, req: Request) { + const { id } = req.user; + const { name, catId, des, preset, coverImg, demoData, public: isPublic, appId } = body; + if (appId) { + const a = await this.appEntity.findOne({ where: { id: appId, userId: id } }); + if (!a) { + throw new HttpException('您正在编辑一个不存在的应用!', HttpStatus.BAD_REQUEST); + } + const data = { name, catId, des, preset, coverImg, demoData, public: isPublic, status: isPublic ? 3 : 1 }; + const res = await this.appEntity.update({ id: appId, userId: id }, data); + if (res.affected) { + return '修改成功'; + } else { + throw new HttpException('修改失败!', HttpStatus.BAD_REQUEST); + } + } + if (!appId) { + const c = await this.appCatsEntity.findOne({ where: { id: catId } }); + if (!c) { + throw new HttpException('该分类不存在!', HttpStatus.BAD_REQUEST); + } + const a = await this.appEntity.findOne({ where: { name } }); + if (a) { + throw new HttpException('该应用名称已存在!', HttpStatus.BAD_REQUEST); + } + const data = { name, catId, des, preset, coverImg, status: isPublic ? 3 : 1, demoData, public: isPublic, role: 'user', userId: id }; + const res = await this.appEntity.save(data); + const params = { appId: res.id, userId: id, appType: 'user', public: isPublic, status: isPublic ? 3 : 1, catId }; + return this.userAppsEntity.save(params); + } + } + + async updateApp(body: UpdateAppDto) { + const { id, name, catId, status } = body; + const a = await this.appEntity.findOne({ where: { name, id: Not(id) } }); + if (a) { + throw new HttpException('该应用名称已存在!', HttpStatus.BAD_REQUEST); + } + const c = await this.appCatsEntity.findOne({ where: { id: catId } }); + if (!c) { + throw new HttpException('该分类不存在!', HttpStatus.BAD_REQUEST); + } + const curApp = await this.appEntity.findOne({ where: { id } }); + if (curApp.status !== body.status) { + await this.userAppsEntity.update({ appId: id }, { status }); + } + const res = await this.appEntity.update({ id }, body); + if (res.affected > 0) return '修改App信息成功'; + throw new HttpException('修改App信息失败!', HttpStatus.BAD_REQUEST); + } + + async delApp(body: OperateAppDto) { + const { id } = body; + const a = await this.appEntity.findOne({ where: { id } }); + if (!a) { + throw new HttpException('该应用不存在!', HttpStatus.BAD_REQUEST); + } + const useApp = await this.userAppsEntity.count({ where: { appId: id } }); + if (useApp > 0) { + throw new HttpException('该应用已被用户关联使用中,不可删除!', HttpStatus.BAD_REQUEST); + } + const res = await this.appEntity.delete(id); + if (res.affected > 0) return '删除App成功'; + throw new HttpException('删除App失败!', HttpStatus.BAD_REQUEST); + } + + async auditPass(body: OperateAppDto) { + const { id } = body; + const a = await this.appEntity.findOne({ where: { id, status: 3 } }); + if (!a) { + throw new HttpException('该应用不存在!', HttpStatus.BAD_REQUEST); + } + await this.appEntity.update({ id }, { status: 4 }); + /* 同步变更useApp status */ + await this.userAppsEntity.update({ appId: id }, { status: 4 }); + return '应用审核通过'; + } + + async auditFail(body: OperateAppDto) { + const { id } = body; + const a = await this.appEntity.findOne({ where: { id, status: 3 } }); + if (!a) { + throw new HttpException('该应用不存在!', HttpStatus.BAD_REQUEST); + } + await this.appEntity.update({ id }, { status: 5 }); + /* 同步变更useApp status */ + await this.userAppsEntity.update({ appId: id }, { status: 5 }); + return '应用审核拒绝完成'; + } + + async delMineApp(body: OperateAppDto, req: Request) { + const { id } = body; + const a = await this.appEntity.findOne({ where: { id, userId: req.user.id } }); + if (!a) { + throw new HttpException('您正在操作一个不存在的资源!', HttpStatus.BAD_REQUEST); + } + /* 删除app */ + await this.appEntity.delete(id); + /* 删除关联的useApp */ + await this.userAppsEntity.delete({ appId: id, userId: req.user.id }); + return '删除应用成功!'; + } + + async collect(body: CollectAppDto, req: Request) { + const { appId } = body; + const { id: userId } = req.user; + const historyApp = await this.userAppsEntity.findOne({ where: { appId, userId } }); + if (historyApp) { + const r = await this.userAppsEntity.delete({ appId, userId }); + if (r.affected > 0) { + return '取消收藏成功!'; + } else { + throw new HttpException('取消收藏失败!', HttpStatus.BAD_REQUEST); + } + } + const app = await this.appEntity.findOne({ where: { id: appId } }); + const { id, role: appRole, catId } = app; + const collectInfo = { userId, appId: id, catId, appRole, public: true, status: 1 }; + await this.userAppsEntity.save(collectInfo); + return '已将应用加入到我的个人工作台!'; + } + + async mineApps(req: Request, query = { page: 1, size: 30 }) { + const { id } = req.user; + const { page = 1, size = 30 } = query; + const [rows, count] = await this.userAppsEntity.findAndCount({ + where: { userId: id, status: In([1, 3, 4, 5]) }, + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + + const appIds = rows.map((item) => item.appId); + const appsInfo = await this.appEntity.find({ where: { id: In(appIds) } }); + rows.forEach((item: any) => { + const app = appsInfo.find((c) => c.id === item.appId); + item.appName = app ? app.name : ''; + item.appRole = app ? app.role : ''; + item.appDes = app ? app.des : ''; + item.coverImg = app ? app.coverImg : ''; + item.demoData = app ? app.demoData : ''; + item.preset = app.userId === id ? app.preset : '******'; + }); + return { rows, count }; + } +} diff --git a/service/src/modules/app/appCats.entity.ts b/service/src/modules/app/appCats.entity.ts new file mode 100644 index 0000000..8975967 --- /dev/null +++ b/service/src/modules/app/appCats.entity.ts @@ -0,0 +1,21 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'app_cats' }) +export class AppCatsEntity extends BaseEntity { + @Column({ unique: true, comment: 'App分类名称' }) + name: string; + + @Column({ comment: 'App分类描述信息' }) + des: string; + + @Column({ comment: 'App分类封面图片', nullable: true }) + coverImg: string; + + @Column({ comment: 'App分类排序、数字越大越靠前', default: 100 }) + order: number; + + @Column({ comment: 'App分类是否启用中 0:禁用 1:启用', default: 1 }) + status: number; +} diff --git a/service/src/modules/app/dto/collectApp.dto.ts b/service/src/modules/app/dto/collectApp.dto.ts new file mode 100644 index 0000000..6c96144 --- /dev/null +++ b/service/src/modules/app/dto/collectApp.dto.ts @@ -0,0 +1,8 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNumber } from 'class-validator'; + +export class CollectAppDto { + @ApiProperty({ example: 1, description: '要收藏的appId', required: true }) + @IsNumber({}, { message: 'ID必须是Number' }) + appId: number; +} diff --git a/service/src/modules/app/dto/createApp.dto.ts b/service/src/modules/app/dto/createApp.dto.ts new file mode 100644 index 0000000..bf8a012 --- /dev/null +++ b/service/src/modules/app/dto/createApp.dto.ts @@ -0,0 +1,44 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class CreateAppDto { + @ApiProperty({ example: '前端助手', description: 'app名称', required: true }) + @IsDefined({ message: 'app名称是必传参数' }) + name: string; + + @ApiProperty({ example: 1, description: 'app分类Id', required: true }) + @IsDefined({ message: 'app分类Id必传参数' }) + catId: number; + + @ApiProperty({ + example: '适用于编程编码、期望成为您的编程助手', + description: 'app名称详情描述', + required: false, + }) + @IsDefined({ message: 'app名称描述是必传参数' }) + des: string; + + @ApiProperty({ example: '你现在是一个翻译官。接下来我说的所有话帮我翻译成中文', description: '预设的prompt', required: true }) + @IsOptional() + preset: string; + + @ApiProperty({ example: 'https://xxxx.png', description: '套餐封面图片', required: false }) + @IsOptional() + coverImg: string; + + @ApiProperty({ example: 100, description: '套餐排序、数字越大越靠前', required: false }) + @IsOptional() + order: number; + + @ApiProperty({ example: 1, description: '套餐状态 0:禁用 1:启用', required: true }) + @IsNumber({}, { message: '套餐状态必须是Number' }) + @IsIn([0, 1, 3, 4, 5], { message: '套餐状态错误' }) + status: number; + + @ApiProperty({ example: '这是一句示例数据', description: 'app示例数据', required: false }) + demoData: string; + + @ApiProperty({ example: 'system', description: '创建的角色', required: false }) + role: string; +} diff --git a/service/src/modules/app/dto/createCats.dto.ts b/service/src/modules/app/dto/createCats.dto.ts new file mode 100644 index 0000000..41d5caa --- /dev/null +++ b/service/src/modules/app/dto/createCats.dto.ts @@ -0,0 +1,30 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class CreateCatsDto { + @ApiProperty({ example: '编程助手', description: 'app分类名称', required: true }) + @IsDefined({ message: 'app分类名称是必传参数' }) + name: string; + + @ApiProperty({ + example: '适用于编程编码、期望成为您的编程助手', + description: 'app分类名称详情描述', + required: false, + }) + @IsDefined({ message: 'app分类名称描述是必传参数' }) + des: string; + + @ApiProperty({ example: 'https://xxxx.png', description: '套餐封面图片' }) + @IsOptional() + coverImg: string; + + @ApiProperty({ example: 100, description: '套餐排序、数字越大越靠前', required: false }) + @IsOptional() + order: number; + + @ApiProperty({ example: 1, description: '套餐状态 0:禁用 1:启用', required: true }) + @IsNumber({}, { message: '套餐状态必须是Number' }) + @IsIn([0, 1, 3, 4, 5], { message: '套餐状态错误' }) + status: number; +} diff --git a/service/src/modules/app/dto/custonApp.dto.ts b/service/src/modules/app/dto/custonApp.dto.ts new file mode 100644 index 0000000..0aef0b0 --- /dev/null +++ b/service/src/modules/app/dto/custonApp.dto.ts @@ -0,0 +1,35 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class CustomAppDto { + @ApiProperty({ example: '前端助手', description: 'app名称', required: true }) + name: string; + + @ApiProperty({ example: 1, description: 'app分类Id', required: true }) + catId: number; + + @ApiProperty({ + example: '适用于编程编码、期望成为您的编程助手', + description: 'app名称详情描述', + required: false, + }) + @IsDefined({ message: 'app名称描述是必传参数' }) + des: string; + + @ApiProperty({ example: '你现在是一个翻译官。接下来我说的所有话帮我翻译成中文', description: '预设的prompt', required: true }) + preset: string; + + @ApiProperty({ example: 'https://xxxx.png', description: '套餐封面图片', required: false }) + coverImg: string; + + @ApiProperty({ example: '这是一句示例数据', description: 'app示例数据', required: false }) + demoData: string; + + @ApiProperty({ example: false, description: '是否共享到所有人', required: false }) + public: boolean; + + @ApiProperty({ example: 1, description: '应用ID', required: false }) + @IsOptional() + appId: number; +} diff --git a/service/src/modules/app/dto/deleteApp.dto.ts b/service/src/modules/app/dto/deleteApp.dto.ts new file mode 100644 index 0000000..97149f6 --- /dev/null +++ b/service/src/modules/app/dto/deleteApp.dto.ts @@ -0,0 +1,8 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNumber } from 'class-validator'; + +export class OperateAppDto { + @ApiProperty({ example: 1, description: '要删除的appId', required: true }) + @IsNumber({}, { message: 'ID必须是Number' }) + id: number; +} diff --git a/service/src/modules/app/dto/deleteCats.dto.ts b/service/src/modules/app/dto/deleteCats.dto.ts new file mode 100644 index 0000000..d112e5c --- /dev/null +++ b/service/src/modules/app/dto/deleteCats.dto.ts @@ -0,0 +1,8 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNumber } from 'class-validator'; + +export class DeleteCatsDto { + @ApiProperty({ example: 1, description: '要删除app分类Id', required: true }) + @IsNumber({}, { message: 'ID必须是Number' }) + id: number; +} diff --git a/service/src/modules/app/dto/queryApp.dto.ts b/service/src/modules/app/dto/queryApp.dto.ts new file mode 100644 index 0000000..aa7c678 --- /dev/null +++ b/service/src/modules/app/dto/queryApp.dto.ts @@ -0,0 +1,30 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerAppDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 'name', description: 'app名称', required: false }) + @IsOptional() + name: string; + + @ApiProperty({ example: 1, description: 'app状态 0:禁用 1:启用 3:审核加入广场中 4:已拒绝加入广场', required: false }) + @IsOptional() + status: number; + + @ApiProperty({ example: 2, description: 'app分类Id', required: false }) + @IsOptional() + catId: number; + + @ApiProperty({ example: 'role', description: 'app角色', required: false }) + @IsOptional() + role: string; +} diff --git a/service/src/modules/app/dto/queryCats.dto.ts b/service/src/modules/app/dto/queryCats.dto.ts new file mode 100644 index 0000000..c53f60b --- /dev/null +++ b/service/src/modules/app/dto/queryCats.dto.ts @@ -0,0 +1,22 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerCatsDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 'name', description: '分类名称', required: false }) + @IsOptional() + name: string; + + @ApiProperty({ example: 1, description: '分类状态 0:禁用 1:启用', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/app/dto/updateApp.dto.ts b/service/src/modules/app/dto/updateApp.dto.ts new file mode 100644 index 0000000..11d4ffb --- /dev/null +++ b/service/src/modules/app/dto/updateApp.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { CreateAppDto } from './createApp.dto'; + +export class UpdateAppDto extends CreateAppDto { + @ApiProperty({ example: 1, description: '要修改的分类Id', required: true }) + @IsNumber({}, { message: '分类ID必须是Number' }) + id: number; +} diff --git a/service/src/modules/app/dto/updateCats.dto.ts b/service/src/modules/app/dto/updateCats.dto.ts new file mode 100644 index 0000000..4eaca52 --- /dev/null +++ b/service/src/modules/app/dto/updateCats.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { CreateCatsDto } from './createCats.dto'; + +export class UpdateCatsDto extends CreateCatsDto { + @ApiProperty({ example: 1, description: '要修改的分类Id', required: true }) + @IsNumber({}, { message: '分类ID必须是Number' }) + id: number; +} diff --git a/service/src/modules/app/userApps.entity.ts b/service/src/modules/app/userApps.entity.ts new file mode 100644 index 0000000..feb9f11 --- /dev/null +++ b/service/src/modules/app/userApps.entity.ts @@ -0,0 +1,27 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'user_apps' }) +export class UserAppsEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '应用ID' }) + appId: number; + + @Column({ comment: '应用分类ID' }) + catId: number; + + @Column({ comment: 'app类型 system/user', default: 'user' }) + appType: string; + + @Column({ comment: '是否公开到公告菜单', default: false }) + public: boolean; + + @Column({ comment: 'app状态 1正常 2审核 3违规', default: 1 }) + status: number; + + @Column({ comment: 'App应用排序、数字越大越靠前', default: 100 }) + order: number; +} diff --git a/service/src/modules/auth/auth.controller.ts b/service/src/modules/auth/auth.controller.ts new file mode 100644 index 0000000..4693d42 --- /dev/null +++ b/service/src/modules/auth/auth.controller.ts @@ -0,0 +1,102 @@ +import { VerifyCodeDto } from '../verification/dto/verifyCode.dto'; +import { UserLoginDto } from './dto/authLogin.dto'; +import { Controller, Post, UseGuards, Body, Get, Query, Render, Res, Req } from '@nestjs/common'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { AuthService } from './auth.service'; +import { ApiTags, ApiOperation, ApiBearerAuth } from '@nestjs/swagger'; +import { UserRegisterDto } from './dto/authRegister.dto'; +import { Request, Response } from 'express'; +import { UpdatePasswordDto } from './dto/updatePassword.dto'; +import { UpdatePassByOtherDto } from './dto/updatePassByOther.dto'; +import { SendPhoneCodeDto } from './dto/sendPhoneCode.dto'; +import { UserRegisterByPhoneDto } from './dto/userRegisterByPhone.dto'; +import { LoginByPhoneDto } from './dto/loginByPhone.dt'; +import { AdminLoginDto } from './dto/adminLogin.dto'; + +@ApiTags('auth') +@Controller('auth') +export class AuthController { + constructor(private authService: AuthService) {} + + @Post('register') + @ApiOperation({ summary: '用户注册' }) + async register(@Body() body: UserRegisterDto, @Req() req: Request) { + return await this.authService.register(body, req); + } + + @Post('registerByPhone') + @ApiOperation({ summary: '用户通过手机号注册' }) + async registerByPhone(@Body() body: UserRegisterByPhoneDto, @Req() req: Request) { + return await this.authService.registerByPhone(body, req); + } + + @Post('login') + @ApiOperation({ summary: '用户登录' }) + async login(@Body() body: UserLoginDto, @Req() req: Request) { + return this.authService.login(body, req); + } + + @Post('loginByPhone') + @ApiOperation({ summary: '用户手机号登录' }) + async loginByPhone(@Body() body: LoginByPhoneDto, @Req() req: Request) { + return this.authService.loginByPhone(body, req); + } + + @Post('updatePassword') + @ApiOperation({ summary: '用户更改密码' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async updatePassword(@Req() req: Request, @Body() body: UpdatePasswordDto) { + return this.authService.updatePassword(req, body); + } + + @Post('updatePassByOther') + @ApiOperation({ summary: '用户更改密码' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async updatePassByOther(@Req() req: Request, @Body() body: UpdatePassByOtherDto) { + return this.authService.updatePassByOther(req, body); + } + + @Get('getInfo') + @ApiOperation({ summary: '获取用户个人信息' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getInfo(@Req() req: Request) { + return this.authService.getInfo(req); + } + + @Get('activateAccount') + @ApiOperation({ summary: '账户激活' }) + async activateAccount(@Query() parmas: VerifyCodeDto, @Res() res: Response) { + return this.authService.activateAccount(parmas, res); + } + + @Get('registerSuccess') + @ApiOperation({ summary: '注册成功页面' }) + @Render('registerSuccess') + async registerSuccess(@Query() parmas) { + const { username, id, email, teamName, registerSuccessEmailTitle, registerSuccessEmailTeamName, registerSuccessEmaileAppend } = parmas; + return { username, id, email, teamName, registerSuccessEmailTitle, registerSuccessEmailTeamName, registerSuccessEmaileAppend }; + } + + @Get('registerError') + @ApiOperation({ summary: '注册失败页面' }) + @Render('registerError') + async registerError(@Query() parmas) { + const { message, teamName, registerFailEmailTitle, registerFailEmailTeamName } = parmas; + return { message, teamName, registerFailEmailTitle, registerFailEmailTeamName }; + } + + @Post('captcha') + @ApiOperation({ summary: '获取一个图形验证码' }) + async captcha(@Body() parmas) { + return this.authService.captcha(parmas); + } + + @Post('sendPhoneCode') + @ApiOperation({ summary: '发送手机验证码' }) + async sendPhoneCode(@Body() parmas: SendPhoneCodeDto) { + return this.authService.sendPhoneCode(parmas); + } +} diff --git a/service/src/modules/auth/auth.module.ts b/service/src/modules/auth/auth.module.ts new file mode 100644 index 0000000..d55965c --- /dev/null +++ b/service/src/modules/auth/auth.module.ts @@ -0,0 +1,60 @@ +import { VerifycationEntity } from '../verification/verifycation.entity'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { VerificationService } from '../verification/verification.service'; +import { MailerService } from '../mailer/mailer.service'; +import { ConfigService, ConfigModule } from 'nestjs-config'; +import { AuthController } from './auth.controller'; +import { Global, Module } from '@nestjs/common'; +import { AuthService } from './auth.service'; +import { UserModule } from '../user/user.module'; +import { PassportModule } from '@nestjs/passport'; +import { JwtModule } from '@nestjs/jwt'; +import { JwtStrategy } from '@/common/auth/jwt.strategy'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { BalanceEntity } from '../userBalance/balance.entity'; +import { AccountLogEntity } from '../userBalance/accountLog.entity'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { RedisCacheModule } from '../redisCache/redisCache.module'; +import { UserBalanceEntity } from '../userBalance/userBalance.entity'; +import { SalesUsersEntity } from '../sales/salesUsers.entity'; +import { UserEntity } from '../user/user.entity'; +import { WhiteListEntity } from '../chatgpt/whiteList.entity'; +import { FingerprintLogEntity } from '../userBalance/fingerprint.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; + +@Global() +@Module({ + imports: [ + UserModule, + PassportModule.register({ defaultStrategy: 'jwt' }), + JwtModule.registerAsync({ + useFactory: async (configService: ConfigService) => configService.get('jwt'), + inject: [ConfigService], + }), + TypeOrmModule.forFeature([ + VerifycationEntity, + BalanceEntity, + AccountLogEntity, + ConfigEntity, + CramiPackageEntity, + RedisCacheModule, + UserBalanceEntity, + SalesUsersEntity, + UserEntity, + WhiteListEntity, + FingerprintLogEntity, + ChatLogEntity, + ChatGroupEntity, + MidjourneyEntity + ]), + ], + controllers: [AuthController], + providers: [AuthService, JwtStrategy, JwtAuthGuard, MailerService, VerificationService, UserBalanceService, RedisCacheService], + exports: [AuthService], +}) +export class AuthModule {} diff --git a/service/src/modules/auth/auth.service.ts b/service/src/modules/auth/auth.service.ts new file mode 100644 index 0000000..3ccc09c --- /dev/null +++ b/service/src/modules/auth/auth.service.ts @@ -0,0 +1,274 @@ +import { LoginByPhoneDto } from './dto/loginByPhone.dt'; +import { GlobalConfigService } from '@/modules/globalConfig/globalConfig.service'; +import { VerifycationEntity } from '../verification/verifycation.entity'; +import { VerificationEnum } from '@/common/constants/verification.constant'; +import { VerificationService } from '../verification/verification.service'; +import { VerifyCodeDto } from '../verification/dto/verifyCode.dto'; +import { UserLoginDto } from './dto/authLogin.dto'; +import { UserEntity } from '../user/user.entity'; +import { Injectable, HttpException, HttpStatus, Logger, OnModuleInit } from '@nestjs/common'; +import { Request, Response } from 'express'; +import { JwtService } from '@nestjs/jwt'; +import { compareSync } from 'bcryptjs'; +import { UserService } from '../user/user.service'; +import { UserRegisterDto } from './dto/authRegister.dto'; +import { MailerService } from '../mailer/mailer.service'; +import { SentMessageInfo } from 'nodemailer'; +import { UserStatusEnum, UserStatusErrMsg } from '@/common/constants/user.constant'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { UpdatePasswordDto } from './dto/updatePassword.dto'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { In, Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; +import { createRandomCode, createRandomUid, getClientIp, isExpired } from '@/common/utils'; +import { VerificationUseStatusEnum } from '@/common/constants/status.constant'; +import * as os from 'os'; +import * as fetch from 'isomorphic-fetch'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { UpdatePassByOtherDto } from './dto/updatePassByOther.dto'; +import * as svgCaptcha from 'svg-captcha'; +import { SendPhoneCodeDto } from './dto/sendPhoneCode.dto'; +import { UserRegisterByPhoneDto } from './dto/userRegisterByPhone.dto'; +import * as bcrypt from 'bcryptjs'; +import { AdminLoginDto } from './dto/adminLogin.dto'; + +@Injectable() +export class AuthService { + private ipAddress: string; + + constructor( + @InjectRepository(ConfigEntity) + private readonly configEntity: Repository, + private userService: UserService, + private jwtService: JwtService, + private mailerService: MailerService, + private readonly verificationService: VerificationService, + private readonly userBalanceService: UserBalanceService, + private readonly redisCacheService: RedisCacheService, + private readonly globalConfigService: GlobalConfigService, + ) {} + + async onModuleInit() { + this.getIp(); + } + + async register(body: UserRegisterDto, req: Request) { + await this.verificationService.verifyCaptcha(body); + const user: UserEntity = await this.userService.createUserAndVerifycation(body, req); + const { username, email, client, id } = user; + const res: any = { username, email, id }; + client && (res.client = client); + return res; + } + + // TODO 通过手机号注册 + async registerByPhone(body: UserRegisterByPhoneDto, req: Request) { + const { username, password, phone, phoneCode, invitedBy } = body; + /* 校验账号是否重复 */ + await this.userService.verifyUserRegisterByPhone(body); + /* 创建mock email 由于初期简历的email为unqie 必须给用户一个默认的邮箱作为唯一身份 */ + /* 校验验证码是否过期 */ + const nameSpace = await this.globalConfigService.getNamespace(); + const key = `${nameSpace}:PHONECODE:${phone}`; + const redisPhoneCode = await this.redisCacheService.get({ key }); + if (!redisPhoneCode) { + throw new HttpException('验证码已过期、请重新发送!', HttpStatus.BAD_REQUEST); + } + if (phoneCode !== redisPhoneCode) { + throw new HttpException('验证码填写错误、请重新输入!', HttpStatus.BAD_REQUEST); + } + + /* 创建用户 */ + const email = `${createRandomUid()}@nine.com`; + const newUser: any = { username, password, phone, invitedBy, email, status: UserStatusEnum.ACTIVE }; + const userDefautlAvatar = await this.globalConfigService.getConfigs(['userDefautlAvatar']); + newUser.avatar = userDefautlAvatar; + const hashedPassword = bcrypt.hashSync(password, 10); + newUser.password = hashedPassword; + const u = await this.userService.createUser(newUser); + /* 如果有邀请人 给与充值奖励 */ + let inviteUser: UserEntity; + if (invitedBy) { + inviteUser = await this.userService.qureyUserInfoByInviteCode(invitedBy); + } + await this.userBalanceService.addBalanceToNewUser(u.id, inviteUser?.id); + return; + } + + async login(user: UserLoginDto, req: Request): Promise { + const u: UserEntity = await this.userService.verifyUserCredentials(user); + const { username, id, email, role, openId, client } = u; + const ip = getClientIp(req); + await this.userService.savaLoginIp(id, ip); + const token = await this.jwtService.sign({ username, id, email, role, openId, client }); + await this.redisCacheService.saveToken(id, token); + return token; + } + + async loginByPhone(body: LoginByPhoneDto, req: Request): Promise { + const u: UserEntity = await this.userService.verifyUserCredentials(body); + const { username, id, email, role, openId, client } = u; + const ip = getClientIp(req); + await this.userService.savaLoginIp(id, ip); + const { phone } = body; + const token = await this.jwtService.sign({ username, id, email, role, openId, client, phone }); + await this.redisCacheService.saveToken(id, token); + return token; + } + + async loginByOpenId(user: UserEntity, req: Request): Promise { + const { status } = user; + if (status !== UserStatusEnum.ACTIVE) { + throw new HttpException(UserStatusErrMsg[status], HttpStatus.BAD_REQUEST); + } + const { username, id, email, role, openId, client } = user; + const ip = getClientIp(req); + await this.userService.savaLoginIp(id, ip); + const token = await this.jwtService.sign({ username, id, email, role, openId, client }); + await this.redisCacheService.saveToken(id, token); + return token; + } + + async getInfo(req: Request) { + const { id } = req.user; + return await this.userService.getUserInfo(id); + } + + async activateAccount(params: VerifyCodeDto, res: Response) { + const emailConfigs = await this.configEntity.find({ + where: { + configKey: In([ + 'registerSuccessEmailTitle', + 'registerSuccessEmailTeamName', + 'registerSuccessEmaileAppend', + 'registerFailEmailTitle', + 'registerFailEmailTeamName', + ]), + }, + }); + const configMap: any = emailConfigs.reduce((pre, cur: any) => { + pre[cur.configKey] = cur.configVal; + return pre; + }, {}); + try { + const v: VerifycationEntity = await this.verificationService.verifyCode(params, VerificationEnum.Registration); + const { type, userId } = v; + if (type !== VerificationEnum.Registration) { + throw new HttpException('验证码类型错误', HttpStatus.BAD_REQUEST); + } + const status: number = await this.userService.getUserStatus(userId); + if (status === UserStatusEnum.ACTIVE) { + throw new HttpException('账户已被激活过', HttpStatus.BAD_REQUEST); + } + await this.userService.updateUserStatus(v.userId, UserStatusEnum.ACTIVE); + const u: UserEntity = await this.userService.queryUserInfoById(v.userId); + const { username, email, id, invitedBy } = u; + /* 如果用户填写了 invitedBy 邀请码 查到邀请人信息 */ + let inviteUser: UserEntity; + if (invitedBy) { + inviteUser = await this.userService.qureyUserInfoByInviteCode(invitedBy); + } + await this.userBalanceService.addBalanceToNewUser(id, inviteUser?.id); + res.redirect( + `/api/auth/registerSuccess?id=${id.toString().padStart(4, '0')}&username=${username}&email=${email}®isterSuccessEmailTitle=${ + configMap.registerSuccessEmailTitle + }®isterSuccessEmailTeamName=${configMap.registerSuccessEmailTeamName}®isterSuccessEmaileAppend=${ + configMap.registerSuccessEmaileAppend + }`, + ); + } catch (error) { + console.log('error: ', error); + const message = error.response; + res.redirect( + `/api/auth/registerError?message=${message}®isterFailEmailTitle=${configMap.registerFailEmailTitle}®isterFailEmailTeamName=${configMap.registerFailEmailTeamName}`, + ); + } + } + + async updatePassword(req: Request, body: UpdatePasswordDto) { + const { id, client, role } = req.user; + if (client && Number(client) > 0) { + throw new HttpException('无权此操作、请联系管理员!', HttpStatus.BAD_REQUEST); + } + if (role === 'admin') { + throw new HttpException('非法操作、请联系管理员!', HttpStatus.BAD_REQUEST); + } + const bool = await this.userService.verifyUserPassword(id, body.oldPassword); + if (!bool) { + throw new HttpException('旧密码错误、请检查提交', HttpStatus.BAD_REQUEST); + } + this.userService.updateUserPassword(id, body.password); + return '密码修改成功'; + } + + async updatePassByOther(req: Request, body: UpdatePassByOtherDto) { + const { id, client } = req.user; + if (!client) { + throw new HttpException('无权此操作!', HttpStatus.BAD_REQUEST); + } + this.userService.updateUserPassword(id, body.password); + return '密码修改成功'; + } + + getIp() { + let ipAddress: string; + const interfaces = os.networkInterfaces(); + Object.keys(interfaces).forEach((interfaceName) => { + const interfaceInfo = interfaces[interfaceName]; + for (let i = 0; i < interfaceInfo.length; i++) { + const alias = interfaceInfo[i]; + if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) { + ipAddress = alias.address; + break; + } + } + }); + this.ipAddress = ipAddress; + } + + async captcha(parmas) { + const nameSpace = await this.globalConfigService.getNamespace(); + const { color = '#fff' } = parmas; + const captcha = svgCaptcha.createMathExpr({ background: color, height: 34, width: 120, noise: 3 }); + const text = captcha.text; + const randomId = createRandomUid(); + const key = `${nameSpace}:CAPTCHA:${randomId}`; + await this.redisCacheService.set({ key, val: captcha.text }, 5 * 60); + return { + svgCode: captcha.data, + code: randomId, + }; + } + + /* 发送验证码 */ + async sendPhoneCode(body: SendPhoneCodeDto) { + await this.verificationService.verifyCaptcha(body); + const { phone } = body; + const nameSpace = await this.globalConfigService.getNamespace(); + const key = `${nameSpace}:PHONECODE:${phone}`; + + const ttl = await this.redisCacheService.ttl(key); + if (ttl && ttl > 0) { + throw new HttpException(`${ttl}秒内不得重复发送短信!`, HttpStatus.BAD_REQUEST); + } + const code = createRandomCode(); + const messageInfo = { phone, code }; + await this.verificationService.sendPhoneCode(messageInfo); + /* 记录发送的验证码是什么 */ + await this.redisCacheService.set({ key, val: code }, 1 * 60); + return '验证码发送成功、请填写验证码完成注册!'; + } + + /* create token */ + createTokenFromFingerprint(fingerprint) { + const token = this.jwtService.sign({ + username: `游客${fingerprint}`, + id: fingerprint, + email: `${fingerprint}@nine.com`, + role: 'visitor', + openId: null, + client: null, + }); + return token; + } +} diff --git a/service/src/modules/auth/dto/adminLogin.dto.ts b/service/src/modules/auth/dto/adminLogin.dto.ts new file mode 100644 index 0000000..863ae68 --- /dev/null +++ b/service/src/modules/auth/dto/adminLogin.dto.ts @@ -0,0 +1,18 @@ +import { IsNotEmpty, MinLength, MaxLength, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class AdminLoginDto { + @ApiProperty({ example: 'super', description: '邮箱' }) + @IsNotEmpty({ message: '用户名不能为空!' }) + @MinLength(2, { message: '用户名最短是两位数!' }) + @MaxLength(30, { message: '用户名最长不得超过30位!' }) + @IsOptional() + username?: string; + + @ApiProperty({ example: '999999', description: '密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; +} diff --git a/service/src/modules/auth/dto/authLogin.dto.ts b/service/src/modules/auth/dto/authLogin.dto.ts new file mode 100644 index 0000000..064318f --- /dev/null +++ b/service/src/modules/auth/dto/authLogin.dto.ts @@ -0,0 +1,22 @@ +import { IsNotEmpty, MinLength, MaxLength, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class UserLoginDto { + @ApiProperty({ example: 'super', description: '邮箱' }) + @IsNotEmpty({ message: '用户名不能为空!' }) + @MinLength(2, { message: '用户名最短是两位数!' }) + @MaxLength(30, { message: '用户名最长不得超过30位!' }) + @IsOptional() + username?: string; + + @ApiProperty({ example: 1, description: '用户ID' }) + @IsOptional() + uid?: number; + + @ApiProperty({ example: '999999', description: '密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; +} diff --git a/service/src/modules/auth/dto/authRegister.dto.ts b/service/src/modules/auth/dto/authRegister.dto.ts new file mode 100644 index 0000000..973aed4 --- /dev/null +++ b/service/src/modules/auth/dto/authRegister.dto.ts @@ -0,0 +1,46 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class UserRegisterDto { + @ApiProperty({ example: 'cooper', description: '用户名称' }) + @IsNotEmpty({ message: '用户名不能为空!' }) + @MinLength(2, { message: '用户名最低需要大于2位数!' }) + @MaxLength(12, { message: '用户名不得超过12位!' }) + username?: string; + + @ApiProperty({ example: '123456', description: '用户密码' }) + @IsNotEmpty({ message: '用户密码不能为空' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; + + @ApiProperty({ example: 'J_longyan@163.com', description: '用户邮箱' }) + @IsEmail({}, { message: '请填写正确格式的邮箱!' }) + @IsNotEmpty({ message: '邮箱不能为空!' }) + email: string; + + @ApiProperty({ example: '5k3n', description: '图形验证码' }) + @IsNotEmpty({ message: '验证码为空!' }) + captchaCode: string; + + @ApiProperty({ example: '2313ko423ko', description: '图形验证码KEY' }) + @IsNotEmpty({ message: '验证ID不能为空!' }) + captchaId: string; + + @ApiProperty({ example: 'FRJDLJHFNV', description: '用户填写的别人邀请码', required: false }) + @IsOptional() + invitedBy: string; + + @ApiProperty({ + example: 'https://public-1300678944.cos.ap-shanghai.myqcloud.com/blog/1682571295452image.png', + description: '用户头像', + required: false, + }) + @IsOptional() + avatar: string; + + @ApiProperty({ example: 'default', description: '用户注册来源', required: false }) + @IsOptional() + client: string; +} diff --git a/service/src/modules/auth/dto/loginByPhone.dt.ts b/service/src/modules/auth/dto/loginByPhone.dt.ts new file mode 100644 index 0000000..c888b64 --- /dev/null +++ b/service/src/modules/auth/dto/loginByPhone.dt.ts @@ -0,0 +1,16 @@ +import { IsNotEmpty, MinLength, MaxLength, IsOptional, IsPhoneNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class LoginByPhoneDto { + @ApiProperty({ example: '19999999', description: '手机号' }) + @IsNotEmpty({ message: '手机号不能为空!' }) + @IsPhoneNumber('CN', { message: '手机号格式不正确!' }) + phone?: string; + + @ApiProperty({ example: '999999', description: '密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; +} diff --git a/service/src/modules/auth/dto/sendPhoneCode.dto.ts b/service/src/modules/auth/dto/sendPhoneCode.dto.ts new file mode 100644 index 0000000..e88a4a5 --- /dev/null +++ b/service/src/modules/auth/dto/sendPhoneCode.dto.ts @@ -0,0 +1,19 @@ +import { IsNotEmpty, MinLength, MaxLength, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class SendPhoneCodeDto { + @ApiProperty({ example: '199999999', description: '手机号' }) + @IsNotEmpty({ message: '手机号不能为空' }) + @MinLength(11, { message: '手机号长度为11位' }) + @MaxLength(11, { message: '手机号长度为11位!' }) + phone?: string; + + @ApiProperty({ example: '2b4i1b4', description: '图形验证码KEY' }) + @IsNotEmpty({ message: '验证码KEY不能为空' }) + captchaId?: string; + + @ApiProperty({ example: '1g4d', description: '图形验证码' }) + @IsNotEmpty({ message: '验证码不能为空' }) + captchaCode?: string; +} diff --git a/service/src/modules/auth/dto/updatePassByOther.dto.ts b/service/src/modules/auth/dto/updatePassByOther.dto.ts new file mode 100644 index 0000000..148b393 --- /dev/null +++ b/service/src/modules/auth/dto/updatePassByOther.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class UpdatePassByOtherDto { + @ApiProperty({ example: '666666', description: '三方用户更新新密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; +} diff --git a/service/src/modules/auth/dto/updatePassword.dto.ts b/service/src/modules/auth/dto/updatePassword.dto.ts new file mode 100644 index 0000000..9798409 --- /dev/null +++ b/service/src/modules/auth/dto/updatePassword.dto.ts @@ -0,0 +1,16 @@ +import { IsNotEmpty, MinLength, MaxLength } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class UpdatePasswordDto { + @ApiProperty({ example: '123456', description: '用户旧密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + oldPassword: string; + + @ApiProperty({ example: '666666', description: '用户更新新密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; +} diff --git a/service/src/modules/auth/dto/userRegisterByPhone.dto.ts b/service/src/modules/auth/dto/userRegisterByPhone.dto.ts new file mode 100644 index 0000000..7762f74 --- /dev/null +++ b/service/src/modules/auth/dto/userRegisterByPhone.dto.ts @@ -0,0 +1,30 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsPhoneNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class UserRegisterByPhoneDto { + @ApiProperty({ example: 'cooper', description: '用户名称' }) + @IsNotEmpty({ message: '用户名不能为空!' }) + @MinLength(2, { message: '用户名最低需要大于2位数!' }) + @MaxLength(12, { message: '用户名不得超过12位!' }) + username?: string; + + @ApiProperty({ example: '123456', description: '用户密码' }) + @IsNotEmpty({ message: '用户密码不能为空' }) + @MinLength(6, { message: '用户密码最低需要大于6位数!' }) + @MaxLength(30, { message: '用户密码最长不能超过30位数!' }) + password: string; + + @ApiProperty({ example: '19999999999', description: '用户手机号码' }) + @IsPhoneNumber('CN', { message: '手机号码格式不正确!' }) + @IsNotEmpty({ message: '手机号码不能为空!' }) + phone: string; + + @ApiProperty({ example: '152546', description: '手机验证码' }) + @IsNotEmpty({ message: '手机验证码不能为空!' }) + phoneCode: string; + + @ApiProperty({ example: 'SNINE', description: '用户邀请码', required: true }) + @IsOptional() + invitedBy: string; +} diff --git a/service/src/modules/autoreply/autoreplay.entity.ts b/service/src/modules/autoreply/autoreplay.entity.ts new file mode 100644 index 0000000..4d9525b --- /dev/null +++ b/service/src/modules/autoreply/autoreplay.entity.ts @@ -0,0 +1,14 @@ +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'auto_reply' }) +export class AutoReplyEntity extends BaseEntity { + @Column({ comment: '提问的问题', type: 'text' }) + prompt: string; + + @Column({ comment: '定义的答案', type: 'text' }) + answer: string; + + @Column({ default: 1, comment: '启用当前自动回复状态, 0:关闭 1:启用' }) + status: number; +} diff --git a/service/src/modules/autoreply/autoreply.controller.ts b/service/src/modules/autoreply/autoreply.controller.ts new file mode 100644 index 0000000..dfc2c32 --- /dev/null +++ b/service/src/modules/autoreply/autoreply.controller.ts @@ -0,0 +1,47 @@ +import { AutoreplyService } from './autoreply.service'; +import { Body, Controller, Get, Post, Query, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { QueryAutoReplyDto } from './dto/queryAutoReply.dto'; +import { AddAutoReplyDto } from './dto/addAutoReply.dto'; +import { UpdateAutpReplyDto } from './dto/updateAutoReply.dto'; +import { DelAutoReplyDto } from './dto/delBadWords.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; + +@ApiTags('autoreply') +@Controller('autoreply') +export class AutoreplyController { + constructor(private readonly autoreplyService: AutoreplyService) {} + + @Get('query') + @ApiOperation({ summary: '查询自动回复' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + queryAutoreply(@Query() query: QueryAutoReplyDto) { + return this.autoreplyService.queryAutoreply(query); + } + + @Post('add') + @ApiOperation({ summary: '添加自动回复' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + addAutoreply(@Body() body: AddAutoReplyDto) { + return this.autoreplyService.addAutoreply(body); + } + + @Post('update') + @ApiOperation({ summary: '修改自动回复' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + updateAutoreply(@Body() body: UpdateAutpReplyDto) { + return this.autoreplyService.updateAutoreply(body); + } + + @Post('del') + @ApiOperation({ summary: '删除自动回复' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delAutoreply(@Body() body: DelAutoReplyDto) { + return this.autoreplyService.delAutoreply(body); + } +} diff --git a/service/src/modules/autoreply/autoreply.module.ts b/service/src/modules/autoreply/autoreply.module.ts new file mode 100644 index 0000000..3c21a71 --- /dev/null +++ b/service/src/modules/autoreply/autoreply.module.ts @@ -0,0 +1,14 @@ +import { Global, Module } from '@nestjs/common'; +import { AutoreplyController } from './autoreply.controller'; +import { AutoreplyService } from './autoreply.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { AutoReplyEntity } from './autoreplay.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([AutoReplyEntity])], + controllers: [AutoreplyController], + providers: [AutoreplyService], + exports: [AutoreplyService], +}) +export class AutoreplyModule {} diff --git a/service/src/modules/autoreply/autoreply.service.ts b/service/src/modules/autoreply/autoreply.service.ts new file mode 100644 index 0000000..cf65cfb --- /dev/null +++ b/service/src/modules/autoreply/autoreply.service.ts @@ -0,0 +1,87 @@ +import { HttpException, HttpStatus, Injectable, OnModuleInit } from '@nestjs/common'; +import { QueryAutoReplyDto } from './dto/queryAutoReply.dto'; +import { AutoReplyEntity } from './autoreplay.entity'; +import { Like, Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; +import { AddAutoReplyDto } from './dto/addAutoReply.dto'; +import { UpdateAutpReplyDto } from './dto/updateAutoReply.dto'; +import { DelAutoReplyDto } from './dto/delBadWords.dto'; + +@Injectable() +export class AutoreplyService implements OnModuleInit { + private autoReplyKes: string[] = []; + private autoReplyMap = {}; + private autoReplyFuzzyMatch = true; + constructor( + @InjectRepository(AutoReplyEntity) + private readonly autoReplyEntity: Repository, + ) {} + + async onModuleInit() { + this.loadAutoReplyList(); + } + + async loadAutoReplyList() { + const res = await this.autoReplyEntity.find({ where: { status: 1 }, select: ['prompt', 'answer'] }); + this.autoReplyMap = {}; + res.forEach((t) => (this.autoReplyMap[t.prompt] = t.answer)); + this.autoReplyKes = Object.keys(this.autoReplyMap); + } + + async checkAutoReply(prompt: string) { + let question = prompt; + if (this.autoReplyFuzzyMatch) { + question = this.autoReplyKes.find((item) => item.includes(prompt)); + } + return question ? this.autoReplyMap[question] : ''; + } + + async queryAutoreply(query: QueryAutoReplyDto) { + const { page = 1, size = 10, prompt, status } = query; + const where: any = {}; + [0, 1, '0', '1'].includes(status) && (where.status = status); + prompt && (where.prompt = Like(`%${prompt}%`)); + const [rows, count] = await this.autoReplyEntity.findAndCount({ + where, + skip: (page - 1) * size, + take: size, + order: { id: 'DESC' }, + }); + return { rows, count }; + } + + async addAutoreply(body: AddAutoReplyDto) { + const { prompt } = body; + const a = await this.autoReplyEntity.findOne({ where: { prompt } }); + if (a) { + throw new HttpException('该问题已存在,请检查您的提交信息', HttpStatus.BAD_REQUEST); + } + await this.autoReplyEntity.save(body); + await this.loadAutoReplyList(); + return '添加问题成功!'; + } + + async updateAutoreply(body: UpdateAutpReplyDto) { + const { id } = body; + const res = await this.autoReplyEntity.update({ id }, body); + if (res.affected > 0) { + await this.loadAutoReplyList(); + return '更新问题成功'; + } + throw new HttpException('更新失败', HttpStatus.BAD_REQUEST); + } + + async delAutoreply(body: DelAutoReplyDto) { + const { id } = body; + const z = await this.autoReplyEntity.findOne({ where: { id } }); + if (!z) { + throw new HttpException('该问题不存在,请检查您的提交信息', HttpStatus.BAD_REQUEST); + } + const res = await this.autoReplyEntity.delete({ id }); + if (res.affected > 0) { + await this.loadAutoReplyList(); + return '删除问题成功'; + } + throw new HttpException('删除失败', HttpStatus.BAD_REQUEST); + } +} diff --git a/service/src/modules/autoreply/dto/addAutoReply.dto.ts b/service/src/modules/autoreply/dto/addAutoReply.dto.ts new file mode 100644 index 0000000..f8029e5 --- /dev/null +++ b/service/src/modules/autoreply/dto/addAutoReply.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class AddAutoReplyDto { + @ApiProperty({ example: '你是谁', description: '提问的问题', required: true }) + prompt: string; + + @ApiProperty({ example: '我是NineAi提供的Ai服务机器人', description: '回答的答案', required: true }) + answer: string; +} diff --git a/service/src/modules/autoreply/dto/delBadWords.dto.ts b/service/src/modules/autoreply/dto/delBadWords.dto.ts new file mode 100644 index 0000000..4e52128 --- /dev/null +++ b/service/src/modules/autoreply/dto/delBadWords.dto.ts @@ -0,0 +1,7 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class DelAutoReplyDto { + @ApiProperty({ example: 1, description: '自动回复id', required: true }) + id: number; +} diff --git a/service/src/modules/autoreply/dto/queryAutoReply.dto.ts b/service/src/modules/autoreply/dto/queryAutoReply.dto.ts new file mode 100644 index 0000000..30011d2 --- /dev/null +++ b/service/src/modules/autoreply/dto/queryAutoReply.dto.ts @@ -0,0 +1,20 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryAutoReplyDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: '你是谁', description: '提问问题', required: false }) + @IsOptional() + prompt: string; + + @ApiProperty({ example: 1, description: '问题状态', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/autoreply/dto/updateAutoReply.dto.ts b/service/src/modules/autoreply/dto/updateAutoReply.dto.ts new file mode 100644 index 0000000..f1d74c4 --- /dev/null +++ b/service/src/modules/autoreply/dto/updateAutoReply.dto.ts @@ -0,0 +1,20 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class UpdateAutpReplyDto { + @ApiProperty({ example: 1, description: '自动回复id', required: true }) + @IsOptional() + id: number; + + @ApiProperty({ example: '你可以干嘛', description: '问题', required: false }) + @IsOptional() + prompt: string; + + @ApiProperty({ example: '我可以干很多事情.......', description: '答案', required: false }) + @IsOptional() + answer: string; + + @ApiProperty({ example: 0, description: '状态', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/badwords/badwords.controller.ts b/service/src/modules/badwords/badwords.controller.ts new file mode 100644 index 0000000..eda0319 --- /dev/null +++ b/service/src/modules/badwords/badwords.controller.ts @@ -0,0 +1,56 @@ +import { BadwordsService } from './badwords.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { QueryBadWordsDto } from './dto/queryBadWords.dto'; +import { QueryViolationDto } from './dto/queryViolation.dto'; +import { UpdateBadWordsDto } from './dto/updateBadWords.dto'; +import { DelBadWordsDto } from './dto/delBadWords.dto'; +import { AddBadWordDto } from './dto/addBadWords.dto'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { Admin } from 'typeorm'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { Request } from 'express'; + +@ApiTags('badWords') +@Controller('badwords') +export class BadwordsController { + constructor(private readonly badwordsService: BadwordsService) {} + + @Get('query') + @ApiOperation({ summary: '查询所有敏感词' }) + queryBadWords(@Query() query: QueryBadWordsDto) { + return this.badwordsService.queryBadWords(query); + } + + @Post('del') + @ApiOperation({ summary: '删除敏感词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delBadWords(@Body() body: DelBadWordsDto) { + return this.badwordsService.delBadWords(body); + } + + @Post('update') + @ApiOperation({ summary: '更新敏感词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + updateBadWords(@Body() body: UpdateBadWordsDto) { + return this.badwordsService.updateBadWords(body); + } + + @Post('add') + @ApiOperation({ summary: '新增敏感词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + addBadWord(@Body() body: AddBadWordDto) { + return this.badwordsService.addBadWord(body); + } + + @Get('violation') + @ApiOperation({ summary: '查询违规记录' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + violation(@Req() req: Request, @Query() query: QueryViolationDto) { + return this.badwordsService.violation(req, query); + } +} diff --git a/service/src/modules/badwords/badwords.entity.ts b/service/src/modules/badwords/badwords.entity.ts new file mode 100644 index 0000000..93fbb77 --- /dev/null +++ b/service/src/modules/badwords/badwords.entity.ts @@ -0,0 +1,14 @@ +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'bad_words' }) +export class BadWordsEntity extends BaseEntity { + @Column({ length: 20, comment: '敏感词' }) + word: string; + + @Column({ default: 1, comment: '敏感词开启状态' }) + status: number; + + @Column({ default: 0, comment: '敏感词触发次数' }) + count: number; +} diff --git a/service/src/modules/badwords/badwords.module.ts b/service/src/modules/badwords/badwords.module.ts new file mode 100644 index 0000000..5274ade --- /dev/null +++ b/service/src/modules/badwords/badwords.module.ts @@ -0,0 +1,16 @@ +import { Global, Module } from '@nestjs/common'; +import { BadwordsService } from './badwords.service'; +import { BadwordsController } from './badwords.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { BadWordsEntity } from './badwords.entity'; +import { ViolationLogEntity } from './violationLog.entity'; +import { UserEntity } from '../user/user.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([BadWordsEntity, ViolationLogEntity, UserEntity])], + providers: [BadwordsService], + controllers: [BadwordsController], + exports: [BadwordsService], +}) +export class BadwordsModule {} diff --git a/service/src/modules/badwords/badwords.service.ts b/service/src/modules/badwords/badwords.service.ts new file mode 100644 index 0000000..2b996fd --- /dev/null +++ b/service/src/modules/badwords/badwords.service.ts @@ -0,0 +1,239 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { HttpException, HttpStatus, Injectable, OnModuleInit } from '@nestjs/common'; +import { BadWordsEntity } from './badwords.entity'; +import { In, Like, Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; +import { QueryBadWordsDto } from './dto/queryBadWords.dto'; +import { UpdateBadWordsDto } from './dto/updateBadWords.dto'; +import { DelBadWordsDto } from './dto/delBadWords.dto'; +import { AddBadWordDto } from './dto/addBadWords.dto'; +import axios from 'axios'; +import { ViolationLogEntity } from './violationLog.entity'; +import { UserEntity } from '../user/user.entity'; +import { hideString } from '@/common/utils'; + +@Injectable() +export class BadwordsService implements OnModuleInit { + private badWords: string[]; + constructor( + @InjectRepository(BadWordsEntity) + private readonly badWordsEntity: Repository, + @InjectRepository(ViolationLogEntity) + private readonly violationLogEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + private readonly globalConfigService: GlobalConfigService, + ) { + this.badWords = []; + } + + async onModuleInit() { + this.loadBadWords(); + } + + /* 敏感词匹配 */ + async customSensitiveWords(content, userId) { + const triggeredWords = []; + for (let i = 0; i < this.badWords.length; i++) { + const word = this.badWords[i]; + if (content.includes(word)) { + triggeredWords.push(word); + } + } + if (triggeredWords.length) { + await this.recordUserBadWords(userId, content, triggeredWords, ['自定义'], '自定义检测'); + const tips = `您提交的信息中包含违规的内容、我们已对您的账户进行标记、请合规使用!`; + throw new HttpException(tips, HttpStatus.BAD_REQUEST); + } + } + + /* 敏感词检测 先检测百度敏感词 后检测自定义的 */ + async checkBadWords(content: string, userId: number) { + const config = await this.globalConfigService.getSensitiveConfig(); + /* 如果有则启动配置检测 没有则跳过 */ + if (config) { + await this.checkBadWordsByConfig(content, config, userId); + } + /* 自定义敏感词检测 */ + await this.customSensitiveWords(content, userId); + } + + /* 通过配置信息去检测敏感词 */ + async checkBadWordsByConfig(content: string, config: any, userId) { + const { useType } = config; + useType === 'baidu' && (await this.baiduCheckBadWords(content, config.baiduTextAccessToken, userId)); + useType === 'nineai' && (await this.nineaiCheckBadWords(content, config, userId)); + } + + /* 提取百度云敏感词违规类型 */ + extractContent(str) { + const pattern = /存在(.*?)不合规/; + const match = str.match(pattern); + return match ? match[1] : ''; + } + + /* 通过百度云敏感词检测 */ + async baiduCheckBadWords(content: string, accessToken: string, userId: number) { + if (!accessToken) return; + const url = `https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=${accessToken}}`; + const headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + Accept: 'application/json', + }; + const response = await axios.post(url, { text: content }, { headers }); + const { conclusion, error_code, error_msg, conclusionType, data } = response.data; + if (error_code) { + console.log('百度文本检测出现错误、请查看配置信息: ', error_msg); + } + // conclusion 审核结果,可取值:合规、不合规、疑似、审核失败 + // conclusionType 1.合规,2.不合规,3.疑似,4.审核失败 + if (conclusionType !== 1) { + const types = [...new Set(data.map((item) => this.extractContent(item.msg)))]; + await this.recordUserBadWords(userId, content, ['***'], types, '百度云检测'); + const tips = `您提交的信息中包含${types.join(',')}的内容、我们已对您的账户进行标记、请合规使用!`; + throw new HttpException(tips, HttpStatus.BAD_REQUEST); + } + } + + /* 通过nineai提供的敏感词检测 */ + async nineaiCheckBadWords(content: string, config: any, userId) { + const { nineaiBuiltInSensitiveApiBase, nineaiBuiltInSensitiveAuthKey } = config; + if (!nineaiBuiltInSensitiveApiBase || !nineaiBuiltInSensitiveAuthKey) return; + const res = await axios.post( + nineaiBuiltInSensitiveApiBase, + { content }, + { headers: { 'Content-Type': 'application/json', Authorization: nineaiBuiltInSensitiveAuthKey } }, + ); + if (!res.data) return; + if (res.data.code !== '0') { + const { msg = '检测失败' } = res.data; + throw new HttpException(`敏感词检测 | ${msg}`, HttpStatus.BAD_REQUEST); + } + if (res.data.word_list && res.data.word_list?.length) { + const words = [...new Set(res.data.word_list.map((t) => t.keyword))]; + const types = [...new Set(res.data.word_list.map((t) => t.category))]; + await this.recordUserBadWords(userId, content, words, types, 'NineAi检测'); + const tips = this.formarTips(res.data.word_list); + throw new HttpException(tips, HttpStatus.BAD_REQUEST); + } + } + + /* formarTips */ + formarTips(wordList) { + const categorys = wordList.map((t) => t.category); + const unSet = [...new Set(categorys)]; + return `您提交的内容中包含${unSet.join(',')}的信息、我们已对您账号进行标记、请合规使用!`; + } + + /* 加载自定义的敏感词 */ + async loadBadWords() { + const data = await this.badWordsEntity.find({ where: { status: 1 }, select: ['word'] }); + this.badWords = data.map((t) => t.word); + } + + /* 查询自定义的敏感词 */ + async queryBadWords(query: QueryBadWordsDto) { + const { page = 1, size = 500, word, status } = query; + const where: any = {}; + [0, 1, '0', '1'].includes(status) && (where.status = status); + word && (where.word = Like(`%${word}%`)); + const [rows, count] = await this.badWordsEntity.findAndCount({ + where, + skip: (page - 1) * size, + take: size, + order: { id: 'ASC' }, + }); + return { rows, count }; + } + + /* 删除自定义敏感词 */ + async delBadWords(body: DelBadWordsDto) { + const b = await this.badWordsEntity.findOne({ where: { id: body.id } }); + if (!b) { + throw new HttpException('敏感词不存在,请检查您的提交信息', HttpStatus.BAD_REQUEST); + } + const res = await this.badWordsEntity.delete({ id: body.id }); + if (res.affected > 0) { + await this.loadBadWords(); + return '删除敏感词成功'; + } else { + throw new HttpException('删除敏感词失败', HttpStatus.BAD_REQUEST); + } + } + + /* 修改自定义敏感词 */ + async updateBadWords(body: UpdateBadWordsDto) { + const { id, word, status } = body; + const b = await this.badWordsEntity.findOne({ where: { word } }); + if (b) { + throw new HttpException('敏感词已经存在了、请勿重复添加', HttpStatus.BAD_REQUEST); + } + const res = await this.badWordsEntity.update({ id }, { word, status }); + if (res.affected > 0) { + await this.loadBadWords(); + return '更新敏感词成功'; + } else { + throw new HttpException('更新敏感词失败', HttpStatus.BAD_REQUEST); + } + } + + async addBadWord(body: AddBadWordDto) { + const { word } = body; + const b = await this.badWordsEntity.findOne({ where: { word } }); + if (b) { + throw new HttpException('敏感词已存在,请检查您的提交信息', HttpStatus.BAD_REQUEST); + } + await this.badWordsEntity.save({ word }); + await this.loadBadWords(); + return '添加敏感词成功'; + } + + /* 记录用户违规次数内容 */ + async recordUserBadWords(userId, content, words, typeCn, typeOriginCn) { + const data = { + userId, + content, + words: JSON.stringify(words), + typeCn: JSON.stringify(typeCn), + typeOriginCn, + }; + try { + await this.userEntity + .createQueryBuilder() + .update(UserEntity) + .set({ violationCount: () => 'violationCount + 1' }) + .where('id = :userId', { userId }) + .execute(); + await this.violationLogEntity.save(data); + } catch (error) { + console.log('error: ', error); + } + } + + /* 违规记录 */ + async violation(req, query) { + const { role } = req.user; + const { page = 1, size = 10, userId, typeOriginCn } = query; + const where = {}; + userId && (where['userId'] = userId); + typeOriginCn && (where['typeOriginCn'] = typeOriginCn); + const [rows, count] = await this.violationLogEntity.findAndCount({ + where, + skip: (page - 1) * size, + take: size, + order: { id: 'DESC' }, + }); + const userIds = [...new Set(rows.map((t) => t.userId))]; + const usersInfo = await this.userEntity.find({ + where: { id: In(userIds) }, + select: ['id', 'avatar', 'username', 'email', 'violationCount', 'status'], + }); + rows.forEach((t: any) => { + const user: any = usersInfo.find((u) => u.id === t.userId); + role !== 'super' && (user.email = hideString(user.email)); + t.userInfo = user; + }); + + return { rows, count }; + } +} diff --git a/service/src/modules/badwords/dto/addBadWords.dto.ts b/service/src/modules/badwords/dto/addBadWords.dto.ts new file mode 100644 index 0000000..9ee741d --- /dev/null +++ b/service/src/modules/badwords/dto/addBadWords.dto.ts @@ -0,0 +1,7 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class AddBadWordDto { + @ApiProperty({ example: 'test', description: '敏感词', required: true }) + word: string; +} diff --git a/service/src/modules/badwords/dto/delBadWords.dto.ts b/service/src/modules/badwords/dto/delBadWords.dto.ts new file mode 100644 index 0000000..a72f458 --- /dev/null +++ b/service/src/modules/badwords/dto/delBadWords.dto.ts @@ -0,0 +1,7 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class DelBadWordsDto { + @ApiProperty({ example: 1, description: '敏感词id', required: true }) + id: number; +} diff --git a/service/src/modules/badwords/dto/queryBadWords.dto.ts b/service/src/modules/badwords/dto/queryBadWords.dto.ts new file mode 100644 index 0000000..bf4e294 --- /dev/null +++ b/service/src/modules/badwords/dto/queryBadWords.dto.ts @@ -0,0 +1,20 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryBadWordsDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 'test', description: '敏感词内容', required: false }) + @IsOptional() + word: string; + + @ApiProperty({ example: 1, description: '关键词状态', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/badwords/dto/queryViolation.dto.ts b/service/src/modules/badwords/dto/queryViolation.dto.ts new file mode 100644 index 0000000..3e857cb --- /dev/null +++ b/service/src/modules/badwords/dto/queryViolation.dto.ts @@ -0,0 +1,20 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryViolationDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 1, description: '用户ID', required: false }) + @IsOptional() + userId: number; + + @ApiProperty({ example: '百度云检测', description: '检测平台来源', required: false }) + @IsOptional() + typeOriginCn: string; +} diff --git a/service/src/modules/badwords/dto/updateBadWords.dto.ts b/service/src/modules/badwords/dto/updateBadWords.dto.ts new file mode 100644 index 0000000..c7ee01c --- /dev/null +++ b/service/src/modules/badwords/dto/updateBadWords.dto.ts @@ -0,0 +1,16 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class UpdateBadWordsDto { + @ApiProperty({ example: 1, description: '敏感词id', required: true }) + @IsOptional() + id: number; + + @ApiProperty({ example: 'test', description: '敏感词内容', required: false }) + @IsOptional() + word: string; + + @ApiProperty({ example: 1, description: '关键词状态', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/badwords/violationLog.entity.ts b/service/src/modules/badwords/violationLog.entity.ts new file mode 100644 index 0000000..fd3c541 --- /dev/null +++ b/service/src/modules/badwords/violationLog.entity.ts @@ -0,0 +1,20 @@ +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'violation_log' }) +export class ViolationLogEntity extends BaseEntity { + @Column({ comment: '用户id' }) + userId: number; + + @Column({ comment: '违规内容', type: 'text' }) + content: string; + + @Column({ comment: '敏感词', type: 'text' }) + words: string; + + @Column({ comment: '违规类型' }) + typeCn: string; + + @Column({ comment: '违规检测失败于哪个平台' }) + typeOriginCn: string; +} diff --git a/service/src/modules/chatGroup/chatGroup.controller.ts b/service/src/modules/chatGroup/chatGroup.controller.ts new file mode 100644 index 0000000..30684ef --- /dev/null +++ b/service/src/modules/chatGroup/chatGroup.controller.ts @@ -0,0 +1,54 @@ +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { ChatGroupService } from './chatGroup.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { CreateGroupDto } from './dto/createGroup.dto'; +import { Request } from 'express'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { DelGroupDto } from './dto/delGroup.dto'; +import { UpdateGroupDto } from './dto/updateGroup.dto'; + +@ApiTags('group') +@Controller('group') +export class ChatGroupController { + constructor(private readonly chatGroupService: ChatGroupService) {} + + @Post('create') + @ApiOperation({ summary: '创建对话组' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + create(@Body() body: CreateGroupDto, @Req() req: Request) { + return this.chatGroupService.create(body, req); + } + + @Get('query') + @ApiOperation({ summary: '查询对话组' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + query(@Req() req: Request) { + return this.chatGroupService.query(req); + } + + @Post('update') + @ApiOperation({ summary: '更新对话组' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + update(@Body() body: UpdateGroupDto, @Req() req: Request) { + return this.chatGroupService.update(body, req); + } + + @Post('del') + @ApiOperation({ summary: '删除对话组' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + del(@Body() body: DelGroupDto, @Req() req: Request) { + return this.chatGroupService.del(body, req); + } + + @Post('delAll') + @ApiOperation({ summary: '删除对话组' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + delAll(@Req() req: Request) { + return this.chatGroupService.delAll(req); + } +} diff --git a/service/src/modules/chatGroup/chatGroup.entity.ts b/service/src/modules/chatGroup/chatGroup.entity.ts new file mode 100644 index 0000000..2f80bce --- /dev/null +++ b/service/src/modules/chatGroup/chatGroup.entity.ts @@ -0,0 +1,24 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'chat_group' }) +export class ChatGroupEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '是否置顶聊天', type: 'boolean', default: false }) + isSticky: boolean; + + @Column({ comment: '分组名称', nullable: true }) + title: string; + + @Column({ comment: '应用ID', nullable: true }) + appId: number; + + @Column({ comment: '是否删除了', default: false }) + isDelete: boolean; + + @Column({ comment: '配置', nullable: true, default: null, type: 'text' }) + config: string; +} diff --git a/service/src/modules/chatGroup/chatGroup.module.ts b/service/src/modules/chatGroup/chatGroup.module.ts new file mode 100644 index 0000000..9490e2d --- /dev/null +++ b/service/src/modules/chatGroup/chatGroup.module.ts @@ -0,0 +1,17 @@ +import { Global, Module } from '@nestjs/common'; +import { ChatGroupController } from './chatGroup.controller'; +import { ChatGroupService } from './chatGroup.service'; +import { Type } from 'class-transformer'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ChatGroupEntity } from './chatGroup.entity'; +import { AppEntity } from '../app/app.entity'; +import { ModelsEntity } from '../models/models.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([ChatGroupEntity, AppEntity])], + controllers: [ChatGroupController], + providers: [ChatGroupService], + exports: [ChatGroupService] +}) +export class ChatGroupModule {} diff --git a/service/src/modules/chatGroup/chatGroup.service.ts b/service/src/modules/chatGroup/chatGroup.service.ts new file mode 100644 index 0000000..f668651 --- /dev/null +++ b/service/src/modules/chatGroup/chatGroup.service.ts @@ -0,0 +1,129 @@ +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { CreateGroupDto } from './dto/createGroup.dto'; +import { Request } from 'express'; +import { DelGroupDto } from './dto/delGroup.dto'; +import { ChatGroupEntity } from './chatGroup.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { In, Repository } from 'typeorm'; +import { UpdateGroupDto } from './dto/updateGroup.dto'; +import { AppEntity } from '../app/app.entity'; +import { ModelsService } from '../models/models.service' + +@Injectable() +export class ChatGroupService { + constructor( + @InjectRepository(ChatGroupEntity) + private readonly chatGroupEntity: Repository, + @InjectRepository(AppEntity) + private readonly appEntity: Repository, + private readonly modelsService: ModelsService + ) {} + + async create(body: CreateGroupDto, req: Request) { + const { id } = req.user; + const { appId } = body; + const params = { title: '新对话', userId: id }; + if (appId) { + const appInfo = await this.appEntity.findOne({ where: { id: appId } }); + if (!appInfo) { + throw new HttpException('非法操作、您在使用一个不存在的应用!', HttpStatus.BAD_REQUEST); + } else { + const { status, name } = appInfo; + const g = await this.chatGroupEntity.count({ where: { userId: id, appId, isDelete: false } }); + if (g > 0) { + throw new HttpException('当前应用已经开启了一个对话无需新建了!', HttpStatus.BAD_REQUEST); + } + if (![1, 3, 4, 5].includes(status)) { + throw new HttpException('非法操作、您在使用一个未启用的应用!', HttpStatus.BAD_REQUEST); + } + name && (params['title'] = name); + appId && (params['appId'] = appId); + } + } + const modelConfig: any = await this.modelsService.getBaseConfig(appId) + appId && (modelConfig.appId = appId) + if(!modelConfig){ + throw new HttpException('管理员未配置任何AI模型、请先联系管理员开通聊天模型配置!', HttpStatus.BAD_REQUEST) + } + return await this.chatGroupEntity.save({...params, config: JSON.stringify(modelConfig)}); + } + + async query(req: Request) { + try { + const { id } = req.user; + const params = { userId: id, isDelete: false }; + const res = await this.chatGroupEntity.find({ where: params, order: { isSticky: 'DESC', id: 'DESC' } }); + const appIds = res.filter( t => t.appId).map( t => t.appId) + const appInfos = await this.appEntity.find({where: { id: In(appIds)}}) + return res.map( (item: any) => { + item.appLogo = appInfos.find( t => t.id === item.appId)?.coverImg + return item + }) + } catch (error) { + console.log('error: ', error); + + } + } + + async update(body: UpdateGroupDto, req: Request) { + const { title, isSticky, groupId, config } = body; + const { id } = req.user; + const g = await this.chatGroupEntity.findOne({ where: { id: groupId, userId: id } }); + if (!g) { + throw new HttpException('请先选择一个对话或者新加一个对话再操作!', HttpStatus.BAD_REQUEST); + } + const { appId } = g; + if (appId && !title) { + try { + const parseData = JSON.parse(config) + if(Number(parseData.keyType) !== 1){ + throw new HttpException('应用对话名称不能修改哟!', HttpStatus.BAD_REQUEST); + } + } catch (error) { + // ignore + } + } + const data = {}; + title && (data['title'] = title); + typeof isSticky !== 'undefined' && (data['isSticky'] = isSticky); + config && (data['config'] = config) + const u = await this.chatGroupEntity.update({ id: groupId }, data); + if (u.affected) { + return true; + } else { + throw new HttpException('更新对话失败!', HttpStatus.BAD_REQUEST); + } + } + + async del(body: DelGroupDto, req: Request) { + const { groupId } = body; + const { id } = req.user; + const g = await this.chatGroupEntity.findOne({ where: { id: groupId, userId: id } }); + if (!g) { + throw new HttpException('非法操作、您在删除一个非法资源!', HttpStatus.BAD_REQUEST); + } + const r = await this.chatGroupEntity.update({ id: groupId }, { isDelete: true }); + if (r.affected) { + return '删除成功'; + } else { + throw new HttpException('删除失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 删除非置顶开启的所有对话记录 */ + async delAll(req: Request) { + const { id } = req.user; + const r = await this.chatGroupEntity.update({ userId: id, isSticky: false, isDelete: false }, { isDelete: true }); + if (r.affected) { + return '删除成功'; + } else { + throw new HttpException('删除失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 通过groupId查询当前对话组的详细信息 */ + async getGroupInfoFromId(id){ + if(!id) return; + return await this.chatGroupEntity.findOne({where: {id}}) + } +} diff --git a/service/src/modules/chatGroup/dto/createGroup.dto.ts b/service/src/modules/chatGroup/dto/createGroup.dto.ts new file mode 100644 index 0000000..21e6b91 --- /dev/null +++ b/service/src/modules/chatGroup/dto/createGroup.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class CreateGroupDto { + @ApiProperty({ example: 10, description: '应用ID', required: false }) + @IsOptional() + appId: number; +} diff --git a/service/src/modules/chatGroup/dto/delGroup.dto.ts b/service/src/modules/chatGroup/dto/delGroup.dto.ts new file mode 100644 index 0000000..1667794 --- /dev/null +++ b/service/src/modules/chatGroup/dto/delGroup.dto.ts @@ -0,0 +1,7 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { BaseEntity } from 'typeorm'; + +export class DelGroupDto { + @ApiProperty({ example: 1, description: '对话分组ID', required: true }) + groupId: number; +} diff --git a/service/src/modules/chatGroup/dto/updateGroup.dto.ts b/service/src/modules/chatGroup/dto/updateGroup.dto.ts new file mode 100644 index 0000000..cac9f84 --- /dev/null +++ b/service/src/modules/chatGroup/dto/updateGroup.dto.ts @@ -0,0 +1,21 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class UpdateGroupDto { + @ApiProperty({ example: 1, description: '修改的对话ID', required: false }) + @IsOptional() + groupId: number; + + @ApiProperty({ example: 10, description: '对话组title', required: false }) + @IsOptional() + title: string; + + @ApiProperty({ example: 10, description: '对话组是否置顶', required: false }) + @IsOptional() + isSticky: boolean; + + @ApiProperty({ example: "", description: '对话模型配置项序列化的字符串', required: false }) + config: string; +} diff --git a/service/src/modules/chatLog/chatLog.controller.ts b/service/src/modules/chatLog/chatLog.controller.ts new file mode 100644 index 0000000..21f728f --- /dev/null +++ b/service/src/modules/chatLog/chatLog.controller.ts @@ -0,0 +1,91 @@ +import { Body, Controller, Get, Post, Query, Req, Res, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { Request, Response } from 'express'; +import { ChatLogService } from './chatLog.service'; +import { QuerAllDrawLogDto } from './dto/queryAllDrawLog.dto'; +import { QuerAllChatLogDto } from './dto/queryAllChatLog.dto'; +import { recDrawImgDto } from './dto/recDrawImg.dto'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { QuerMyChatLogDto } from './dto/queryMyChatLog.dto'; +import { ExportExcelChatlogDto } from './dto/exportExcelChatlog.dto'; +import { ChatListDto } from './dto/chatList.dto'; +import { DelDto } from './dto/del.dto'; +import { DelByGroupDto } from './dto/delByGroup.dto'; +import { QueryByAppIdDto } from './dto/queryByAppId.dto'; + +@Controller('chatLog') +@ApiTags('ChatLog') +export class ChatLogController { + constructor(private readonly chatLogService: ChatLogService) {} + + @Get('draw') + @ApiOperation({ summary: '查询我的绘制记录' }) + @ApiBearerAuth() + @UseGuards(JwtAuthGuard) + querDrawLog(@Query() query: QuerMyChatLogDto, @Req() req: Request) { + return this.chatLogService.querDrawLog(req, query); + } + + @Post('recDrawImg') + @ApiOperation({ summary: '推荐此图片对外展示' }) + @ApiBearerAuth() + @UseGuards(SuperAuthGuard) + recDrawImg(@Body() body: recDrawImgDto) { + return this.chatLogService.recDrawImg(body); + } + + @Get('drawAll') + @ApiOperation({ summary: '查询所有的绘制记录' }) + querAllDrawLog(@Query() params: QuerAllDrawLogDto) { + return this.chatLogService.querAllDrawLog(params); + } + + @Get('chatAll') + @ApiOperation({ summary: '查询所有的问答记录' }) + @ApiBearerAuth() + @UseGuards(AdminAuthGuard) + queryAllChatLog(@Query() params: QuerAllChatLogDto, @Req() req: Request) { + return this.chatLogService.querAllChatLog(params, req); + } + + @Post('exportExcel') + @ApiOperation({ summary: '导出问答记录' }) + @ApiBearerAuth() + exportExcel(@Body() body: ExportExcelChatlogDto, @Res() res: Response) { + return this.chatLogService.exportExcel(body, res); + } + + @Get('chatList') + @ApiOperation({ summary: '查询我的问答记录' }) + @ApiBearerAuth() + @UseGuards(JwtAuthGuard) + chatList(@Req() req: Request, @Query() params: ChatListDto) { + return this.chatLogService.chatList(req, params); + } + + @Post('del') + @ApiOperation({ summary: '删除我的问答记录' }) + @ApiBearerAuth() + @UseGuards(JwtAuthGuard) + del(@Req() req: Request, @Body() body: DelDto) { + return this.chatLogService.deleteChatLog(req, body); + } + + @Post('delByGroupId') + @ApiOperation({ summary: '清空一组对话' }) + @ApiBearerAuth() + @UseGuards(JwtAuthGuard) + delByGroupId(@Req() req: Request, @Body() body: DelByGroupDto) { + return this.chatLogService.delByGroupId(req, body); + } + + @Get('byAppId') + @ApiOperation({ summary: '查询某个应用的问答记录' }) + @ApiBearerAuth() + @UseGuards(JwtAuthGuard) + byAppId(@Req() req: Request, @Query() params: QueryByAppIdDto) { + return this.chatLogService.byAppId(req, params); + } +} diff --git a/service/src/modules/chatLog/chatLog.entity.ts b/service/src/modules/chatLog/chatLog.entity.ts new file mode 100644 index 0000000..ac5f4f5 --- /dev/null +++ b/service/src/modules/chatLog/chatLog.entity.ts @@ -0,0 +1,81 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'chatlog' }) +export class ChatLogEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '使用类型', nullable: true }) + type: string; + + @Column({ comment: '询问的问题', type: 'text', nullable: true }) + prompt: string; + + @Column({ comment: '回答的答案', type: 'text', nullable: true }) + answer: string; + + @Column({ comment: '本次问题的token', nullable: true }) + promptTokens: number; + + @Column({ comment: '本次回答的token', nullable: true }) + completionTokens: number; + + @Column({ comment: '本次总花费的token', nullable: true }) + totalTokens: number; + + @Column({ comment: '本次使用的模型', nullable: true }) + model: string; + + @Column({ comment: '本次访问的Ip地址', nullable: true }) + curIp: string; + + @Column({ comment: '是否推荐0: 默认 1: 推荐', nullable: true, default: 0 }) + rec: number; + + @Column({ comment: '扩展参数', nullable: true, type: 'text' }) + extend: string; + + @Column({ comment: 'mj绘画列表携带的一级id用于图片变换或者放大', nullable: true }) + message_id: string; + + @Column({ comment: '一组图片的第几张、放大或者变换的时候需要使用', nullable: true }) + orderId: number; + + @Column({ comment: 'mj绘画的动作、放大或者变换、或者全部重新绘制', nullable: true }) + action: string; + + @Column({ comment: '是否是组图,这种图才可以指定放大', default: 0 }) + group: number; + + @Column({ comment: '放大图片的Id记录', nullable: true }) + upscaleId: string; + + @Column({ comment: '变换图片的Id记录', nullable: true }) + variationId: string; + + @Column({ comment: '图片信息的string', nullable: true, type: 'text' }) + fileInfo: string; + + @Column({ comment: '上传图片的信息', nullable: true, type: 'text' }) + imageUrl: string; + + @Column({ comment: 'role system user assistant', nullable: true }) + role: string; + + @Column({ comment: '对话分组ID', nullable: true }) + groupId: number; + + @Column({ comment: '序列化的本次会话参数', nullable: true, type: 'text' }) + conversationOptions: string; + + @Column({ comment: '序列化的本次提交参数', nullable: true, type: 'text' }) + requestOptions: string; + + @Column({ comment: '是否删除', default: false }) + isDelete: boolean; + + @Column({ comment: '使用的应用id', nullable: true }) + appId: number; +} diff --git a/service/src/modules/chatLog/chatLog.module.ts b/service/src/modules/chatLog/chatLog.module.ts new file mode 100644 index 0000000..acb99f0 --- /dev/null +++ b/service/src/modules/chatLog/chatLog.module.ts @@ -0,0 +1,17 @@ +import { Global, Module } from '@nestjs/common'; +import { ChatLogService } from './chatLog.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ChatLogEntity } from './chatLog.entity'; +import { ChatLogController } from './chatLog.controller'; +import { UserEntity } from '../user/user.entity'; +import { BadWordsEntity } from '../badwords/badwords.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([ChatLogEntity, UserEntity, BadWordsEntity, ChatGroupEntity])], + controllers: [ChatLogController], + providers: [ChatLogService], + exports: [ChatLogService], +}) +export class ChatLogModule {} diff --git a/service/src/modules/chatLog/chatLog.service.ts b/service/src/modules/chatLog/chatLog.service.ts new file mode 100644 index 0000000..56b2aae --- /dev/null +++ b/service/src/modules/chatLog/chatLog.service.ts @@ -0,0 +1,286 @@ +import { ExportExcelChatlogDto } from './dto/exportExcelChatlog.dto'; +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { ChatLogEntity } from './chatLog.entity'; +import { In, Like, Not, Repository } from 'typeorm'; +import { Request, Response } from 'express'; +import { DeductionKey } from '@/common/constants/balance.constant'; +import { QuerAllDrawLogDto } from './dto/queryAllDrawLog.dto'; +import { QuerAllChatLogDto } from './dto/queryAllChatLog.dto'; +import { recDrawImgDto } from './dto/recDrawImg.dto'; +import { UserEntity } from '../user/user.entity'; +import { formatDate, maskEmail, utcToShanghaiTime } from '@/common/utils'; +import { QuerMyChatLogDto } from './dto/queryMyChatLog.dto'; +import excel from 'exceljs'; +import { ChatListDto } from './dto/chatList.dto'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { DelDto } from './dto/del.dto'; +import { DelByGroupDto } from './dto/delByGroup.dto'; +import { QueryByAppIdDto } from './dto/queryByAppId.dto'; + +@Injectable() +export class ChatLogService { + constructor( + @InjectRepository(ChatLogEntity) + private readonly chatLogEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + @InjectRepository(ChatGroupEntity) + private readonly chatGroupEntity: Repository, + ) {} + + /* 记录问答日志 */ + async saveChatLog(logInfo) { + return await this.chatLogEntity.save(logInfo); + } + + /* 查询我的绘制记录 */ + async querDrawLog(req: Request, query: QuerMyChatLogDto) { + const { id } = req.user; + const { model } = query; + const where: any = { userId: id, type: DeductionKey.PAINT_TYPE }; + if(model){ + where.model = model + if(model === 'DALL-E2'){ + where.model = In(['DALL-E2', 'dall-e-3']) + } + } + const data = await this.chatLogEntity.find({ + where, + order: { id: 'DESC' }, + select: ['id', 'answer', 'prompt', 'message_id', 'group', 'model', 'extend', 'type', 'fileInfo'], + }); + data.forEach((r: any) => { + if (r.type === 'paintCount') { + const w = r.model === 'mj' ? 310 : 160; + const imgType = r.answer.includes('cos') ? 'tencent' : 'ali'; + const compress = imgType === 'tencent' ? `?imageView2/1/w/${w}/q/55` : `?x-oss-process=image/resize,w_${w}`; + r.thumbImg = r.answer + compress; + try { + r.fileInfo = r.fileInfo ? JSON.parse(r.fileInfo) : null + } catch (error) { + r.fileInfo = {} + } + } + }); + return data; + } + + /* 查询所有绘制记录 */ + async querAllDrawLog(params: QuerAllDrawLogDto) { + const { page = 1, size = 20, rec, userId, model } = params; + const where: any = { type: DeductionKey.PAINT_TYPE, prompt: Not(''), answer: Not('') }; + rec && Object.assign(where, { rec }); + userId && Object.assign(where, { userId }); + if(model){ + where.model = model + if(model === 'DALL-E2'){ + where.model = In(['DALL-E2', 'dall-e-3']) + } + } + const [rows, count] = await this.chatLogEntity.findAndCount({ + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + where, + }); + rows.forEach((r: any) => { + if (r.type === 'paintCount') { + const w = r.model === 'mj' ? 310 : 160; // mj压缩到310 dall-e压缩到160 宽度 + /* 需要区分图片是阿里云oss还是腾讯云cos 压缩方式不同 */ + const imgType = r.answer.includes('cos') ? 'tencent' : 'ali'; + const compress = imgType === 'tencent' ? `?imageView2/1/w/${w}/q/55` : `?x-oss-process=image/resize,w_${w}`; + r.thumbImg = r.answer + compress; + try { + const detailInfo = r.extend ? JSON.parse(r.extend) : null; + if (detailInfo) { + if (detailInfo) { + r.isGroup = detailInfo?.components[0]?.components.length === 5; + } else { + r.isGroup = false; + } + } + } catch (error) { + console.log('querAllDrawLog Json parse error', error) + } + } + }); + return { rows, count }; + } + + /* 推荐图片到对外展示 */ + async recDrawImg(body: recDrawImgDto) { + const { id } = body; + const l = await this.chatLogEntity.findOne({ where: { id, type: DeductionKey.PAINT_TYPE } }); + if (!l) { + throw new HttpException('你推荐的图片不存在、请检查!', HttpStatus.BAD_REQUEST); + } + const rec = l.rec === 1 ? 0 : 1; + const res = await this.chatLogEntity.update({ id }, { rec }); + if (res.affected > 0) { + return `${rec ? '推荐' : '取消推荐'}图片成功!`; + } + throw new HttpException('你操作的图片不存在、请检查!', HttpStatus.BAD_REQUEST); + } + + /* 导出为excel对话记录 */ + async exportExcel(body: ExportExcelChatlogDto, res: Response) { + const where = { type: DeductionKey.CHAT_TYPE }; + const { page = 1, size = 30, prompt, email } = body; + prompt && Object.assign(where, { prompt: Like(`%${prompt}%`) }); + if (email) { + const user = await this.userEntity.findOne({ where: { email } }); + user?.id && Object.assign(where, { userId: user.id }); + } + const [rows, count] = await this.chatLogEntity.findAndCount({ + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + where, + }); + + const userIds = rows.map((r) => r.userId); + const userInfos = await this.userEntity.find({ where: { id: In(userIds) } }); + const data = rows.map((r) => { + const userInfo = userInfos.find((u) => u.id === r.userId); + return { + username: userInfo ? userInfo.username : '', + email: userInfo ? userInfo.email : '', + prompt: r.prompt, + answer: r.answer, + createdAt: formatDate(r.createdAt), + }; + }); + + const workbook = new excel.Workbook(); + + const worksheet = workbook.addWorksheet('chatlog'); + + worksheet.columns = [ + { header: '用户名', key: 'username', width: 20 }, + { header: '用户邮箱', key: 'email', width: 20 }, + { header: '提问时间', key: 'createdAt', width: 20 }, + { header: '提问问题', key: 'prompt', width: 80 }, + { header: '回答答案', key: 'answer', width: 150 }, + ]; + + data.forEach((row) => worksheet.addRow(row)); + + res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + res.setHeader('Content-Disposition', 'attachment; filename=' + 'chat.xlsx'); + await workbook.xlsx.write(res); + res.end(); + } + + /* 查询所有对话记录 */ + async querAllChatLog(params: QuerAllChatLogDto, req: Request) { + const { page = 1, size = 20, userId, prompt } = params; + const where = { type: DeductionKey.CHAT_TYPE, prompt: Not('') }; + userId && Object.assign(where, { userId }); + prompt && Object.assign(where, { prompt: Like(`%${prompt}%`) }); + const [rows, count] = await this.chatLogEntity.findAndCount({ + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + where, + }); + const userIds = rows.map((item) => item.userId); + const userInfo = await this.userEntity.find({ where: { id: In(userIds) }, select: ['id', 'username', 'email'] }); + rows.forEach((item: any) => { + const { username, email } = userInfo.find((u) => u.id === item.userId) || {}; + item.username = username; + item.email = email; + }); + req.user.role !== 'super' && rows.forEach((t: any) => (t.email = maskEmail(t.email))); + rows.forEach((item: any) => { + !item.email && (item.email = `${item?.userId}@nine.com`) + !item.username && (item.username = `游客${item?.userId}`); + }) + return { rows, count }; + } + + /* 查询当前对话的列表 */ + async chatList(req: Request, params: ChatListDto) { + const { id } = req.user; + const { groupId } = params; + const where = { userId: id, isDelete: false }; + groupId && Object.assign(where, { groupId }); + if (groupId) { + const count = await this.chatGroupEntity.count({ where: { isDelete: false } }); + if (count === 0) return []; + } + const list = await this.chatLogEntity.find({ where }); + return list.map((item) => { + const { prompt, role, answer, createdAt, model, conversationOptions, requestOptions, id,imageUrl} = item; + let parseConversationOptions: any = null + let parseRequestOptions: any = null + try { + parseConversationOptions = JSON.parse(conversationOptions) + parseRequestOptions = JSON.parse(requestOptions) + } catch (error) { + + } + return { + chatId: id, + dateTime: formatDate(createdAt), + text: role === 'user' ? prompt : answer, + inversion: role === 'user', + error: false, + conversationOptions: parseConversationOptions, + requestOptions: parseRequestOptions, + imageUrl, + model + }; + }); + } + + /* 删除单条对话记录 */ + async deleteChatLog(req: Request, body: DelDto) { + const { id: userId } = req.user; + const { id } = body; + const c = await this.chatLogEntity.findOne({ where: { id, userId } }); + if (!c) { + throw new HttpException('你删除的对话记录不存在、请检查!', HttpStatus.BAD_REQUEST); + } + const r = await this.chatLogEntity.update({ id }, { isDelete: true }); + if (r.affected > 0) { + return '删除对话记录成功!'; + } else { + throw new HttpException('你删除的对话记录不存在、请检查!', HttpStatus.BAD_REQUEST); + } + } + + /* 清空一组对话记录 */ + async delByGroupId(req: Request, body: DelByGroupDto) { + const { groupId } = body; + const { id } = req.user; + const g = await this.chatGroupEntity.findOne({ where: { id: groupId, userId: id } }); + + if (!g) { + throw new HttpException('你删除的对话记录不存在、请检查!', HttpStatus.BAD_REQUEST); + } + + const r = await this.chatLogEntity.update({ groupId }, { isDelete: true }); + + if (r.affected > 0) { + return '删除对话记录成功!'; + } + + if (r.affected === 0) { + throw new HttpException('当前页面已经没有东西可以删除了!', HttpStatus.BAD_REQUEST); + } + } + + /* 查询单个应用的使用记录 */ + async byAppId(req: Request, body: QueryByAppIdDto) { + const { id } = req.user; + const { appId, page = 1, size = 10 } = body; + const [rows, count] = await this.chatLogEntity.findAndCount({ + where: { userId: id, appId, role: 'assistant' }, + order: { id: 'DESC' }, + take: size, + skip: (page - 1) * size, + }); + return { rows, count }; + } +} diff --git a/service/src/modules/chatLog/dto/chatList.dto.ts b/service/src/modules/chatLog/dto/chatList.dto.ts new file mode 100644 index 0000000..64049c3 --- /dev/null +++ b/service/src/modules/chatLog/dto/chatList.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class ChatListDto { + @ApiProperty({ example: 1, description: '对话分组ID', required: false }) + @IsOptional() + groupId: number; +} diff --git a/service/src/modules/chatLog/dto/del.dto.ts b/service/src/modules/chatLog/dto/del.dto.ts new file mode 100644 index 0000000..9d9cf7a --- /dev/null +++ b/service/src/modules/chatLog/dto/del.dto.ts @@ -0,0 +1,9 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class DelDto { + @ApiProperty({ example: 1, description: '对话Id', required: true }) + id: number; +} diff --git a/service/src/modules/chatLog/dto/delByGroup.dto.ts b/service/src/modules/chatLog/dto/delByGroup.dto.ts new file mode 100644 index 0000000..ccebb79 --- /dev/null +++ b/service/src/modules/chatLog/dto/delByGroup.dto.ts @@ -0,0 +1,9 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class DelByGroupDto { + @ApiProperty({ example: 1, description: '对话组Id', required: true }) + groupId: number; +} diff --git a/service/src/modules/chatLog/dto/exportExcelChatlog.dto.ts b/service/src/modules/chatLog/dto/exportExcelChatlog.dto.ts new file mode 100644 index 0000000..ee97091 --- /dev/null +++ b/service/src/modules/chatLog/dto/exportExcelChatlog.dto.ts @@ -0,0 +1,26 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class ExportExcelChatlogDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: '您好', description: '用户询问的问题', required: false }) + @IsOptional() + prompt: string; + + @ApiProperty({ example: 'J_longyan@163.com', description: '用户邮箱', required: false }) + @IsOptional() + email: string; + + // @ApiProperty({ example: '小九', description: '用户名称', required: false }) + // @IsOptional() + // username: string; +} diff --git a/service/src/modules/chatLog/dto/queryAllChatLog.dto.ts b/service/src/modules/chatLog/dto/queryAllChatLog.dto.ts new file mode 100644 index 0000000..e1292f7 --- /dev/null +++ b/service/src/modules/chatLog/dto/queryAllChatLog.dto.ts @@ -0,0 +1,25 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerAllChatLogDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 99, description: '对话的用户id', required: false }) + @IsOptional() + userId: number; + + @ApiProperty({ example: '您好', description: '用户询问的问题', required: false }) + @IsOptional() + prompt: string; + + @ApiProperty({ example: 'user', description: '身份', required: false }) + role: string; +} diff --git a/service/src/modules/chatLog/dto/queryAllDrawLog.dto.ts b/service/src/modules/chatLog/dto/queryAllDrawLog.dto.ts new file mode 100644 index 0000000..9b01582 --- /dev/null +++ b/service/src/modules/chatLog/dto/queryAllDrawLog.dto.ts @@ -0,0 +1,26 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerAllDrawLogDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 1, description: '是否推荐0: 默认 1: 推荐', required: false }) + @IsOptional() + rec: number; + + @ApiProperty({ example: 99, description: '生成图片的用户id', required: false }) + @IsOptional() + userId: number; + + @ApiProperty({ example: 'DALL-E2', description: '生成图片使用的模型', required: false }) + @IsOptional() + model: string; +} diff --git a/service/src/modules/chatLog/dto/queryByAppId.dto.ts b/service/src/modules/chatLog/dto/queryByAppId.dto.ts new file mode 100644 index 0000000..a41bfd6 --- /dev/null +++ b/service/src/modules/chatLog/dto/queryByAppId.dto.ts @@ -0,0 +1,18 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QueryByAppIdDto { + @ApiProperty({ example: 1, description: '应用Id', required: true }) + @IsOptional() + appId: number; + + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; +} diff --git a/service/src/modules/chatLog/dto/queryMyChatLog.dto.ts b/service/src/modules/chatLog/dto/queryMyChatLog.dto.ts new file mode 100644 index 0000000..6e03939 --- /dev/null +++ b/service/src/modules/chatLog/dto/queryMyChatLog.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerMyChatLogDto { + @ApiProperty({ example: 'mj', description: '使用的模型', required: false }) + @IsOptional() + model: string; +} diff --git a/service/src/modules/chatLog/dto/recDrawImg.dto.ts b/service/src/modules/chatLog/dto/recDrawImg.dto.ts new file mode 100644 index 0000000..fe5d2c6 --- /dev/null +++ b/service/src/modules/chatLog/dto/recDrawImg.dto.ts @@ -0,0 +1,9 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class recDrawImgDto { + @ApiProperty({ example: 1, description: '推荐图片的id' }) + id: number; +} diff --git a/service/src/modules/chatgpt/baidu.ts b/service/src/modules/chatgpt/baidu.ts new file mode 100644 index 0000000..74d63cb --- /dev/null +++ b/service/src/modules/chatgpt/baidu.ts @@ -0,0 +1,102 @@ +const axios = require('axios') + +/* 文档地址 https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Nlks5zkzu */ +const getApiModelMaps = () => { + let res = {} + const maps = { + 'ERNIE-Bot': 'completions', + 'ERNIE-Bot-turbo': 'eb-instant', + 'BLOOMZ-7B': 'bloomz_7b1', + 'ERNIE-Bot-4': 'completions_pro', + 'Llama-2-7b-chat': 'llama_2_7b', + 'Llama-2-13b-chat': 'llama_2_13b', + // 'Llama-2-70b-chat': 'llama_2_70b', + 'ChatGLM2-6B-32K': 'chatglm2_6b_32k', + // 'Qianfan-BLOOMZ-7B-compressed': 'qianfan_bloomz_7b_compressed', + 'Qianfan-Chinese-Llama-2-7B': 'qianfan_chinese_llama_2_7b', + // 'AquilaChat-7B': 'aquilachat_7b' + } + Object.keys(maps).map( key => { + res[`${key.toLowerCase()}`] = maps[key] + }) + return res +} + +/** + * 生成鉴权签名(Access Token) + * @return string 鉴权签名信息(Access Token) + */ +export function getAccessToken(key, secret) { + let url = `https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${key}&client_secret=${secret}`; + return new Promise((resolve, reject) => { + axios + .post(url) + .then((response) => { + resolve(response.data.access_token); + }) + .catch((error) => { + reject(error); + }); + }); +} + +export function sendMessageFromBaidu(messagesHistory, { onProgress, accessToken, model, temperature = 0.95 }) { + const endUrl = getApiModelMaps()[model.trim().toLowerCase()] + return new Promise((resolve, reject) => { + const url = `https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/${endUrl}?access_token=${accessToken}`; + var options = { + method: 'POST', + url, + responseType: 'stream', + headers: { + 'Content-Type': 'application/json', + }, + data: { + stream: true, + messages: messagesHistory, + }, + }; + + axios(options) + .then((response) => { + const stream = response.data; + let resData: any = {}; + let cacheChunk = ''; + let cacheResText = '' + stream.on('data', (chunk) => { + // 处理每个数据块 + const lines = chunk + .toString() + .split('\n\n') + .filter((line) => line.trim() !== ''); + + for (const line of lines) { + const message = line.replace('data: ', ''); + try { + const msg = cacheChunk + message; + const parseData = JSON.parse(msg); + cacheChunk = ''; + const { is_end, result } = parseData + result && (cacheResText += result) + if (is_end) { + resData = parseData + resData.text = cacheResText + } + onProgress(parseData); + } catch (error) { + cacheChunk = message; + } + } + }); + stream.on('end', () => { + cacheResText = '' + cacheChunk = '' + resolve(resData); + }); + }) + .catch((error) => { + reject(new Error(error)); + }); + + }); +} diff --git a/service/src/modules/chatgpt/chatBox.entity.ts b/service/src/modules/chatgpt/chatBox.entity.ts new file mode 100644 index 0000000..545e304 --- /dev/null +++ b/service/src/modules/chatgpt/chatBox.entity.ts @@ -0,0 +1,27 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'chat_box' }) +export class ChatBoxEntity extends BaseEntity { + @Column({ comment: '分类ID' }) + typeId: number; + + @Column({ comment: '应用ID', nullable: true }) + appId: number; + + @Column({ comment: '快速描述词', nullable: true, type: 'text' }) + prompt: string; + + @Column({ comment: '标题名称' }) + title: string; + + @Column({ comment: '排序ID', default: 100 }) + order: number; + + @Column({ comment: '开启状态', default: true }) + status: boolean; + + @Column({ comment: '跳转地址' }) + url: string; +} diff --git a/service/src/modules/chatgpt/chatBoxType.entity.ts b/service/src/modules/chatgpt/chatBoxType.entity.ts new file mode 100644 index 0000000..671fc38 --- /dev/null +++ b/service/src/modules/chatgpt/chatBoxType.entity.ts @@ -0,0 +1,18 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'chat_box_type' }) +export class ChatBoxTypeEntity extends BaseEntity { + @Column({ comment: '分类名称' }) + name: string; + + @Column({ comment: 'icon图标' }) + icon: string; + + @Column({ comment: '排序ID', default: 10 }) + order: number; + + @Column({ comment: '是否打开', default: true }) + status: boolean +} diff --git a/service/src/modules/chatgpt/chatPre.entity.ts b/service/src/modules/chatgpt/chatPre.entity.ts new file mode 100644 index 0000000..d615a26 --- /dev/null +++ b/service/src/modules/chatgpt/chatPre.entity.ts @@ -0,0 +1,20 @@ +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'chat_pre' }) +export class ChatPreEntity extends BaseEntity { + @Column({ comment: '分类ID' }) + typeId: number; + + @Column({ comment: '预设问题描述词', nullable: true, type: 'text' }) + prompt: string; + + @Column({ comment: '标题名称' }) + title: string; + + @Column({ comment: '排序ID', default: 100 }) + order: number; + + @Column({ comment: '开启状态', default: true }) + status: boolean; +} diff --git a/service/src/modules/chatgpt/chatPreType.entity.ts b/service/src/modules/chatgpt/chatPreType.entity.ts new file mode 100644 index 0000000..a757e3e --- /dev/null +++ b/service/src/modules/chatgpt/chatPreType.entity.ts @@ -0,0 +1,18 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'chat_pre_type' }) +export class ChatPreTypeEntity extends BaseEntity { + @Column({ comment: '分类名称' }) + name: string; + + @Column({ comment: 'icon图标', nullable: true }) + icon: string; + + @Column({ comment: '排序ID', default: 10 }) + order: number; + + @Column({ comment: '是否打开', default: true }) + status: boolean +} diff --git a/service/src/modules/chatgpt/chatgpt.controller.ts b/service/src/modules/chatgpt/chatgpt.controller.ts new file mode 100644 index 0000000..c4587aa --- /dev/null +++ b/service/src/modules/chatgpt/chatgpt.controller.ts @@ -0,0 +1,192 @@ +import { JwtAuthGuard } from '../../common/auth/jwtAuth.guard'; +import { ApiBearerAuth, ApiHeader, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { ChatgptService } from './chatgpt.service'; +import { Body, Controller, Get, HttpCode, Post, Query, Req, Res, UseGuards } from '@nestjs/common'; +import { ChatProcessDto } from './dto/chatProcess.dto'; +import { Request, Response } from 'express'; +import { ChatDrawDto } from './dto/chatDraw.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; + +@ApiTags('chatgpt') +@Controller('chatgpt') +export class ChatgptController { + constructor(private readonly chatgptService: ChatgptService, private readonly globalConfigService: GlobalConfigService) {} + + @Post('chat-process') + @ApiOperation({ summary: 'gpt聊天对话' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + chatProcess(@Body() body: ChatProcessDto, @Req() req: Request, @Res() res: Response) { + return this.chatgptService.chatProcess(body, req, res); + } + + @Post('chat-sync') + @ApiOperation({ summary: 'gpt聊天对话' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + chatProcessSync(@Body() body: ChatProcessDto, @Req() req: Request) { + return this.chatgptService.chatProcess({ ...body }, req); + } + + @Post('mj-associate') + @ApiOperation({ summary: 'gpt描述词绘画联想' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async mjAssociate(@Body() body: ChatProcessDto, @Req() req: Request) { + const mjCustomLianxiangPrompt = await this.globalConfigService.getConfigs(['mjCustomLianxiangPrompt']); + /* 临时方案 指定其系统预设词 */ + body.systemMessage = + mjCustomLianxiangPrompt || + `midjourney是一款AI绘画工具,只要你输入你想到的文字,就能通过人工智能产出相对应的图片、我希望你作为MidJourney程序的提示词(prompt)生成器。你的工作是根据我给你的一段提示内容扩展为更详细和更有创意的描述,以激发人工智能的独特和有趣的图像。请记住,人工智能能够理解广泛的语言,并能解释抽象的概念,所以请自由发挥想象力和描述力,尽可能地发挥。例如,你可以描述一个未来城市的场景,或一个充满奇怪生物的超现实景观。你的描述越详细、越有想象力,产生的图像就越有趣、Midjourney prompt的标准公式为:(image we're prompting).(5 descriptivekeywords). (camera type). (camera lens type). (time of day)(style of photograph).(type offilm)、请记住这个公式,后续统一使用该公式进行prompt生成、最终把我给你的提示变成一整段连续不分开的完整内容,并且只需要用英文回复您的联想、一定不要回复别内容、包括解释、我只需要纯粹的内容。`; + return this.chatgptService.chatProcess({ ...body, cusromPrompt: true }, req); + } + + @Post('mj-fy') + @ApiOperation({ summary: 'gpt描述词绘画翻译' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async mjFanyi(@Body() body: ChatProcessDto, @Req() req: Request) { + /* 临时方案 指定其系统预设词 */ + const mjCustomFanyiPrompt = await this.globalConfigService.getConfigs(['mjCustomFanyiPrompt']); + body.systemMessage = + mjCustomFanyiPrompt || + `接下来我会给你一些内容、我希望你帮我翻译成英文、不管我给你任何语言、你都回复我英文、如果给你了英文、依然回复我更加优化的英文、并且期望你不需要做任何多余的解释、给我英文即可、不要加任何东西、我只需要英文!`; + return this.chatgptService.chatProcess({ ...body, cusromPrompt: true }, req); + } + + @Post('chat-mind') + @ApiOperation({ summary: 'mind思维导图提示' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async chatmind(@Body() body: ChatProcessDto, @Req() req: Request, @Res() res: Response) { + const mindCustomPrompt = await this.globalConfigService.getConfigs(['mindCustomPrompt']); + /* 临时方案 指定其系统预设词 */ + body.systemMessage = + mindCustomPrompt || + `我希望你使用markdown格式回答我得问题、我的需求是得到一份markdown格式的大纲、尽量做的精细、层级多一点、不管我问你什么、都需要您回复我一个大纲出来、我想使用大纲做思维导图、除了大纲之外、不要无关内容和总结。`; + return this.chatgptService.chatProcess({ ...body, cusromPrompt: true }, req, res); + } + + @Post('chat-draw') + @ApiOperation({ summary: 'gpt绘画' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async draw(@Body() body: ChatDrawDto, @Req() req: Request) { + // const mjCustomFanyiPrompt = await this.globalConfigService.getConfigs(['mjCustomFanyiPrompt']); + // const systemMessage = + // mjCustomFanyiPrompt || + // `你只可以回复英文、你是一个中译英翻译官、接下来我会给你一些内容、我希望你帮我翻译成英文、不管我给你任何语言、你都回复我英文、如果给你了英文、请不要做任何改变原样回复给我、并且期望你不需要做任何多余的解释、给我英文即可、不要加任何东西、我只需要英文!`; + // const text = await this.chatgptService.chatProcess({ ...body, systemMessage, cusromPrompt: true }, req); + // console.log('text: ', text); + // if (text) { + // body.prompt = text; + // } + return await this.chatgptService.draw(body, req); + } + + @Post('setChatBoxType') + @ApiOperation({ summary: '添加修改分类类型' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async setChatBoxType(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.setChatBoxType(req, body); + } + + @Post('delChatBoxType') + @ApiOperation({ summary: '添加修改ChatBoxType' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delChatBoxType(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.delChatBoxType(req, body); + } + + @Get('queryChatBoxTypes') + @ApiOperation({ summary: '查询ChatBoxType' }) + @UseGuards(AdminAuthGuard) + async queryChatBoxType() { + return await this.chatgptService.queryChatBoxType(); + } + + @Post('setChatBox') + @ApiOperation({ summary: '添加修改ChatBox' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async setChatBox(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.setChatBox(req, body); + } + + @Post('delChatBox') + @ApiOperation({ summary: '添加修改ChatBox提示词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delChatBox(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.delChatBox(req, body); + } + + @Get('queryChatBoxs') + @ApiOperation({ summary: '查询ChatBox列表' }) + @UseGuards(AdminAuthGuard) + async queryChatBox() { + return await this.chatgptService.queryChatBox(); + } + + @Get('queryChatBoxFrontend') + @ApiOperation({ summary: '查询ChatBox分类加详细' }) + async queryChatBoxFrontend() { + return await this.chatgptService.queryChatBoxFrontend(); + } + + @Post('setChatPreType') + @ApiOperation({ summary: '添加修改预设分类类型' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async setChatPreType(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.setChatPreType(req, body); + } + + @Post('delChatPretype') + @ApiOperation({ summary: '添加修改ChatPretype' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delChatPreType(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.delChatPreType(req, body); + } + + @Get('queryChatPretypes') + @ApiOperation({ summary: '查询ChatPretype' }) + @UseGuards(AdminAuthGuard) + async queryChatPreType() { + return await this.chatgptService.queryChatPreType(); + } + + @Post('setChatPre') + @ApiOperation({ summary: '添加修改ChatPre' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async setChatPre(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.setChatPre(req, body); + } + + @Post('delChatPre') + @ApiOperation({ summary: '添加修改ChatPre提示词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delChatPre(@Req() req: Request, @Body() body: any) { + return await this.chatgptService.delChatPre(req, body); + } + + @Get('queryChatPres') + @ApiOperation({ summary: '查询ChatPre列表' }) + @UseGuards(AdminAuthGuard) + async queryChatPre() { + return await this.chatgptService.queryChatPre(); + } + + @Get('queryChatPreList') + @ApiOperation({ summary: '查询ChatPre列表' }) + async queryChatPreList() { + return await this.chatgptService.queryChatPreList(); + } +} diff --git a/service/src/modules/chatgpt/chatgpt.module.ts b/service/src/modules/chatgpt/chatgpt.module.ts new file mode 100644 index 0000000..951d765 --- /dev/null +++ b/service/src/modules/chatgpt/chatgpt.module.ts @@ -0,0 +1,60 @@ +import { Global, Module } from '@nestjs/common'; +import { ChatgptController } from './chatgpt.controller'; +import { ChatgptService } from './chatgpt.service'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { BalanceEntity } from '../userBalance/balance.entity'; +import { UserService } from '../user/user.service'; +import { UserEntity } from '../user/user.entity'; +import { VerificationService } from '../verification/verification.service'; +import { VerifycationEntity } from '../verification/verifycation.entity'; +import { ChatLogService } from '../chatLog/chatLog.service'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { AccountLogEntity } from '../userBalance/accountLog.entity'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { GptKeysEntity } from './gptkeys.entity'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { WhiteListEntity } from './whiteList.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { AppEntity } from '../app/app.entity'; +import { UserBalanceEntity } from '../userBalance/userBalance.entity'; +import { SalesUsersEntity } from '../sales/salesUsers.entity'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { FingerprintLogEntity } from '../userBalance/fingerprint.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; +import { ChatBoxTypeEntity } from './chatBoxType.entity'; +import { ChatBoxEntity } from './chatBox.entity'; +import { ChatPreTypeEntity } from './chatPreType.entity'; +import { ChatPreEntity } from './chatPre.entity'; +@Global() +@Module({ + imports: [ + TypeOrmModule.forFeature([ + BalanceEntity, + UserEntity, + VerifycationEntity, + ChatLogEntity, + AccountLogEntity, + ConfigEntity, + GptKeysEntity, + WhiteListEntity, + UserEntity, + CramiPackageEntity, + ChatGroupEntity, + AppEntity, + UserBalanceEntity, + SalesUsersEntity, + FingerprintLogEntity, + MidjourneyEntity, + ChatBoxTypeEntity, + ChatBoxEntity, + ChatPreTypeEntity, + ChatPreEntity + ]), + ], + controllers: [ChatgptController], + providers: [ChatgptService, UserBalanceService, UserService, VerificationService, ChatLogService, RedisCacheService], + exports: [ChatgptService] +}) +export class ChatgptModule {} diff --git a/service/src/modules/chatgpt/chatgpt.service.ts b/service/src/modules/chatgpt/chatgpt.service.ts new file mode 100644 index 0000000..6babea5 --- /dev/null +++ b/service/src/modules/chatgpt/chatgpt.service.ts @@ -0,0 +1,999 @@ +import { UploadService } from './../upload/upload.service'; +import { UserService } from './../user/user.service'; +import { ConfigService } from 'nestjs-config'; +import { HttpException, HttpStatus, Injectable, OnModuleInit, Logger } from '@nestjs/common'; +import type { ChatGPTAPIOptions, ChatMessage, SendMessageOptions } from 'chatgpt-ai-web'; +import e, { Request, Response } from 'express'; +import { OpenAiErrorCodeMessage } from '@/common/constants/errorMessage.constant'; +import { + compileNetwork, + getClientIp, + hideString, + importDynamic, + isNotEmptyString, + maskEmail, + removeSpecialCharacters, + selectKeyWithWeight, +} from '@/common/utils'; +import axios from 'axios'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { DeductionKey } from '@/common/constants/balance.constant'; +import { ChatLogService } from '../chatLog/chatLog.service'; +import { ChatDrawDto } from './dto/chatDraw.dto'; +import * as uuid from 'uuid'; +import * as jimp from 'jimp'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { In, Like, MoreThan, Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; +import { BadwordsService } from '../badwords/badwords.service'; +import { AutoreplyService } from '../autoreply/autoreply.service'; +import { GptKeysEntity } from './gptkeys.entity'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { FanyiService } from '../fanyi/fanyi.service'; +import * as dayjs from 'dayjs'; +import { AppEntity } from '../app/app.entity'; +import { ChatGroupService } from '../chatGroup/chatGroup.service'; +import { ModelsService } from '../models/models.service'; +import { sendMessageFromBaidu } from './baidu'; +import { addOneIfOdd, unifiedFormattingResponse } from './helper'; +import { MessageInfo, NineStore, NineStoreInterface } from './store'; +import { sendMessageFromZhipu } from './zhipu'; +import { getTokenCount, sendMessageFromOpenAi } from './openai'; +import { ChatBoxTypeEntity } from './chatBoxType.entity'; +import { ChatBoxEntity } from './chatBox.entity'; +import { ChatPreEntity } from './chatPre.entity'; +import { ChatPreTypeEntity } from './chatPreType.entity'; + +interface Key { + id: number; + key: string; + weight: number; + model: string; + maxModelTokens: number; + maxResponseTokens: number; + openaiProxyUrl: string; + openaiTimeoutMs: number; +} + +@Injectable() +export class ChatgptService implements OnModuleInit { + constructor( + @InjectRepository(GptKeysEntity) + private readonly gptKeysEntity: Repository, + @InjectRepository(ConfigEntity) + private readonly configEntity: Repository, + @InjectRepository(ChatBoxTypeEntity) + private readonly chatBoxTypeEntity: Repository, + @InjectRepository(ChatBoxEntity) + private readonly chatBoxEntity: Repository, + @InjectRepository(AppEntity) + private readonly appEntity: Repository, + @InjectRepository(ChatPreTypeEntity) + private readonly chatPreTypeEntity: Repository, + @InjectRepository(ChatPreEntity) + private readonly chatPreEntity: Repository, + private readonly configService: ConfigService, + private readonly userBalanceService: UserBalanceService, + private readonly chatLogService: ChatLogService, + private readonly userService: UserService, + private readonly uploadService: UploadService, + private readonly badwordsService: BadwordsService, + private readonly autoreplyService: AutoreplyService, + private readonly globalConfigService: GlobalConfigService, + private readonly fanyiService: FanyiService, + private readonly chatGroupService: ChatGroupService, + private readonly modelsService: ModelsService, + ) {} + + private api; + private nineStore: NineStoreInterface = null; // redis存储 + private whiteListUser: number[] = []; + private keyPool: { + list3: Key[]; + list4: Key[]; + } = { + list3: [], + list4: [], + }; + + async onModuleInit() { + let chatgpt = await importDynamic('chatgpt-ai-web'); + let KeyvRedis = await importDynamic('@keyv/redis'); + let Keyv = await importDynamic('keyv'); + chatgpt = chatgpt?.default ? chatgpt.default : chatgpt; + KeyvRedis = KeyvRedis?.default ? KeyvRedis.default : KeyvRedis; + Keyv = Keyv?.default ? Keyv.default : Keyv; + const { ChatGPTAPI, ChatGPTError, ChatGPTUnofficialProxyAPI } = chatgpt; + /* get custom set default config */ + const port = +process.env.REDIS_PORT; + const host = process.env.REDIS_HOST; + const password = process.env.REDIS_PASSWORD; + const username = process.env.REDIS_USER; + const redisUrl = `redis://${username || ''}:${password || ''}@${host}:${port}`; + const store = new KeyvRedis(redisUrl); + /* chatgpt-nineai 使用的 可以切换给 store使用 */ + const messageStore = new Keyv({ store, namespace: 'nineai-chatlog' }); + this.nineStore = new NineStore({ store: messageStore, namespace: 'chat' }); + } + + /* 整理请求的所有入参 */ + async getRequestParams(inputOpt, systemMessage, currentRequestModelKey, modelInfo = null) { + if (!modelInfo) { + modelInfo = (await this.modelsService.getBaseConfig())?.modelInfo; + } + const { timeout = 60 } = currentRequestModelKey; + const { topN: temperature, model } = modelInfo; + const { parentMessageId = 0 } = inputOpt; + /* 根据用户区分不同模型使用不同的key */ + const globalTimeoutMs: any = await this.globalConfigService.getConfigs(['openaiTimeoutMs']); + const timeoutMs = timeout * 1000 || globalTimeoutMs || 100 * 1000; + const options: any = { + parentMessageId, + timeoutMs: +timeoutMs, + completionParams: { + model, + temperature: temperature, // 温度 使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定 + }, + }; + systemMessage && (options.systemMessage = systemMessage); + return options; + } + + async chatSyncFree(prompt: string) { + const currentRequestModelKey = await this.modelsService.getRandomDrawKey(); + const systemMessage = await this.globalConfigService.getConfigs(['systemPreMessage']); + const { maxModelTokens = 8000, maxResponseTokens = 4096, key, model } = currentRequestModelKey; + const proxyUrl = await this.getModelProxyUrl(currentRequestModelKey); + const { context: messagesHistory } = await this.nineStore.buildMessageFromParentMessageId(prompt, { parentMessageId: '', systemMessage }); + try { + const response: any = await sendMessageFromOpenAi(messagesHistory, { + apiKey: removeSpecialCharacters(key), + model, + proxyUrl: proxyUrl, + onProgress: null, + }); + return response?.text; + } catch (error) { + console.log('error: ', error); + } + } + + /* 有res流回复 没有同步回复 */ + async chatProcess(body: any, req: Request, res?: Response) { + const abortController = req.abortController; + const { options = {}, appId, cusromPrompt, systemMessage = '' } = body; + /* 不同场景会变更其信息 */ + let setSystemMessage = systemMessage; + const { parentMessageId } = options; + const { prompt, imageUrl, model: activeModel } = body; + const { groupId, usingNetwork } = options; + // const { model = 3 } = options; + /* 获取当前对话组的详细配置信息 */ + const groupInfo = await this.chatGroupService.getGroupInfoFromId(groupId); + /* 当前对话组关于对话的配置信息 */ + const groupConfig = groupInfo?.config ? JSON.parse(groupInfo.config) : await this.modelsService.getBaseConfig(); + const { keyType, model, topN: temperature, systemMessage: customSystemMessage, rounds } = groupConfig.modelInfo; + /* 获取到本次需要调用的key */ + let currentRequestModelKey = null; + if (!cusromPrompt) { + currentRequestModelKey = await this.modelsService.getCurrentModelKeyInfo(model); + } else { + currentRequestModelKey = await this.modelsService.getRandomDrawKey(); + } + if (!currentRequestModelKey) { + throw new HttpException('当前流程所需要的模型已被管理员下架、请联系管理员上架专属模型!', HttpStatus.BAD_REQUEST); + } + + const { deduct, isTokenBased, tokenFeeRatio, deductType, key: modelKey, secret, modelName, id: keyId, accessToken } = currentRequestModelKey; + /* 用户状态检测 */ + await this.userService.checkUserStatus(req.user); + /* 用户余额检测 */ + await this.userBalanceService.validateBalance(req, deductType === 1 ? 'model3' : 'model4', deduct); + res && res.setHeader('Content-type', 'application/octet-stream; charset=utf-8'); + /* 敏感词检测 */ + await this.badwordsService.checkBadWords(prompt, req.user.id); + /* 自动回复 */ + const autoReplyRes = await this.autoreplyService.checkAutoReply(prompt); + if (autoReplyRes && res) { + const msg = { message: autoReplyRes, code: 500 }; + res.write(JSON.stringify(msg)); + return res.end(); + } + + /* 如果传入了appId 那么appId优先级更高 */ + if (appId) { + const appInfo = await this.appEntity.findOne({ where: { id: appId, status: In([1, 3, 4, 5]) } }); + if (!appInfo) { + throw new HttpException('你当前使用的应用已被下架、请删除当前对话开启新的对话吧!', HttpStatus.BAD_REQUEST); + } + appInfo.preset && (setSystemMessage = appInfo.preset); + } else if (cusromPrompt) { + // 特殊场景系统预设 在co层直接改写 + //自定义提示词 特殊场景 思维导图 翻译 联想 不和头部预设结合 + setSystemMessage = systemMessage; + } else if (customSystemMessage) { + // 用户自定义的预设信息 + setSystemMessage = customSystemMessage; + } else { + // 走系统默认预设 + const currentDate = new Date().toISOString().split('T')[0]; + const systemPreMessage = await this.globalConfigService.getConfigs(['systemPreMessage']); + setSystemMessage = systemPreMessage + `\n Current date: ${currentDate}`; + } + + let netWorkPrompt = ''; + Logger.log('看看启用了联网模式吗?', usingNetwork); + /* 使用联网模式 */ + if (usingNetwork) { + netWorkPrompt = await compileNetwork(prompt); + const currentDate = new Date().toISOString().split('T')[0]; + const systemPreMessage = await this.globalConfigService.getConfigs(['systemPreMessage']); + setSystemMessage = systemPreMessage + `\n Current date: ${currentDate}`; + } + + /* 整理本次请求全部数据 */ + const mergedOptions: any = await this.getRequestParams(options, setSystemMessage, currentRequestModelKey, groupConfig.modelInfo); + + const { maxModelTokens = 8000, maxResponseTokens = 4096, key } = currentRequestModelKey; + + res && res.status(200); + let response = null; + let othersInfo = null; + try { + if (res) { + let lastChat: ChatMessage | null = null; + let isSuccess = false; + /* 如果客户端终止请求、我们只存入终止前获取的内容、并且终止此次请求 拿到最后一次数据 虚构一个结构用户后续信息存入 */ + res.on('close', async () => { + if (isSuccess) return; + abortController.abort(); + const prompt_tokens = (await getTokenCount(prompt)) || 0; + const completion_tokens = (await getTokenCount(lastChat?.text)) || 0; + const total_tokens = prompt_tokens + completion_tokens; + + // TODO 待优化 + /* 日志记录 */ + const curIp = getClientIp(req); + /* 用户询问 */ + await this.chatLogService.saveChatLog({ + appId, + curIp, + userId: req.user.id, + type: DeductionKey.CHAT_TYPE, + prompt, + imageUrl: imageUrl, + activeModel, + answer: '', + promptTokens: prompt_tokens, + completionTokens: 0, + totalTokens: prompt_tokens, + model: model, + role: 'user', + groupId, + requestOptions: JSON.stringify({ + options: null, + prompt, + }), + }); + + // gpt回答 + await this.chatLogService.saveChatLog({ + appId, + curIp, + userId: req.user.id, + type: DeductionKey.CHAT_TYPE, + prompt: prompt, + answer: lastChat?.text, + promptTokens: prompt_tokens, + completionTokens: completion_tokens, + totalTokens: total_tokens, + model: model, + role: 'assistant', + groupId, + requestOptions: JSON.stringify({ + options: { + model: model, + temperature, + }, + prompt, + }), + conversationOptions: JSON.stringify({ + conversationId: lastChat?.conversationId, + model: model, + parentMessageId: lastChat?.id, + temperature, + }), + }); + + /* 当用户回答一般停止时 也需要扣费 */ + let charge = deduct; + if (isTokenBased === true) { + charge = Math.ceil((deduct * total_tokens) / tokenFeeRatio); + } + await this.userBalanceService.deductFromBalance(req.user.id, `model${deductType === 1 ? 3 : 4}`, charge, total_tokens); + }); + + /* openAi */ + if (Number(keyType) === 1) { + const { key, maxToken, maxTokenRes, proxyResUrl } = await this.formatModelToken(currentRequestModelKey); + const { parentMessageId, completionParams, systemMessage } = mergedOptions; + const { model, temperature } = completionParams; + const { context: messagesHistory } = await this.nineStore.buildMessageFromParentMessageId(usingNetwork ? netWorkPrompt : prompt, { + parentMessageId, + systemMessage, + maxModelToken: maxToken, + maxResponseTokens: maxTokenRes, + maxRounds: addOneIfOdd(rounds), + imageUrl, + activeModel, + }); + let firstChunk = true; + response = await sendMessageFromOpenAi( + messagesHistory, + { + maxToken, + maxTokenRes, + apiKey: modelKey, + model, + prompt, + activeModel, + imageUrl, + temperature, + proxyUrl: proxyResUrl, + onProgress: (chat) => { + res.write(firstChunk ? JSON.stringify(chat) : `\n${JSON.stringify(chat)}`); + lastChat = chat; + firstChunk = false; + }, + }, + this.uploadService, + ); + isSuccess = true; + } + + /* 百度文心 */ + if (Number(keyType) === 2) { + let firstChunk = true; + const { context: messagesHistory } = await this.nineStore.buildMessageFromParentMessageId(usingNetwork ? netWorkPrompt : prompt, { + parentMessageId, + maxRounds: addOneIfOdd(rounds), + }); + response = await sendMessageFromBaidu(usingNetwork ? netWorkPrompt : messagesHistory, { + temperature, + accessToken, + model, + onProgress: (data) => { + res.write(firstChunk ? JSON.stringify(data) : `\n${JSON.stringify(data)}`); + firstChunk = false; + lastChat = data; + }, + }); + isSuccess = true; + } + + /* 清华智谱 */ + if (Number(keyType) === 3) { + let firstChunk = true; + const { context: messagesHistory } = await this.nineStore.buildMessageFromParentMessageId(usingNetwork ? netWorkPrompt : prompt, { + parentMessageId, + maxRounds: addOneIfOdd(rounds), + }); + response = await sendMessageFromZhipu(usingNetwork ? netWorkPrompt : messagesHistory, { + temperature, + key, + model, + onProgress: (data) => { + res.write(firstChunk ? JSON.stringify(data) : `\n${JSON.stringify(data)}`); + firstChunk = false; + lastChat = data; + }, + }); + isSuccess = true; + } + + const userMessageData: MessageInfo = { + id: this.nineStore.getUuid(), + text: prompt, + role: 'user', + name: undefined, + usage: null, + imageUrl, + activeModel, + parentMessageId: parentMessageId, + conversationId: response?.conversationId, + }; + + othersInfo = { model, parentMessageId }; + + await this.nineStore.setData(userMessageData); + + const assistantMessageData: MessageInfo = { + id: response.id, + text: response.text, + role: 'assistant', + name: undefined, + usage: response?.usage, + imageUrl: imageUrl, + parentMessageId: userMessageData.id, + conversationId: response?.conversationId, + }; + + await this.nineStore.setData(assistantMessageData); + + othersInfo = { model, parentMessageId: userMessageData.id }; + } else { + const { key, maxToken, maxTokenRes, proxyResUrl } = await this.formatModelToken(currentRequestModelKey); + const { parentMessageId, completionParams, systemMessage } = mergedOptions; + const { model, temperature } = completionParams; + const { context: messagesHistory } = await this.nineStore.buildMessageFromParentMessageId(usingNetwork ? netWorkPrompt : prompt, { + parentMessageId, + systemMessage, + maxRounds: addOneIfOdd(rounds), + }); + response = await sendMessageFromOpenAi(messagesHistory, { + apiKey: modelKey, + model, + temperature, + proxyUrl: proxyResUrl, + onProgress: null, + prompt, + }); + } + /* 统一最终输出格式 */ + let usage = null; + let formatResponse = null; + if (model.includes('dall')) { + usage = response.detail?.usage || { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 }; + } else { + formatResponse = await unifiedFormattingResponse(keyType, response, othersInfo); + } + const { prompt_tokens, completion_tokens, total_tokens } = model.includes('dall') ? usage : formatResponse.usage; + /* 区分扣除普通还是高级余额 model3: 普通余额 model4: 高级余额 */ + let charge = deduct; + if (isTokenBased === true) { + charge = Math.ceil((deduct * total_tokens) / tokenFeeRatio); + } + await this.userBalanceService.deductFromBalance(req.user.id, `model${deductType === 1 ? 3 : 4}`, charge, total_tokens); + + /* 记录key的使用次数 和使用token */ + await this.modelsService.saveUseLog(keyId, total_tokens); + + const curIp = getClientIp(req); + + /* 用户询问 */ + await this.chatLogService.saveChatLog({ + appId, + curIp, + userId: req.user.id, + type: DeductionKey.CHAT_TYPE, + prompt, + imageUrl, + activeModel, + answer: '', + promptTokens: prompt_tokens, + completionTokens: 0, + totalTokens: total_tokens, + model: model, + role: 'user', + groupId, + requestOptions: JSON.stringify({ + options: null, + prompt, + }), + }); + + // gpt回答 + await this.chatLogService.saveChatLog({ + appId, + curIp, + userId: req.user.id, + type: DeductionKey.CHAT_TYPE, + prompt: prompt, + imageUrl: response?.imageUrl, + answer: response.text, + promptTokens: prompt_tokens, + completionTokens: completion_tokens, + totalTokens: total_tokens, + model: model, + role: 'assistant', + groupId, + requestOptions: JSON.stringify({ + options: { + model: model, + temperature, + }, + prompt, + }), + conversationOptions: JSON.stringify({ + conversationId: response.conversationId, + model: model, + parentMessageId: response.id, + temperature, + }), + }); + Logger.debug( + `用户ID: ${req.user.id} 模型名称: ${modelName}-${activeModel}, 消耗token: ${total_tokens}, 消耗积分: ${charge}`, + 'ChatgptService', + ); + const userBalance = await this.userBalanceService.queryUserBalance(req.user.id); + response.userBanance = { ...userBalance }; + response.result && (response.result = ''); + response.is_end = true; //本次才是表示真的结束 + if (res) { + return res.write(`\n${JSON.stringify(response)}`); + } else { + return response.text; + } + } catch (error) { + console.log('chat-error <----------------------------------------->', modelKey, error); + const code = error?.statusCode || 400; + const status = error?.response?.status || error?.statusCode || 400; + console.log( + 'chat-error-detail <----------------------------------------->', + 'code: ', + code, + 'message', + error?.message, + 'statusText:', + error?.response?.statusText, + 'status', + error?.response?.status, + ); + if (error.status && error.status === 402) { + const errMsg = { message: `Catch Error ${error.message}`, code: 402 }; + if (res) { + return res.write(JSON.stringify(errMsg)); + } else { + throw new HttpException(error.message, HttpStatus.PAYMENT_REQUIRED); + } + } + + if (!status) { + if (res) { + return res.write(JSON.stringify({ message: error.message, code: 500 })); + } else { + throw new HttpException(error.message, HttpStatus.BAD_REQUEST); + } + } + + let message = OpenAiErrorCodeMessage[status] ? OpenAiErrorCodeMessage[status] : '服务异常、请重新试试吧!!!'; + + if (error?.message.includes('The OpenAI account associated with this API key has been deactivated.') && Number(keyType) === 1) { + await this.modelsService.lockKey(keyId, '当前模型key已被封禁、已冻结当前调用Key、尝试重新对话试试吧!', -1); + message = '当前模型key已被封禁'; + } + + if (error?.statusCode === 429 && error.message.includes('billing') && Number(keyType) === 1) { + await this.modelsService.lockKey(keyId, '当前模型key余额已耗尽、已冻结当前调用Key、尝试重新对话试试吧!', -3); + message = '当前模型key余额已耗尽'; + } + + if (error?.statusCode === 429 && error?.statusText === 'Too Many Requests') { + message = '当前模型调用过于频繁、请重新试试吧!'; + } + + /* 提供了错误的秘钥 */ + if (error?.statusCode === 401 && error.message.includes('Incorrect API key provided') && Number(keyType) === 1) { + await this.modelsService.lockKey(keyId, '提供了错误的模型秘钥', -2); + message = '提供了错误的模型秘钥、已冻结当前调用Key、请重新尝试对话!'; + } + + /* 模型有问题 */ + if (error?.statusCode === 404 && error.message.includes('This is not a chat model and thus not supported') && Number(keyType) === 1) { + await this.modelsService.lockKey(keyId, '当前模型不是聊天模型', -4); + message = '当前模型不是聊天模型、已冻结当前调用Key、请重新尝试对话!'; + } + + if (code === 400) { + console.log('400 error', error, error.message); + } + + /* 防止因为key的原因直接导致客户端以为token过期退出 401只给用于鉴权token中 */ + const errMsg = { message: message || 'Please check the back-end console', code: code === 401 ? 400 : code || 500 }; + + if (res) { + return res.write(JSON.stringify(errMsg)); + } else { + throw new HttpException(errMsg.message, HttpStatus.BAD_REQUEST); + } + } finally { + res && res.end(); + } + } + + async draw(body: ChatDrawDto, req: Request) { + /* 敏感词检测 */ + await this.badwordsService.checkBadWords(body.prompt, req.user.id); + await this.userService.checkUserStatus(req.user); + // TODO 目前仅支持一张才这样计算 + const money = body?.quality === 'hd' ? 4 : 2; + await this.userBalanceService.validateBalance(req, 'mjDraw', money); + let images = []; + /* 从3的卡池随机拿一个key */ + const detailKeyInfo = await this.modelsService.getCurrentModelKeyInfo('dall-e-3'); + const keyId = detailKeyInfo?.id; + const { key, proxyResUrl } = await this.formatModelToken(detailKeyInfo); + Logger.log(`draw paompt info <==**==> ${body.prompt}, key ===> ${key}`, 'DrawService'); + try { + const api = `${proxyResUrl}/v1/images/generations`; + const params = { ...body, model: 'dall-e-3' }; + console.log('dall-e draw params: ', params); + const res = await axios.post(api, { ...params, response_format: 'b64_json' }, { headers: { Authorization: `Bearer ${key}` } }); + images = res.data.data; + const task = []; + for (const item of images) { + const filename = uuid.v4().slice(0, 10) + '.png'; + const buffer = Buffer.from(item.b64_json, 'base64'); + task.push(this.uploadService.uploadFile({ filename, buffer })); + } + const urls = await Promise.all(task); + /* 绘制openai的dall-e2绘画也扣除的是绘画积分次数 */ + await this.userBalanceService.deductFromBalance(req.user.id, 'mjDraw', params?.quality === 'standard' ? 2 : 4, money); + const curIp = getClientIp(req); + const taskLog = []; + const cosType = await this.uploadService.getUploadType(); + const [width, height] = body.size.split('x'); + urls.forEach((url) => { + taskLog.push( + this.chatLogService.saveChatLog({ + curIp, + userId: req.user.id, + type: DeductionKey.PAINT_TYPE, + prompt: body.prompt, + answer: url, + fileInfo: JSON.stringify({ + cosType, + width, + height, + cosUrl: url, + }), + promptTokens: 0, + completionTokens: 0, + totalTokens: 0, + model: 'dall-e-3', + }), + ); + }); + await Promise.all(taskLog); + return urls; + } catch (error) { + const status = error?.response?.status || 500; + console.log('openai-draw error: ', JSON.stringify(error), key, status); + const message = error?.response?.data?.error?.message; + if (status === 429) { + throw new HttpException('当前请求已过载、请稍等会儿再试试吧!', HttpStatus.BAD_REQUEST); + } + if (status === 400 && message.includes('This request has been blocked by our content filters')) { + throw new HttpException('您的请求已被系统拒绝。您的提示可能存在一些非法的文本。', HttpStatus.BAD_REQUEST); + } + if (status === 400 && message.includes('Billing hard limit has been reached')) { + await this.modelsService.lockKey(keyId, '当前模型key已被封禁、已冻结当前调用Key、尝试重新对话试试吧!', -1); + throw new HttpException('当前Key余额已不足、请重新再试一次吧!', HttpStatus.BAD_REQUEST); + } + if (status === 500) { + throw new HttpException('绘制图片失败,请检查你的提示词是否有非法描述!', HttpStatus.BAD_REQUEST); + } + if (status === 401) { + throw new HttpException('绘制图片失败,此次绘画被拒绝了!', HttpStatus.BAD_REQUEST); + } + throw new HttpException('绘制图片失败,请稍后试试吧!', HttpStatus.BAD_REQUEST); + } + } + + /* 当前所有key的列表 */ + async getAllKeyList() { + const list = await this.gptKeysEntity.find({ + where: { status: 1 }, + select: ['id', 'key', 'weight', 'model', 'maxModelTokens', 'maxResponseTokens', 'openaiProxyUrl', 'openaiTimeoutMs'], + }); + const list3 = list.filter((t) => t.model.includes('gpt-3')); + const list4 = list.filter((t) => t.model.includes('gpt-4')); + this.keyPool = { + list3, + list4, + }; + } + + /* 拿到代理地址 */ + async getModelProxyUrl(modelKey) { + const openaiBaseUrl = await this.globalConfigService.getConfigs(['openaiBaseUrl']); + return modelKey?.proxyUrl || openaiBaseUrl || 'https://api.openai.com'; + } + + /* TODO 区分整理不同默认的token数量管理 */ + async formatModelToken(detailKeyInfo) { + /* global config */ + const { + openaiModel3MaxTokens = 0, + openaiModel3MaxTokensRes = 0, + openaiModel3MaxTokens16k = 0, + openaiModel3MaxTokens16kRes = 0, + openaiModel4MaxTokens = 0, + openaiModel4MaxTokensRes = 0, + openaiModel4MaxTokens32k = 0, + openaiModel4MaxTokens32kRes = 0, + openaiBaseUrl = '', + } = await this.globalConfigService.getConfigs([ + 'openaiModel3MaxTokens', + 'openaiModel3MaxTokensRes', + 'openaiModel3MaxTokens16k', + 'openaiModel3MaxTokens16kRes', + 'openaiModel4MaxTokens', + 'openaiModel4MaxTokensRes', + 'openaiModel4MaxTokens32k', + 'openaiModel4MaxTokens32kRes', + 'openaiBaseUrl', + ]); + + let maxToken = null; + let maxTokenRes = null; + let proxyResUrl = null; + let { model, maxModelTokens = 0, maxResponseTokens = 0, proxyUrl = '', key } = detailKeyInfo; + + if (model.toLowerCase().includes('gpt-4')) { + maxModelTokens >= 8192 && (maxModelTokens = 8192); + maxTokenRes >= 4096 && (maxModelTokens = 4096); + maxToken = maxModelTokens || openaiModel4MaxTokens || 8192; + maxTokenRes = maxResponseTokens || openaiModel4MaxTokensRes || 4096; + + if (model.toLowerCase().includes('32k')) { + maxModelTokens >= 32768 && (maxModelTokens = 32768); + maxTokenRes >= 16384 && (maxModelTokens = 16384); + maxToken = maxModelTokens || openaiModel4MaxTokens32k || 32768; + maxTokenRes = maxResponseTokens || openaiModel4MaxTokens32kRes || 16384; + } + + if (model.toLowerCase().includes('1106')) { + maxModelTokens >= 16380 && (maxModelTokens = 16380); + maxTokenRes >= 4096 && (maxModelTokens = 4096); + maxToken = maxModelTokens || 16380; + maxTokenRes = maxResponseTokens || 4096; + } + } + if (model.toLowerCase().includes('gpt-3')) { + maxModelTokens >= 4096 && (maxModelTokens = 4096); + maxTokenRes >= 2000 && (maxModelTokens = 2000); + maxToken = maxModelTokens || openaiModel3MaxTokens || 4096; + maxTokenRes = maxResponseTokens || openaiModel3MaxTokensRes || 2000; + + if (model.toLowerCase().includes('16k')) { + maxModelTokens >= 16384 && (maxModelTokens = 16384); + maxTokenRes >= 8192 && (maxModelTokens = 8192); + maxToken = maxModelTokens || openaiModel3MaxTokens16k || 16384; + maxTokenRes = maxResponseTokens || openaiModel3MaxTokens16kRes || 8192; + } + + if (model.toLowerCase().includes('1106')) { + maxModelTokens >= 16384 && (maxModelTokens = 16384); + maxTokenRes >= 4096 && (maxModelTokens = 4096); + maxToken = maxModelTokens || 16384; + maxTokenRes = maxResponseTokens || 4096; + } + } + + proxyResUrl = proxyUrl || openaiBaseUrl || 'https://api.openai.com'; + if (maxTokenRes >= maxToken) { + maxTokenRes = Math.floor(maxToken / 2); + } + return { + key, + maxToken, + maxTokenRes, + proxyResUrl, + }; + } + + async setChatBoxType(req: Request, body) { + try { + const { name, icon, order, id, status } = body; + if (id) { + return await this.chatBoxTypeEntity.update({ id }, { name, icon, order, status }); + } else { + return await this.chatBoxTypeEntity.save({ name, icon, order, status }); + } + } catch (error) { + console.log('error: ', error); + } + } + + async delChatBoxType(req: Request, body) { + const { id } = body; + if (!id) { + throw new HttpException('非法操作!', HttpStatus.BAD_REQUEST); + } + const count = await this.chatBoxEntity.count({ where: { typeId: id } }); + if (count) { + throw new HttpException('当前分类下有未处理数据不可移除!', HttpStatus.BAD_REQUEST); + } + return await this.chatBoxTypeEntity.delete({ id }); + } + + async queryChatBoxType() { + return await this.chatBoxTypeEntity.find({ + order: { order: 'DESC' }, + }); + } + + async setChatBox(req: Request, body) { + const { title, prompt, appId, order, status, typeId, id, url } = body; + if (!typeId) { + throw new HttpException('缺失必要参数!', HttpStatus.BAD_REQUEST); + } + try { + const params: any = { title, order, status, typeId, url }; + params.appId = appId || 0; + params.prompt = prompt || ''; + if (id) { + return await this.chatBoxEntity.update({ id }, params); + } else { + return await this.chatBoxEntity.save(params); + } + } catch (error) { + console.log('error: ', error); + } + } + + async delChatBox(req: Request, body) { + const { id } = body; + if (!id) { + throw new HttpException('非法操作!', HttpStatus.BAD_REQUEST); + } + return await this.chatBoxEntity.delete({ id }); + } + + async queryChatBox() { + const data = await this.chatBoxEntity.find({ + order: { order: 'DESC' }, + }); + const typeIds = [...new Set(data.map((t) => t.typeId))]; + const appIds = [...new Set(data.map((t) => t.appId))]; + const typeRes = await this.chatBoxTypeEntity.find({ where: { id: In(typeIds) } }); + const appRes = await this.appEntity.find({ where: { id: In(appIds) } }); + return data.map((item: any) => { + const { typeId, appId } = item; + item.typeInfo = typeRes.find((t) => t.id === typeId); + item.appInfo = appRes.find((t) => t.id === appId); + return item; + }); + } + + async queryChatBoxFrontend() { + const typeRes = await this.chatBoxTypeEntity.find({ order: { order: 'DESC' }, where: { status: true } }); + const boxinfos = await this.chatBoxEntity.find({ where: { status: true } }); + const appIds = [...new Set(boxinfos.map((t) => t.appId))]; + const appInfos = await this.appEntity.find({ where: { id: In(appIds) } }); + boxinfos.forEach((item: any) => { + const app = appInfos.find((k) => k.id === item.appId); + item.coverImg = app?.coverImg; + return item; + }); + return typeRes.map((t: any) => { + t.childList = boxinfos.filter((box) => box.typeId === t.id && box.status); + return t; + }); + } + + async setChatPreType(req: Request, body) { + try { + const { name, icon, order, id, status } = body; + if (id) { + return await this.chatPreTypeEntity.update({ id }, { name, icon, order, status }); + } else { + return await this.chatPreTypeEntity.save({ name, icon, order, status }); + } + } catch (error) { + console.log('error: ', error); + } + } + + async delChatPreType(req: Request, body) { + const { id } = body; + if (!id) { + throw new HttpException('非法操作!', HttpStatus.BAD_REQUEST); + } + const count = await this.chatBoxEntity.count({ where: { typeId: id } }); + if (count) { + throw new HttpException('当前分类下有未处理数据不可移除!', HttpStatus.BAD_REQUEST); + } + return await this.chatPreTypeEntity.delete({ id }); + } + + async queryChatPreType() { + return await this.chatPreTypeEntity.find({ + order: { order: 'DESC' }, + }); + } + + async setChatPre(req: Request, body) { + const { title, prompt, appId, order, status, typeId, id, url } = body; + if (!typeId) { + throw new HttpException('缺失必要参数!', HttpStatus.BAD_REQUEST); + } + try { + const params: any = { title, prompt, order, status, typeId, url }; + if (id) { + return await this.chatPreEntity.update({ id }, params); + } else { + return await this.chatPreEntity.save(params); + } + } catch (error) { + console.log('error: ', error); + } + } + + async delChatPre(req: Request, body) { + const { id } = body; + if (!id) { + throw new HttpException('非法操作!', HttpStatus.BAD_REQUEST); + } + return await this.chatPreEntity.delete({ id }); + } + + async queryChatPre() { + const data = await this.chatPreEntity.find({ + order: { order: 'DESC' }, + }); + const typeIds = [...new Set(data.map((t) => t.typeId))]; + const typeRes = await this.chatPreTypeEntity.find({ where: { id: In(typeIds) } }); + return data.map((item: any) => { + const { typeId, appId } = item; + item.typeInfo = typeRes.find((t) => t.id === typeId); + return item; + }); + } + + async queryChatPreList() { + const typeRes = await this.chatPreTypeEntity.find({ order: { order: 'DESC' }, where: { status: true } }); + const chatPreData = await this.chatPreEntity.find({ where: { status: true } }); + return typeRes.map((t: any) => { + t.childList = chatPreData.filter((box) => box.typeId === t.id && box.status); + return t; + }); + } + + /* 通过模型拿到当前模型支持的最大上下文 */ + async getMaxTokenFromModelWithOpenAi(model: string, maxModelToken, maxResToken) { + let maxToken = 4096; + let maxRes = 2048; + + if (model.toLowerCase().includes('gpt-4')) { + /* 普通的4 是8196最大token 32k为32768 */ + maxToken = maxModelToken >= 8196 ? 8196 : maxModelToken; + maxRes = maxResToken >= 4096 ? 4096 : maxResToken; + + /* 32k模型最大回复 */ + if (model.toLowerCase().includes('32k')) { + maxToken = maxModelToken >= 32768 ? 32768 : maxModelToken; + maxRes = maxResToken >= 16000 ? 16000 : maxResToken; + } + + /* gpt4 1106 或者 preview 最大 128k 回复最大 4096 */ + if (model.toLowerCase().includes('gpt-4-1106') || model.toLowerCase().includes('gpt-4-vision-preview')) { + maxToken = maxModelToken >= 128000 ? 128000 : maxModelToken; + maxRes = maxResToken >= 4096 ? 4096 : maxResToken; + } + } + + /* 3的模型 */ + if (model.toLowerCase().includes('gpt-3')) { + /* 普通的模型 最大上下文4096 */ + maxToken = maxModelToken >= 4096 ? 4096 : maxModelToken; + maxRes = maxResToken >= 2048 ? 2048 : maxResToken; + + if (model.toLowerCase().includes('16k')) { + maxToken = maxModelToken >= 16384 ? 16384 : maxModelToken; + maxRes = maxResToken >= 8000 ? 8000 : maxResToken; + } + + if (model.toLowerCase().includes('1106')) { + maxToken = maxModelToken >= 16384 ? 16384 : maxModelToken; + maxRes = maxResToken >= 8000 ? 8000 : maxResToken; + } + } + + return { + maxToken, + maxRes, + }; + } +} diff --git a/service/src/modules/chatgpt/dto/chatDraw.dto.ts b/service/src/modules/chatgpt/dto/chatDraw.dto.ts new file mode 100644 index 0000000..b3c1fca --- /dev/null +++ b/service/src/modules/chatgpt/dto/chatDraw.dto.ts @@ -0,0 +1,16 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class ChatDrawDto { + @ApiProperty({ example: 'Draw a cute little dog', description: '绘画描述信息' }) + prompt: string; + + @ApiProperty({ example: 1, description: '绘画张数', required: true }) + n: number; + + @ApiProperty({ example: '1024x1024', description: '图片尺寸', required: true }) + size: string; + + @ApiProperty({ example: 'standard', description: '图片质量', required: true }) + quality: string; +} diff --git a/service/src/modules/chatgpt/dto/chatProcess.dto.ts b/service/src/modules/chatgpt/dto/chatProcess.dto.ts new file mode 100644 index 0000000..56c7965 --- /dev/null +++ b/service/src/modules/chatgpt/dto/chatProcess.dto.ts @@ -0,0 +1,33 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class Options { + @IsString() + parentMessageId: string; + model?: string; + temperature?: number; + top_p?: number; + groupId?: number; +} + +export class ChatProcessDto { + @ApiProperty({ example: 'hello, Who are you', description: '对话信息' }) + @IsNotEmpty({ message: '提问信息不能为空!' }) + prompt: string; + + @ApiProperty({ example: '{ parentMessageId: 0 }', description: '上次对话信息', required: false }) + @Type(() => Options) + options: Options; + + @ApiProperty({ + example: "You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully. Respond using markdown.", + description: '系统预设信息', + }) + @IsOptional() + systemMessage?: string; + + @ApiProperty({ example: 1, description: '应用id', required: false }) + @IsOptional() + appId: number; +} diff --git a/service/src/modules/chatgpt/gptKeys.entity.ts b/service/src/modules/chatgpt/gptKeys.entity.ts new file mode 100644 index 0000000..fb4ecb3 --- /dev/null +++ b/service/src/modules/chatgpt/gptKeys.entity.ts @@ -0,0 +1,45 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'gpt_keys' }) +export class GptKeysEntity extends BaseEntity { + @Column({ unique: true, comment: 'gpt key', length: 255 }) + key: string; + + @Column({ comment: '使用的状态: 0:禁用 1:启用', default: 0 }) + status: number; + + @Column({ comment: '绑定的模型是?', default: 'gpt-3.5-turbo' }) + model: string; + + @Column({ comment: 'key的余额', type: 'decimal', precision: 10, scale: 2, default: 0 }) + balance: string; + + @Column({ comment: 'key的余额类型', default: '', nullable: true }) + type: string; + + @Column({ comment: 'key的状态: 1:有效 2:余额耗尽 -1:被封号', default: 1 }) + keyStatus: number; + + @Column({ comment: 'key的到期时间', nullable: true }) + expireTime: Date; + + @Column({ comment: 'key权重', default: 1 }) + weight: number; + + @Column({ comment: 'key的使用次数', default: 0 }) + useCount: number; + + @Column({ comment: '模型支持的最大Token', nullable: true }) + maxModelTokens: number; + + @Column({ comment: '模型设置的最大回复Token', nullable: true }) + maxResponseTokens: number; + + @Column({ comment: '当前模型的代理地址', nullable: true }) + openaiProxyUrl: string; + + @Column({ comment: '当前模型的超时时间单位ms', nullable: true }) + openaiTimeoutMs: number; +} diff --git a/service/src/modules/chatgpt/helper.ts b/service/src/modules/chatgpt/helper.ts new file mode 100644 index 0000000..a4ff478 --- /dev/null +++ b/service/src/modules/chatgpt/helper.ts @@ -0,0 +1,71 @@ +/** + * @desc 处理不同模型返回的最后一次汇总内容 输出为相同格式 方便后面使用 + * @param keyType 模型key类型 + * @param response 模型返回的整体内容 + */ +export function unifiedFormattingResponse(keyType, response, others){ + let formatRes = { + keyType, // 模型类型 + model: '', // 调用模型名称 + parentMessageId: '', // 父级对话id + text: '', //本次回复内容 + usage: { + prompt_tokens: 0, //提问token + completion_tokens: 0, // 回答token + total_tokens: 0, // 总消耗token + } + } + /* openai */ + if([1].includes(Number(keyType))){ + const { model, parentMessageId } = response?.detail + let { usage } = response?.detail + if(!usage){ + usage = { + prompt_tokens: 0, + completion_tokens: 0, + total_tokens: 0 + } + } + const { prompt_tokens, completion_tokens, total_tokens } = usage + formatRes = { + keyType, + model, + parentMessageId, + text: response.text, + usage: { + prompt_tokens, + completion_tokens, + total_tokens + } + } + } + + /* 百度 */ + if([2, 3].includes(Number(keyType))) { + const { usage, text } = response + const { prompt_tokens, completion_tokens, total_tokens } = usage + const { model, parentMessageId } = others + formatRes = { + keyType, + model, + parentMessageId, + text, + usage: { + prompt_tokens, + completion_tokens, + total_tokens + } + } + } + + return formatRes; +} + +/*百度的模型不允许传入偶数的message数组 让round为奇数的时候 加一 */ +export function addOneIfOdd(num) { + if (num % 2 !== 0) { + return num + 1; + } else { + return num; + } +} \ No newline at end of file diff --git a/service/src/modules/chatgpt/openai.ts b/service/src/modules/chatgpt/openai.ts new file mode 100644 index 0000000..442e5e5 --- /dev/null +++ b/service/src/modules/chatgpt/openai.ts @@ -0,0 +1,187 @@ +import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'; +import { get_encoding } from '@dqbd/tiktoken' +import { removeSpecialCharacters } from '@/common/utils'; +import { ConsoleLogger, HttpException, HttpStatus, Logger } from '@nestjs/common'; +import * as uuid from 'uuid'; + + +const tokenizer = get_encoding('cl100k_base') + +interface SendMessageResult { + id?: string; + text: string; + role?: string; + detail?: any; +} + +function getFullUrl(proxyUrl) { + const processedUrl = proxyUrl.endsWith('/') ? proxyUrl.slice(0, -1) : proxyUrl; + const baseUrl = processedUrl || 'https://api.openai.com' + return `${baseUrl}/v1/chat/completions` +} + +export async function sendMessageFromOpenAi(messagesHistory, inputs, uploadService?) { + const { onProgress, maxToken, apiKey, model, temperature = 0.8, proxyUrl, prompt } = inputs + if (model.includes('dall')) { + let result: any = { text: '', imageUrl: '' }; + try { + const options: AxiosRequestConfig = { + method: 'POST', + url: `${proxyUrl}/v1/images/generations`, + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${apiKey}`, + }, + data: { + prompt: prompt, + model: model, + response_format: 'b64_json' + }, + } + const response: any = await axios(options); + const { b64_json, revised_prompt } = response.data.data[0] + const buffer = Buffer.from(b64_json, 'base64'); + let imgUrl = ''; + try { + const filename = uuid.v4().slice(0, 10) + '.png'; + Logger.debug(`------> 开始上传图片!!!`, 'MidjourneyService'); + const buffer = Buffer.from(b64_json, 'base64'); + // imgUrl = await uploadService.uploadFileFromUrl({ filename, url }) + imgUrl = await uploadService.uploadFile({ filename, buffer }); + Logger.debug(`图片上传成功,URL: ${imgUrl}`, 'MidjourneyService'); + } catch (error) { + Logger.error(`上传图片过程中出现错误: ${error}`, 'MidjourneyService'); + } + result.imageUrl = imgUrl + result.text = revised_prompt; + onProgress && onProgress({ text: result.text }) + return result; + } catch (error) { + const status = error?.response?.status || 500; + console.log('openai-draw error: ', JSON.stringify(error), status); + const message = error?.response?.data?.error?.message; + if (status === 429) { + result.text = '当前请求已过载、请稍等会儿再试试吧!'; + return result; + } + if (status === 400 && message.includes('This request has been blocked by our content filters')) { + result.text = '您的请求已被系统拒绝。您的提示可能存在一些非法的文本。'; + return result; + } + if (status === 400 && message.includes('Billing hard limit has been reached')) { + result.text = '当前模型key已被封禁、已冻结当前调用Key、尝试重新对话试试吧!'; + return result; + } + if (status === 500) { + result.text = '绘制图片失败,请检查你的提示词是否有非法描述!'; + return result; + } + if (status === 401) { + result.text = '绘制图片失败,此次绘画被拒绝了!'; + return result; + } + result.text = '绘制图片失败,请稍后试试吧!'; + return result; + } + } else { + let result: any = { text: '' }; + const options: AxiosRequestConfig = { + method: 'POST', + url: getFullUrl(proxyUrl), + responseType: 'stream', + headers: { + 'Content-Type': 'application/json', + Accept: "application/json", + Authorization: `Bearer ${apiKey}`, + }, + data: { + stream: true, + temperature, + model, + messages: messagesHistory, + }, + }; + + if (model === 'gpt-4-vision-preview') { + options.data.max_tokens = 2048; + } + + return new Promise(async (resolve, reject) => { + try { + const response: any = await axios(options); + const stream = response.data; + + stream.on('data', (chunk) => { + const splitArr = chunk.toString().split('\n\n').filter((line) => line.trim() !== ''); + for (const line of splitArr) { + const data = line.replace('data:', ''); + let ISEND = false; + try { + ISEND = JSON.parse(data).choices[0].finish_reason === 'stop'; + } catch (error) { + ISEND = false; + } + /* 如果结束 返回所有 */ + if (ISEND) { + result.text = result.text.trim(); + return result; + } + try { + if (data !== " [DONE]" && data !== "[DONE]" && data != "[DONE] ") { + const parsedData = JSON.parse(data); + if (parsedData.id) { + result.id = parsedData.id; + } + if (parsedData.choices?.length) { + const delta = parsedData.choices[0].delta; + result.delta = delta.content; + if (delta?.content) result.text += delta.content; + if (delta.role) { + result.role = delta.role; + } + result.detail = parsedData; + } + onProgress && onProgress({ text: result.text }) + } + } catch (error) { + console.log('parse Error', data) + } + } + }); + + let totalText = ''; + messagesHistory.forEach(message => { + totalText += message.content + ' '; + }); + stream.on('end', () => { + // 手动计算token + if (result.detail && result.text) { + const promptTokens = getTokenCount(totalText) + const completionTokens = getTokenCount(result.text) + result.detail.usage = { + prompt_tokens: promptTokens, + completion_tokens: completionTokens, + total_tokens: promptTokens + completionTokens, + estimated: true + } + } + return resolve(result); + }); + } catch (error) { + reject(error) + } + }) + } +} + +export function getTokenCount(text: string) { + if (!text) return 0; + // 确保text是字符串类型 + if (typeof text !== 'string') { + text = String(text); + } + text = text.replace(/<\|endoftext\|>/g, '') + return tokenizer.encode(text).length +} + + diff --git a/service/src/modules/chatgpt/store.ts b/service/src/modules/chatgpt/store.ts new file mode 100644 index 0000000..a090492 --- /dev/null +++ b/service/src/modules/chatgpt/store.ts @@ -0,0 +1,241 @@ +import Keyv from 'keyv'; +import { v4 as uuidv4 } from 'uuid'; +import { get_encoding } from '@dqbd/tiktoken'; +import { Logger } from '@nestjs/common'; +import { includes } from 'lodash'; + +const tokenizer = get_encoding('cl100k_base'); + +export type Role = 'user' | 'assistant' | 'function'; + +interface Options { + store: Keyv; + namespace: string; + expires?: number; +} + +export interface MessageInfo { + id: string; + text: string; + role: Role; + name?: string; + imageUrl?: string; + activeModel?: string; + usage: { + prompt_tokens?: number; + completion_tokens?: number; + total_tokens?: number; + }; + parentMessageId?: string; + conversationId?: string; +} + +export interface BuildMessageOptions { + systemMessage?: string; + parentMessageId: string; + maxRounds?: number; + maxModelToken?: number; + maxResponseTokens?: number; + name?: string; + imageUrl?: string; + activeModel?: string; + model?: string; +} + +// export interface BuildMessageRes { +// message: any[] +// numTokens: number +// maxTokens: number +// } +export type BuildMessageRes = any[]; + +export interface NineStoreInterface { + getData(id: string): Promise; + setData(message: MessageInfo, expires?: number): Promise; + getUuid(): string; + buildMessageFromParentMessageId(string, opt?: BuildMessageOptions): Promise; +} + +export class NineStore implements NineStoreInterface { + private namespace: string; + private store: Keyv; + private expires: number; + + constructor(options: Options) { + const { store, namespace, expires } = this.formatOptions(options); + this.store = store; + this.namespace = namespace; + this.expires = expires; + } + + public formatOptions(options: Options) { + const { store, expires = 1000 * 60 * 60 * 24 * 3, namespace = 'chat' } = options; + return { store, namespace, expires }; + } + + public generateKey(key: any) { + return this.namespace ? `${this.namespace}-${key}` : key; + } + + public async getData(id: string): Promise { + const res = await this.store.get(id); + return res; + } + + public async setData(message: MessageInfo, expires = this.expires): Promise { + await this.store.set(message.id, message, expires); + } + + /** + * @desc 通过传入prompt和parentMessageId 递归往上拿到历史记录组装为模型需要的上下文、 + * 可以传入maxRounds限制最大轮次的对话 传入maxModelToken, maxResponseTokens 则通过计算上下文占用的token计算出最大容量 + */ + public async buildMessageFromParentMessageId(text: string, options: BuildMessageOptions) { + let { maxRounds, maxModelToken, maxResponseTokens, systemMessage = '', name, imageUrl, model, activeModel } = options; + let { parentMessageId } = options; + let messages = []; + let nextNumTokensEstimate = 0; + // messages.push({ role: 'system', content: systemMessage, name }) + if (systemMessage) { + const specialModels = ['gemini-pro', 'ERNIE', 'hunyuan']; + const isSpecialModel = activeModel && specialModels.some((specialModel) => activeModel.includes(specialModel)); + if (isSpecialModel) { + messages.push({ role: 'user', content: systemMessage, name }); + messages.push({ role: 'assistant', content: '好的', name }); + } else { + messages.push({ role: 'system', content: systemMessage, name }); + } + } + const systemMessageOffset = messages.length; + let round = 0; + const uploadModels = ['gpt-4-vision-preview', 'gpt-4o', 'claude-3-5-sonnet-20240620']; + // 特殊处理 gpt-4-vision-preview 模型 + if (uploadModels.includes(activeModel) && imageUrl) { + const content = [ + { + type: 'text', + text: text, + }, + { + type: 'image_url', + image_url: { + url: imageUrl, + }, + }, + ]; + messages.push({ role: 'user', content: content, name }); + } else if (uploadModels.includes(activeModel) && !imageUrl) { + const content = [ + { + type: 'text', + text: text, + }, + ]; + messages.push({ role: 'user', content: content, name }); + } else { + // 处理 gpt-4-all 模型 + if ((model === 'gpt-4-all' || model === 'gpt-4o-all') && imageUrl) { + text = imageUrl + '\n' + text; + } + messages.push({ role: 'user', content: text, name }); + } + // Logger.debug(`发送的参数:${messages}`); + + let nextMessages = messages; + do { + // let parentId = '1bf30262-8f25-4a03-88ad-9d42d55e6f0b' + /* 没有parentMessageId就没有历史 直接返回 */ + if (!parentMessageId) { + break; + } + const parentMessage = await this.getData(parentMessageId); + if (!parentMessage) { + break; + } + const { text, name, role, imageUrl } = parentMessage; + let content = text; // 默认情况下使用text作为content + + // 特别处理包含 imageUrl 的消息 + if (imageUrl) { + if (uploadModels.includes(activeModel)) { + if (role === 'assistant') { + content = [{ type: 'text', text: text }]; + } else { + content = [ + { type: 'text', text: text }, + { type: 'image_url', image_url: { url: imageUrl } }, + ]; + } + } + } else if (!imageUrl && uploadModels.includes(activeModel)) { + content = [{ type: 'text', text: text }]; + } + + /* 将本轮消息插入到列表中 */ + nextMessages = nextMessages.slice(0, systemMessageOffset).concat([ + { role, content, name }, // 使用调整后的content + ...nextMessages.slice(systemMessageOffset), + ]); + + // Logger.debug(`nextMessages:${JSON.stringify(nextMessages, null, 2)}`); + + round++; + /* 如果超出了限制的最大轮次 就退出 不包含本次发送的本身 */ + if (maxRounds && round >= maxRounds) { + break; + } + /* 如果传入maxModelToken, maxResponseTokens 则判断是否超过边界 */ + if (maxModelToken && maxResponseTokens) { + const maxNumTokens = maxModelToken - maxResponseTokens; // 模型最大token限制减去限制回复剩余空间 + /* 当前的对话历史列表合并的总token容量 */ + nextNumTokensEstimate = await this._getTokenCount(nextMessages); + /* 200是添加的一个安全区间 防止少量超过 待优化 */ + const isValidPrompt = nextNumTokensEstimate + 200 <= maxNumTokens; + /* 如果大于这个区间了说明本轮加入之后导致超过限制、则递归删除头部的对话轮次来保证不出边界 */ + if (!isValidPrompt) { + nextMessages = this._recursivePruning(nextMessages, maxNumTokens, systemMessage); + } + } + parentMessageId = parentMessage.parentMessageId; + } while (true); + const maxTokens = Math.max(1, Math.min(maxModelToken - nextNumTokensEstimate, maxResponseTokens)); + // Logger.debug(`本轮调用:模型:${model}`) + console.log('本次携带上下文的长度', nextMessages.length, nextNumTokensEstimate); + return { context: nextMessages, round: nextMessages.length, historyToken: nextNumTokensEstimate }; + } + + protected _getTokenCount(messages: any[]) { + let text = messages.reduce((pre: string, cur: any) => { + // 检查cur.content是否为数组 + if (Array.isArray(cur.content)) { + // 提取并连接数组中的文本元素 + const contentText = cur.content + .filter((item: { type: string }) => item.type === 'text') + .map((item: { text: any }) => item.text) + .join(' '); + return pre + contentText; + } else { + // 如果不是数组,则直接添加 + return pre + (cur.content || ''); + } + }, ''); + + text = text.replace(/<\|endoftext\|>/g, ''); + return tokenizer.encode(text).length; + } + + /* 递归删除 当token超过模型限制容量 删除到在限制区域内 */ + protected _recursivePruning(messages: MessageInfo[], maxNumTokens: number, systemMessage: string) { + const currentTokens = this._getTokenCount(messages); + if (currentTokens <= maxNumTokens) { + return messages; + } + /* 有系统预设则跳过第一条删除 没有则直接删除 */ + messages.splice(systemMessage ? 1 : 0, 1); + return this._recursivePruning(messages, maxNumTokens, systemMessage); + } + + public getUuid() { + return uuidv4(); + } +} diff --git a/service/src/modules/chatgpt/test_baidu.js b/service/src/modules/chatgpt/test_baidu.js new file mode 100644 index 0000000..808f0d9 --- /dev/null +++ b/service/src/modules/chatgpt/test_baidu.js @@ -0,0 +1,86 @@ +// const AK = "58Uq1GPUPvGBoIKQ2NNrRk8I" +// const SK = "CB3i28zVY2O5Hyb5OCQomwOWrjKQKwMY" + +// const AK = "VSUQWIV0FCyDC6FwfHo04jQ6" +// const SK = "1sv3lkXGOqwbyEUDFVMA5O5Y9L27LNtP" + +const AK = "vdzYBsVGfz8eidePaZzT3nlC" +const SK = "ZMyEVTR1VhGlGcsReK9BHZjgpne9ujsC" + +const axios = require('axios'); + + + +/** + * 使用 AK,SK 生成鉴权签名(Access Token) + * @return string 鉴权签名信息(Access Token) + */ +function getAccessToken() { + let url = `https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${AK}&client_secret=${SK}`; + + return new Promise((resolve, reject) => { + axios.post(url) + .then(response => { + resolve(response.data.access_token); + }) + .catch(error => { + console.log('error: ', error); + reject(error); + }); + }); +} + + +async function main() { + const accessToken = await getAccessToken(); + const url = `https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=${accessToken}`; + var options = { + method: 'POST', + url, + responseType: 'stream', + headers: { + 'Content-Type': 'application/json' + }, + data: { + stream: true, + messages: [ + { + role: "user", + content: "请介绍一下你自己" + } + ] + } + }; + + axios(options) + .then(response => { + const stream = response.data; + let resData = '' + stream.on('data', chunk => { + // 处理每个数据块 + try { + const lines = chunk + .toString() + .split("\n\n") + .filter((line) => line.trim() !== ""); + + for (const line of lines) { + const message = line.replace("data: ", ""); + const parsed = JSON.parse(message); + console.log('parsed: ', parsed); + } + } catch (error) { + + } + }); + stream.on('end', () => { + // 处理流的结束 + console.log('Stream end'); + }); + }) + .catch(error => { + throw new Error(error); + }); +} + +main(); diff --git a/service/src/modules/chatgpt/whiteList.entity.ts b/service/src/modules/chatgpt/whiteList.entity.ts new file mode 100644 index 0000000..1dee28e --- /dev/null +++ b/service/src/modules/chatgpt/whiteList.entity.ts @@ -0,0 +1,18 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'white_list' }) +export class WhiteListEntity extends BaseEntity { + @Column({ unique: true, comment: '用户ID' }) + userId: number; + + @Column({ comment: '使用次数限制', default: 0 }) + count: number; + + @Column({ comment: '当前用户状态', default: 1 }) + status: number; + + @Column({ comment: '已经使用的次数', default: 0 }) + useCount: number; +} diff --git a/service/src/modules/chatgpt/zhipu.js b/service/src/modules/chatgpt/zhipu.js new file mode 100644 index 0000000..41881ad --- /dev/null +++ b/service/src/modules/chatgpt/zhipu.js @@ -0,0 +1,106 @@ +const AK = "58Uq1GPUPvGBoIKQ2NNrRk8I" +const SK = "CB3i28zVY2O5Hyb5OCQomwOWrjKQKwMY" + +const axios = require('axios'); +const jwt = require('jsonwebtoken'); + +function generateToken(apikey, expSeconds) { + const [id, secret] = apikey.split('.'); + const payload = { + api_key: id, + exp: Math.round(Date.now()) + expSeconds * 1000, + timestamp: Math.round(Date.now()), + }; + return jwt.sign(payload, secret, { algorithm: 'HS256', header: { alg: 'HS256', sign_type: 'SIGN' }}); +} +const key = '6f3e78ee46553487a30d1404882e435a.6AWDxxlNDGjHioew' + +async function test() { + const token = await generateToken(key, 600000) + console.log('token: ', token); + const url = `https://open.bigmodel.cn/api/paas/v3/model-api/chatglm_pro/sse-invoke`; + var options = { + method: 'POST', + url, + responseType: 'stream', + headers: { + 'Content-Type': 'application/json', + 'Authorization': token + }, + data: { + prompt: [ + { + role: "user", + content: "请介绍下自己" + } + ] + } + }; + + axios(options) + .then(response => { + const stream = response.data; + let resData; + let cacheResText = '' + stream.on('data', chunk => { + const stramArr = chunk.toString().split("\n").filter((line) => line.trim() !== "") + const parseData = compilerStream(stramArr) + if(!parseData) return + const { event, id, result, meta, is_end } = parseData + result && (cacheResText += result.trim()) + if (is_end) { + resData = parseData + resData.text = cacheResText + } + }); + stream.on('end', () => { + console.log(resData,'结束了') + }); + }) + .catch(error => { + throw new Error(error); + }); +} + + +/* 格式化信息并且输出为和百度一样的格式 前端不用变动了 */ +function compilerStream(streamArr){ + if(streamArr.length === 3){ + return { + event: streamArr[0].replace('event:', ''), + id: streamArr[1].replace('id:', ''), + is_end: false, + result: streamArr[2].replace('data:', '').trim() + } + } + if(streamArr.length === 4){ + console.log('streamArr: ', streamArr); + return { + event: streamArr[0].replace('event:', ''), + id: streamArr[1].replace('id:', ''), + result: streamArr[2].replace('data:', '').trim(), + is_end: true, + meta: compilerMetaJsonStr(streamArr[3].replace('meta:', '')) + } + } +} + +function compilerMetaJsonStr(data){ + let jsonStr = {} + try { + /* + { + task_status: 'SUCCESS', + usage: { completion_tokens: 49, prompt_tokens: 719, total_tokens: 768 }, + task_id: '8008779509197849552', + request_id: '8008779509197849552' + } + */ + jsonStr = JSON.parse(data) + } catch (error) { + console.error('序列化数据出错', data) + } + return jsonStr; +} + +test(); diff --git a/service/src/modules/chatgpt/zhipu.ts b/service/src/modules/chatgpt/zhipu.ts new file mode 100644 index 0000000..ea8953b --- /dev/null +++ b/service/src/modules/chatgpt/zhipu.ts @@ -0,0 +1,112 @@ +import { resolve } from "path"; + +const axios = require('axios') +const jwt = require('jsonwebtoken') + + +/* 生成token */ +export function generateToken(apikey, expSeconds = 1000 * 60 * 60 * 24 * 360) { + const [id, secret] = apikey.split('.'); + const payload = { + api_key: id, + exp: Math.round(Date.now()) + expSeconds * 1000, + timestamp: Math.round(Date.now()), + }; + // ts-ignore + return jwt.sign(payload, secret, { algorithm: 'HS256', header: { alg: 'HS256', sign_type: 'SIGN' } }); +} + +/* 解析最后一次结果 */ +export function compilerMetaJsonStr(data): any { + let jsonStr = {} + try { + /* + { + task_status: 'SUCCESS', + usage: { completion_tokens: 49, prompt_tokens: 719, total_tokens: 768 }, + task_id: '8008779509197849552', + request_id: '8008779509197849552' + } + */ + jsonStr = JSON.parse(data) + } catch (error) { + /* 解析失败暂定一个固定值 待优化 */ + jsonStr = { + usage: { + completion_tokens: 49, + prompt_tokens: 333, + total_tokens: 399 + }, + } + console.error('json parse error from zhipu!', data) + } + return jsonStr; +} + +/* 格式化信息并且输出为和百度一样的格式 前端不用变动了 */ +export function compilerStream(streamArr) { + if (streamArr.length === 3) { + return { + event: streamArr[0].replace('event:', ''), + id: streamArr[1].replace('id:', ''), + is_end: false, + result: streamArr[2].replace('data:', '').trim() + } + } + if (streamArr.length === 4) { + return { + event: streamArr[0].replace('event:', ''), + id: streamArr[1].replace('id:', ''), + result: streamArr[2].replace('data:', '').trim(), + is_end: true, + usage: compilerMetaJsonStr(streamArr[3].replace('meta:', ''))?.usage + } + } +} + +export async function sendMessageFromZhipu(messagesHistory, { onProgress, key, model, temperature = 0.95 }) { + const token = await generateToken(key) + return new Promise((resolve, reject) => { + const url = `https://open.bigmodel.cn/api/paas/v3/model-api/${model}/sse-invoke`; + const options = { + method: 'POST', + url, + responseType: 'stream', + headers: { + 'Content-Type': 'application/json', + 'Authorization': token + }, + data: { + prompt: messagesHistory, + temperature + } + }; + axios(options) + .then(response => { + const stream = response.data; + let resData; + let cacheResText = '' + stream.on('data', chunk => { + const stramArr = chunk.toString().split("\n").filter((line) => line.trim() !== "") + const parseData = compilerStream(stramArr) + if (!parseData) return + const { id, result, is_end } = parseData + result && (cacheResText += result.trim()) + if (is_end) { + parseData.is_end = false //为了在后续的消费之后添加上余额 本次并不是真正的结束 + resData = parseData + resData.text = cacheResText + } + onProgress(parseData); + }); + stream.on('end', () => { + resolve(resData); + cacheResText = '' + }); + }) + .catch(error => { + console.log('error: ', error); + }); + + }) +} \ No newline at end of file diff --git a/service/src/modules/crami/crami.controller.ts b/service/src/modules/crami/crami.controller.ts new file mode 100644 index 0000000..00d3fcd --- /dev/null +++ b/service/src/modules/crami/crami.controller.ts @@ -0,0 +1,97 @@ +import { CramiService } from './crami.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { CreatePackageDto } from './dto/createPackage.dto'; +import { UpdatePackageDto } from './dto/updatePackage.dto'; +import { CreatCramiDto } from './dto/createCrami.dto'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { Request } from 'express'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { UseCramiDto } from './dto/useCrami.dto'; +import { QuerAllPackageDto } from './dto/queryAllPackage.dto'; +import { DeletePackageDto } from './dto/deletePackage.dto'; +import { QuerAllCramiDto } from './dto/queryAllCrami.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { BatchDelCramiDto } from './dto/batchDelCrami.dto'; + +@ApiTags('Crami') +@Controller('crami') +export class CramiController { + constructor(private readonly cramiService: CramiService) {} + + @Get('queryOnePackage') + @ApiOperation({ summary: '查询单个套餐' }) + async queryOnePackage(@Query('id') id: number) { + return this.cramiService.queryOnePackage(id); + } + + @Get('queryAllPackage') + @ApiOperation({ summary: '查询所有套餐' }) + async queryAllPackage(@Query() query: QuerAllPackageDto) { + return this.cramiService.queryAllPackage(query); + } + + @Post('createPackage') + @ApiOperation({ summary: '创建套餐' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async createPackage(@Body() body: CreatePackageDto) { + return this.cramiService.createPackage(body); + } + + @Post('updatePackage') + @ApiOperation({ summary: '更新套餐' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async updatePackage(@Body() body: UpdatePackageDto) { + return this.cramiService.updatePackage(body); + } + + @Post('delPackage') + @ApiOperation({ summary: '删除套餐' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delPackage(@Body() body: DeletePackageDto) { + return this.cramiService.delPackage(body); + } + + @Post('createCrami') + @ApiOperation({ summary: '生成卡密' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async createCrami(@Body() body: CreatCramiDto) { + return this.cramiService.createCrami(body); + } + + @Post('useCrami') + @ApiOperation({ summary: '使用卡密' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async useCrami(@Req() req: Request, @Body() body: UseCramiDto) { + return this.cramiService.useCrami(req, body); + } + + @Get('queryAllCrami') + @ApiOperation({ summary: '查询所有卡密' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async queryAllCrami(@Query() params: QuerAllCramiDto, @Req() req: Request) { + return this.cramiService.queryAllCrami(params, req); + } + + @Post('delCrami') + @ApiOperation({ summary: '删除卡密' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delCrami(@Body('id') id: number) { + return this.cramiService.delCrami(id); + } + + @Post('batchDelCrami') + @ApiOperation({ summary: '批量删除卡密' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async batchDelCrami(@Body() body: BatchDelCramiDto) { + return this.cramiService.batchDelCrami(body); + } +} diff --git a/service/src/modules/crami/crami.entity.ts b/service/src/modules/crami/crami.entity.ts new file mode 100644 index 0000000..a12194b --- /dev/null +++ b/service/src/modules/crami/crami.entity.ts @@ -0,0 +1,33 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'crami' }) +export class CramiEntity extends BaseEntity { + @Column({ unique: true, comment: '存储卡密CDK编码', length: 50 }) + code: string; + + @Column({ comment: '卡密CDK类型:1: 普通 | 2: 单人可使用一次 ', default: 1 }) + cramiType: number; + + @Column({ comment: '卡密CDK类型: 默认套餐类型 | 不填就是自定义类型', nullable: true }) + packageId: number; + + @Column({ comment: '卡密CDK状态,如已使用、未使用等', default: 0 }) + status: number; + + @Column({ comment: '卡密使用账户用户ID信息', nullable: true }) + useId: number; + + @Column({ comment: '卡密有效期天数、从生成创建的时候开始计算,设为0则不限时间', default: 0 }) + days: number; + + @Column({ comment: '卡密模型3额度', nullable: true }) + model3Count: number; + + @Column({ comment: '卡密模型4额度', nullable: true }) + model4Count: number; + + @Column({ comment: '卡密MJ绘画额度', nullable: true }) + drawMjCount: number; +} diff --git a/service/src/modules/crami/crami.module.ts b/service/src/modules/crami/crami.module.ts new file mode 100644 index 0000000..8054f00 --- /dev/null +++ b/service/src/modules/crami/crami.module.ts @@ -0,0 +1,43 @@ +import { Global, Module } from '@nestjs/common'; +import { CramiService } from './crami.service'; +import { CramiController } from './crami.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { CramiEntity } from './crami.entity'; +import { CramiPackageEntity } from './cramiPackage.entity'; +import { UserEntity } from '../user/user.entity'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { BalanceEntity } from '../userBalance/balance.entity'; +import { AccountLogEntity } from '../userBalance/accountLog.entity'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { UserBalanceEntity } from '../userBalance/userBalance.entity'; +import { SalesUsersEntity } from '../sales/salesUsers.entity'; +import { WhiteListEntity } from '../chatgpt/whiteList.entity'; +import { FingerprintLogEntity } from '../userBalance/fingerprint.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; + +@Global() +@Module({ + imports: [ + TypeOrmModule.forFeature([ + SalesUsersEntity, + CramiEntity, + CramiPackageEntity, + UserEntity, + BalanceEntity, + AccountLogEntity, + ConfigEntity, + UserBalanceEntity, + WhiteListEntity, + FingerprintLogEntity, + ChatLogEntity, + ChatGroupEntity, + MidjourneyEntity + ]), + ], + providers: [CramiService, UserBalanceService], + controllers: [CramiController], + exports: [CramiService], +}) +export class CramiModule {} diff --git a/service/src/modules/crami/crami.service.ts b/service/src/modules/crami/crami.service.ts new file mode 100644 index 0000000..94e85d3 --- /dev/null +++ b/service/src/modules/crami/crami.service.ts @@ -0,0 +1,218 @@ +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { CramiEntity } from './crami.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository, Like, In, MoreThan, LessThanOrEqual, Not } from 'typeorm'; +import { CramiPackageEntity } from './cramiPackage.entity'; +import { CreatePackageDto } from './dto/createPackage.dto'; +import { CreatCramiDto } from './dto/createCrami.dto'; +import { generateCramiCode, isExpired, maskCrami, maskEmail } from '@/common/utils'; +import { Request } from 'express'; +import { UseCramiDto } from './dto/useCrami.dto'; +import { UserEntity } from '../user/user.entity'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { RechargeType } from '@/common/constants/balance.constant'; +import { QuerAllPackageDto } from './dto/queryAllPackage.dto'; +import { DeletePackageDto } from './dto/deletePackage.dto'; +import { QuerAllCramiDto } from './dto/queryAllCrami.dto'; +import { BatchDelCramiDto } from './dto/batchDelCrami.dto'; + +@Injectable() +export class CramiService { + constructor( + @InjectRepository(CramiEntity) + private readonly cramiEntity: Repository, + @InjectRepository(CramiPackageEntity) + private readonly cramiPackageEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + private readonly userBalanceService: UserBalanceService, + ) {} + + /* 查询单个套餐 */ + async queryOnePackage(id) { + return await this.cramiPackageEntity.findOne({ where: { id } }); + } + + /* 查询所有套餐 */ + async queryAllPackage(query: QuerAllPackageDto) { + try { + const { page = 1, size = 10, name, status, type } = query; + const where = {}; + name && Object.assign(where, { name: Like(`%${name}%`) }); + status && Object.assign(where, { status }); + if (type) { + if (type > 0) { + Object.assign(where, { days: MoreThan(0) }); + } else { + Object.assign(where, { days: LessThanOrEqual(0) }); + } + } + const [rows, count] = await this.cramiPackageEntity.findAndCount({ + skip: (page - 1) * size, + take: size, + where, + order: { order: 'DESC' }, + }); + return { rows, count }; + } catch (error) { + console.log('error: ', error); + } + } + + /* 创建套餐 */ + async createPackage(body: CreatePackageDto) { + const { name, weight } = body; + const p = await this.cramiPackageEntity.findOne({ where: [{ name }, { weight }] }); + if (p) { + throw new HttpException('套餐名称或套餐等级重复、请检查!', HttpStatus.BAD_REQUEST); + } + try { + return await this.cramiPackageEntity.save(body); + } catch (error) { + console.log('error: ', error); + throw new HttpException(error, HttpStatus.BAD_REQUEST); + } + } + + /* 更新套餐 E */ + async updatePackage(body) { + const { id, name, weight } = body; + const op = await this.cramiPackageEntity.findOne({ where: { id } }); + if (!op) { + throw new HttpException('当前套餐不存在、请检查你的输入参数!', HttpStatus.BAD_REQUEST); + } + const count = await this.cramiPackageEntity.count({ + where: [ + { name, id: Not(id) }, + { weight, id: Not(id) }, + ], + }); + if (count) { + throw new HttpException('套餐名称或套餐等级重复、请检查!', HttpStatus.BAD_REQUEST); + } + const res = await this.cramiPackageEntity.update({ id }, body); + if (res.affected > 0) { + return '更新套餐成功!'; + } else { + throw new HttpException('更新套餐失败、请重试!', HttpStatus.BAD_REQUEST); + } + } + + /* 删除套餐 */ + async delPackage(body: DeletePackageDto) { + const { id } = body; + const count = await this.cramiEntity.count({ where: { packageId: id } }); + if (count) { + throw new HttpException('当前套餐下存在卡密、请先删除卡密后才可删除套餐!', HttpStatus.BAD_REQUEST); + } + return await this.cramiPackageEntity.delete({ id }); + } + + /* 生成卡密 */ + async createCrami(body: CreatCramiDto) { + const { packageId, count = 1 } = body; + /* 创建有套餐的卡密 */ + if (packageId) { + const pkg = await this.cramiPackageEntity.findOne({ where: { id: packageId } }); + if (!pkg) { + throw new HttpException('当前套餐不存在、请确认您选择的套餐是否存在!', HttpStatus.BAD_REQUEST); + } + const { days = -1, model3Count = 0, model4Count = 0, drawMjCount = 0 } = pkg; + const baseCrami = { packageId, days, model3Count, model4Count, drawMjCount }; + return await this.generateCrami(baseCrami, count); + } + /* 创建自定义的卡密 */ + if (!packageId) { + const { model3Count = 0, model4Count = 0, drawMjCount = 0 } = body; + if ([model3Count, model4Count, drawMjCount].every((v) => !v)) { + throw new HttpException('自定义卡密必须至少一项余额不为0️零!', HttpStatus.BAD_REQUEST); + } + const baseCrami = { days: -1, model3Count, model4Count, drawMjCount }; + return await this.generateCrami(baseCrami, count); + } + } + + /* 创建卡密 */ + async generateCrami(cramiInfo, count: number) { + const cramiList = []; + for (let i = 0; i < count; i++) { + const code = generateCramiCode(); + const crami = this.cramiEntity.create({ ...cramiInfo, code }); + cramiList.push(crami); + } + return await this.cramiEntity.save(cramiList); + } + + /* 使用卡密 */ + async useCrami(req: Request, body: UseCramiDto) { + const { id } = req.user; + const crami = await this.cramiEntity.findOne({ where: { code: body.code } }); + if (!crami) { + throw new HttpException('当前卡密不存在、请确认您输入的卡密是否正确!', HttpStatus.BAD_REQUEST); + } + const { status, days = -1, model3Count = 0, model4Count = 0, drawMjCount = 0, packageId } = crami; + if (status === 1) { + throw new HttpException('当前卡密已被使用、请确认您输入的卡密是否正确!', HttpStatus.BAD_REQUEST); + } + const balanceInfo = { model3Count, model4Count, drawMjCount, packageId }; + await this.userBalanceService.addBalanceToUser(id, { ...balanceInfo }, days); + await this.userBalanceService.saveRecordRechargeLog({ + userId: id, + rechargeType: RechargeType.PACKAGE_GIFT, + model3Count, + model4Count, + drawMjCount, + days, + }); + await this.cramiEntity.update({ code: body.code }, { useId: id, status: 1 }); + return '使用卡密成功'; + } + + /* 查询所有卡密 */ + async queryAllCrami(params: QuerAllCramiDto, req: Request) { + const { page = 1, size = 10, status, useId } = params; + const where = {}; + status && Object.assign(where, { status }); + useId && Object.assign(where, { useId }); + const [rows, count] = await this.cramiEntity.findAndCount({ + skip: (page - 1) * size, + take: size, + order: { createdAt: 'DESC' }, + where, + }); + const userIds = rows.map((t) => t.useId); + const packageIds = rows.map((t) => t.packageId); + const userInfos = await this.userEntity.find({ where: { id: In(userIds) } }); + const packageInfos = await this.cramiPackageEntity.find({ where: { id: In(packageIds) } }); + rows.forEach((t: any) => { + t.username = userInfos.find((u) => u.id === t.useId)?.username; + t.email = userInfos.find((u) => u.id === t.useId)?.email; + t.packageName = packageInfos.find((p) => p.id === t.packageId)?.name; + }); + req.user.role !== 'super' && rows.forEach((t: any) => (t.email = maskEmail(t.email))); + req.user.role !== 'super' && rows.forEach((t: any) => (t.code = maskCrami(t.code))); + return { rows, count }; + } + + /* 删除卡密 */ + async delCrami(id) { + const c = await this.cramiEntity.findOne({ where: { id } }); + if (!c) { + throw new HttpException('当前卡密不存在、请确认您要删除的卡密是否存在!', HttpStatus.BAD_REQUEST); + } + if (c.status === 1) { + throw new HttpException('当前卡密已被使用、已使用的卡密禁止删除!', HttpStatus.BAD_REQUEST); + } + return await this.cramiEntity.delete({ id }); + } + + async batchDelCrami(body: BatchDelCramiDto) { + const { ids } = body; + const res = await this.cramiEntity.delete(ids); + if (res.affected > 0) { + return '删除卡密成功!'; + } else { + throw new HttpException('删除卡密失败、请重试!', HttpStatus.BAD_REQUEST); + } + } +} diff --git a/service/src/modules/crami/cramiPackage.entity.ts b/service/src/modules/crami/cramiPackage.entity.ts new file mode 100644 index 0000000..cdfc3c9 --- /dev/null +++ b/service/src/modules/crami/cramiPackage.entity.ts @@ -0,0 +1,39 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'crami_package' }) +export class CramiPackageEntity extends BaseEntity { + @Column({ unique: true, comment: '套餐名称' }) + name: string; + + @Column({ comment: '套餐介绍详细信息' }) + des: string; + + @Column({ comment: '套餐封面图片', nullable: true }) + coverImg: string; + + @Column({ comment: '套餐价格¥', type: 'decimal', scale: 2, precision: 10 }) + price: number; + + @Column({ comment: '套餐排序、数字越大越靠前', default: 100 }) + order: number; + + @Column({ comment: '套餐是否启用中 0:禁用 1:启用', default: 1 }) + status: number; + + @Column({ comment: '套餐权重、数字越大表示套餐等级越高越贵', unique: true }) + weight: number; + + @Column({ comment: '卡密有效期天数、从使用的时候开始计算,设为-1则不限时间', default: 0 }) + days: number; + + @Column({ comment: '套餐包含的模型3数量', default: 0, nullable: true }) + model3Count: number; + + @Column({ comment: '套餐包含的模型4数量', default: 0, nullable: true }) + model4Count: number; + + @Column({ comment: '套餐包含的MJ绘画数量', default: 0, nullable: true }) + drawMjCount: number; +} diff --git a/service/src/modules/crami/dto/batchDelCrami.dto.ts b/service/src/modules/crami/dto/batchDelCrami.dto.ts new file mode 100644 index 0000000..f888aee --- /dev/null +++ b/service/src/modules/crami/dto/batchDelCrami.dto.ts @@ -0,0 +1,9 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { ArrayMinSize, IsArray, IsNumber } from 'class-validator'; + +export class BatchDelCramiDto { + @ApiProperty({ example: 1, description: '要删除的套餐Ids', required: true }) + @IsArray({ message: '参数类型为数组' }) + @ArrayMinSize(1, { message: '最短长度为1' }) + ids: number[]; +} diff --git a/service/src/modules/crami/dto/createCrami.dto.ts b/service/src/modules/crami/dto/createCrami.dto.ts new file mode 100644 index 0000000..03b74d9 --- /dev/null +++ b/service/src/modules/crami/dto/createCrami.dto.ts @@ -0,0 +1,44 @@ +import { + IsNotEmpty, + IsString, + IsIn, + IsOptional, + IsNumber, + IsDefined, + ValidatorConstraint, + ValidatorConstraintInterface, + Validate, + Max, + Min, +} from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class CreatCramiDto { + @ApiProperty({ example: 1, description: '套餐类型', required: true }) + @IsNumber({}, { message: '套餐类型必须是number' }) + @IsOptional() + packageId: number; + + @ApiProperty({ example: 1, description: '单次生成卡密数量' }) + @IsNumber({}, { message: '创建卡密的张数数量' }) + @Max(50, { message: '单次创建卡密的张数数量不能超过50张' }) + @Min(1, { message: '单次创建卡密的张数数量不能少于1张' }) + @IsOptional() + count: number; + + @ApiProperty({ example: 0, description: '卡密携带模型3额度' }) + @IsNumber({}, { message: '卡密携带的余额必须是number' }) + @IsOptional() + model3Count: number; + + @ApiProperty({ example: 100, description: '卡密携带模型4额度' }) + @IsNumber({}, { message: '卡密携带额度类型必须是number' }) + @IsOptional() + model4Count: number; + + @ApiProperty({ example: 3, description: '卡密携带MJ绘画额度' }) + @IsNumber({}, { message: '卡密携带额度类型必须是number' }) + @IsOptional() + drawMjCount: number; +} diff --git a/service/src/modules/crami/dto/createPackage.dto.ts b/service/src/modules/crami/dto/createPackage.dto.ts new file mode 100644 index 0000000..ed1568e --- /dev/null +++ b/service/src/modules/crami/dto/createPackage.dto.ts @@ -0,0 +1,102 @@ +import { + IsNotEmpty, + MinLength, + MaxLength, + IsString, + IsIn, + IsOptional, + Max, + Min, + ValidateNested, + IsNumber, + IsDefined, + IsDecimal, +} from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Transform, Type } from 'class-transformer'; + +export class CreatePackageDto { + @ApiProperty({ example: '基础套餐100次卡', description: '套餐名称', required: true }) + @IsDefined({ message: '套餐名称是必传参数' }) + name: string; + + @ApiProperty({ + example: '这是一个100次对话余额的套餐,我们将为您额外赠送3次绘画余额,活动期间,我们将在套餐基础上额外赠送您十次对话余额和1次绘画余额', + description: '套餐详情描述', + required: true, + }) + @IsDefined({ message: '套餐描述是必传参数' }) + des: string; + + @ApiProperty({ example: 7, default: 0, description: '套餐等级设置' }) + @IsNumber({}, { message: '套餐等级权重必须为数字' }) + weight: number; + + @ApiProperty({ example: 1, description: '套餐扣费类型 1:按次数 2:按Token', required: true }) + deductionType: number; + + @ApiProperty({ example: 'https://xxxx.png', description: '套餐封面图片' }) + @IsOptional() + coverImg: string; + + @Transform(({ value }) => parseFloat(value)) + price: number; + + @ApiProperty({ example: 100, description: '套餐排序、数字越大越靠前' }) + @IsOptional() + order?: number; + + @ApiProperty({ example: 1, description: '套餐状态 0:禁用 1:启用', required: true }) + @IsNumber({}, { message: '套餐状态必须是Number' }) + @IsIn([0, 1], { message: '套餐状态错误' }) + status: number; + + @ApiProperty({ example: 7, default: 0, description: '套餐有效期 -1为永久不过期' }) + @IsNumber({}, { message: '套餐有效期天数类型必须是number' }) + days: number; + + @ApiProperty({ example: 1000, default: 0, description: '模型3对话次数' }) + @IsNumber({}, { message: '模型3对话次数必须是number类型' }) + model3Count: number; + + @ApiProperty({ example: 10, default: 0, description: '模型4对话次数' }) + @IsNumber({}, { message: '模型4对话次数必须是number类型' }) + model4Count: number; + + @ApiProperty({ example: 10, default: 0, description: 'MJ绘画次数' }) + @IsNumber({}, { message: 'MJ绘画次数必须是number类型' }) + drawMjCount: number; + + // @ApiProperty({ example: 0, description: '卡密携带的用户余额金额' }) + // @IsNumber({}, { message: '卡密余额类型必须是number' }) + // balance: number; + + // @ApiProperty({ example: 100, description: '卡密携带的用户对话次数' }) + // @IsNumber({}, { message: '对话次数类型必须是number' }) + // usesLeft: number; + + // @ApiProperty({ example: 3, description: '卡密携带的用户绘画次数' }) + // @IsNumber({}, { message: '绘画次数类型必须是number' }) + // paintCount: number; + + // @ApiProperty({ example: 1, description: '是否开启额外赠送状态 0:关闭 1:开启' }) + // @IsNumber({}, { message: '是否开启额外赠送状态必须是Number' }) + // @IsIn([0, 1], { message: '是否开启额外赠送状态只能是0或1' }) + // @IsOptional() + // extraReward: number; + + // @ApiProperty({ example: 0, description: '卡密携带的额外赠送用户余额金额' }) + // @IsNumber({}, { message: '额外赠送卡密余额类型必须是number' }) + // @IsOptional() + // extraBalance: number; + + // @ApiProperty({ example: 10, description: '卡密携带的额外赠送用户对话次数' }) + // @IsNumber({}, { message: '额外赠送对话次数类型必须是number' }) + // @IsOptional() + // extraUsesLeft: number; + + // @ApiProperty({ example: 1, description: '卡密携带的额外赠送用户绘画次数' }) + // @IsNumber({}, { message: '额外赠送绘画次数类型必须是number' }) + // @IsOptional() + // extraPaintCount: number; +} diff --git a/service/src/modules/crami/dto/deletePackage.dto.ts b/service/src/modules/crami/dto/deletePackage.dto.ts new file mode 100644 index 0000000..c62a604 --- /dev/null +++ b/service/src/modules/crami/dto/deletePackage.dto.ts @@ -0,0 +1,8 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { IsNumber } from 'class-validator'; + +export class DeletePackageDto { + @ApiProperty({ example: 1, description: '要修改的套餐Id', required: true }) + @IsNumber({}, { message: '套餐ID必须是Number' }) + id: number; +} diff --git a/service/src/modules/crami/dto/queryAllCrami.dto.ts b/service/src/modules/crami/dto/queryAllCrami.dto.ts new file mode 100644 index 0000000..a0500c8 --- /dev/null +++ b/service/src/modules/crami/dto/queryAllCrami.dto.ts @@ -0,0 +1,22 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerAllCramiDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 1, description: '使用人Id', required: false }) + @IsOptional() + useId: number; + + @ApiProperty({ example: 1, description: '卡密状态 0:未使用 1:已消费', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/crami/dto/queryAllPackage.dto.ts b/service/src/modules/crami/dto/queryAllPackage.dto.ts new file mode 100644 index 0000000..cf8080b --- /dev/null +++ b/service/src/modules/crami/dto/queryAllPackage.dto.ts @@ -0,0 +1,26 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerAllPackageDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 'name', description: '套餐名称', required: false }) + @IsOptional() + name: string; + + @ApiProperty({ example: 1, description: '套餐状态 0:禁用 1:启用', required: false }) + @IsOptional() + status: number; + + @ApiProperty({ example: 1, description: '套餐类型 -1:永久套餐 1:限时套餐', required: false }) + @IsOptional() + type: number; +} diff --git a/service/src/modules/crami/dto/updatePackage.dto.ts b/service/src/modules/crami/dto/updatePackage.dto.ts new file mode 100644 index 0000000..acc2058 --- /dev/null +++ b/service/src/modules/crami/dto/updatePackage.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { CreatePackageDto } from './createPackage.dto'; + +export class UpdatePackageDto extends CreatePackageDto { + @ApiProperty({ example: 1, description: '要修改的套餐Id', required: true }) + @IsNumber({}, { message: '套餐ID必须是Number' }) + id: number; +} diff --git a/service/src/modules/crami/dto/useCrami.dto.ts b/service/src/modules/crami/dto/useCrami.dto.ts new file mode 100644 index 0000000..0ae0c64 --- /dev/null +++ b/service/src/modules/crami/dto/useCrami.dto.ts @@ -0,0 +1,8 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class UseCramiDto { + @ApiProperty({ example: 'ffar684rv254fs4f', description: '卡密信息', required: true }) + @IsDefined({ message: '套餐名称是必传参数' }) + code: string; +} diff --git a/service/src/modules/database/database.module.ts b/service/src/modules/database/database.module.ts new file mode 100644 index 0000000..b547b5a --- /dev/null +++ b/service/src/modules/database/database.module.ts @@ -0,0 +1,23 @@ +import { Module, OnModuleInit, Logger } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ConfigService } from 'nestjs-config'; +import { Connection } from 'typeorm'; +import { DatabaseService } from './database.service'; + +@Module({ + imports: [ + TypeOrmModule.forRootAsync({ + useFactory: (config: ConfigService) => config.get('database'), + inject: [ConfigService], + }), + ], + providers: [DatabaseService], +}) +export class DatabaseModule implements OnModuleInit { + constructor(private readonly connection: Connection, private readonly config: ConfigService) {} + private readonly logger = new Logger(DatabaseModule.name); + onModuleInit(): void { + const { database } = this.connection.options; + this.logger.log(`Your MySQL database named ${database} has been connected`); + } +} diff --git a/service/src/modules/database/database.service.spec.ts b/service/src/modules/database/database.service.spec.ts new file mode 100644 index 0000000..b806f31 --- /dev/null +++ b/service/src/modules/database/database.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { DatabaseService } from './database.service'; + +describe('DatabaseService', () => { + let service: DatabaseService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [DatabaseService], + }).compile(); + + service = module.get(DatabaseService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/service/src/modules/database/database.service.ts b/service/src/modules/database/database.service.ts new file mode 100644 index 0000000..690149d --- /dev/null +++ b/service/src/modules/database/database.service.ts @@ -0,0 +1,153 @@ +import { Injectable, OnModuleInit, Logger, HttpException, HttpStatus } from '@nestjs/common'; +import { Connection } from 'typeorm'; +import * as bcrypt from 'bcryptjs'; + +interface UserInfo { + username: string; + password: string; + status: number; + email: string; + sex: number; + role: string; +} + +@Injectable() +export class DatabaseService implements OnModuleInit { + constructor(private connection: Connection) { } + async onModuleInit() { + await this.checkSuperAdmin(); + await this.checkSiteBaseConfig(); + } + + /* 默认创建一个超级管理员账户 */ + async checkSuperAdmin() { + const user = await this.connection.query(`SELECT * FROM users WHERE role = 'super'`); + if (!user || user.length === 0) { + const superPassword = bcrypt.hashSync('123456', 10); //初始密码 + const adminPassword = bcrypt.hashSync('123456', 10); + const superEmail = 'default@cooper.com'; + const adminEmail = 'defaultAdmin@cooper.com'; + const superUserinfo = { username: 'super', password: superPassword, status: 1, email: superEmail, sex: 1, role: 'super' }; + const adminUserinfo = { username: 'admin', password: adminPassword, status: 1, email: adminEmail, sex: 1, role: 'admin' }; + await this.createDefaultUser(superUserinfo); + await this.createDefaultUser(adminUserinfo); + } + } + + /* 初始化创建 超级管理员和管理员 */ + async createDefaultUser(userInfo: UserInfo) { + try { + const { username, password, status, email, role } = userInfo; + const user = await this.connection.query( + `INSERT INTO users (username, password, status, email, role) VALUES ('${username}', '${password}', '${status}', '${email}', '${role}')`, + ); + const userId = user.insertId; + const balance = await this.connection.query(`INSERT INTO balance (userId, balance, usesLeft, paintCount) VALUES ('${userId}', 0, 1000, 100)`); + Logger.log( + `初始化创建${role}用户成功、用户名为[${username}]、初始密码为[${username === 'super' ? 'nine-super' : '123456'}] ==============> 请注意查阅`, + 'DatabaseService', + ); + } catch (error) { + console.log('error: ', error); + throw new HttpException('创建默认超级管理员失败!', HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + /* 检测有没有网站基础配置 */ + async checkSiteBaseConfig() { + const keys = ['siteName', 'qqNumber', 'vxNumber', 'robotAvatar', 'userDefautlAvatar']; + const result = await this.connection.query(` + SELECT COUNT(*) AS count FROM config WHERE \`configKey\` IN (${keys.map((k) => `'${k}'`).join(',')}) +`); + const count = parseInt(result[0].count); + if (count === 0) { + await this.createBaseSiteConfig(); + } + } + + /* 创建基础的网站数据 */ + async createBaseSiteConfig() { + try { + const code = ``; + + const noticeInfo = ` +#### YiAi 欢迎您 + - 欢迎使用YiAi + - 初始管理员账号密码 super 123456 【前台后台登录都可以修改】 + - 初始预览账号密码 admin 123456 【为后台查看账号 仅可查看部分非敏感数据】 +`; + + const defaultConfig = [ + { configKey: 'siteName', configVal: 'Yi Ai', public: 1, encry: 0 }, + { configKey: 'qqNumber', configVal: '805239273', public: 1, encry: 0 }, + { configKey: 'vxNumber', configVal: 'HelloWordYi819', public: 1, encry: 0 }, + { configKey: 'robotAvatar', configVal: '', public: 1, encry: 0 }, + { + configKey: 'userDefautlAvatar', + configVal: '', + public: 0, + encry: 0, + }, + { configKey: 'baiduCode', configVal: code, public: 1, encry: 0 }, + { configKey: 'baiduSiteId', configVal: '', public: 0, encry: 0 }, + { + configKey: 'baiduToken', + configVal: '', + public: 0, + encry: 0, + }, + { configKey: 'buyCramiAddress', configVal: '', public: 1, encry: 0 }, + { configKey: 'openaiBaseUrl', configVal: 'https://api.openai.com', public: 0, encry: 0 }, + { configKey: 'noticeInfo', configVal: noticeInfo, public: 1, encry: 0 }, + + { configKey: 'registerVerifyEmailTitle', configVal: 'Yi Ai团队账号验证', public: 0, encry: 0 }, + { + configKey: 'registerVerifyEmailDesc', + configVal: '欢迎使用Yi Ai团队的产品服务,请在五分钟内完成你的账号激活,点击以下按钮激活您的账号,', + public: 0, + encry: 0, + }, + { configKey: 'registerVerifyEmailFrom', configVal: 'Yi Ai团队', public: 0, encry: 0 }, + { configKey: 'registerVerifyExpir', configVal: '1800', public: 0, encry: 0 }, + { configKey: 'registerSuccessEmailTitle', configVal: 'Yi Ai账号激活成功', public: 0, encry: 0 }, + { configKey: 'registerSuccessEmailTeamName', configVal: 'Yi Ai', public: 0, encry: 0 }, + { + configKey: 'registerSuccessEmaileAppend', + configVal: ',请妥善保管您的账号,祝您使用愉快', + public: 0, + encry: 0, + }, + { configKey: 'registerFailEmailTitle', configVal: 'Yi Ai账号激活失败', public: 0, encry: 0 }, + { configKey: 'registerFailEmailTeamName', configVal: 'Yi Ai团队', public: 0, encry: 0 }, + /* 注册默认设置 */ + { configKey: 'registerSendStatus', configVal: '1', public: 1, encry: 0 }, + { configKey: 'registerSendModel3Count', configVal: '30', public: 1, encry: 0 }, + { configKey: 'registerSendModel4Count', configVal: '3', public: 1, encry: 0 }, + { configKey: 'registerSendDrawMjCount', configVal: '3', public: 1, encry: 0 }, + { configKey: 'firstRegisterSendStatus', configVal: '1', public: 1, encry: 0 }, + { configKey: 'firstRegisterSendRank', configVal: '500', public: 1, encry: 0 }, + { configKey: 'firstRregisterSendModel3Count', configVal: '10', public: 1, encry: 0 }, + { configKey: 'firstRregisterSendModel4Count', configVal: '10', public: 1, encry: 0 }, + { configKey: 'firstRregisterSendDrawMjCount', configVal: '10', public: 1, encry: 0 }, + { configKey: 'inviteSendStatus', configVal: '1', public: 1, encry: 0 }, + { configKey: 'inviteGiveSendModel3Count', configVal: '0', public: 1, encry: 0 }, + { configKey: 'inviteGiveSendModel4Count', configVal: '0', public: 1, encry: 0 }, + { configKey: 'inviteGiveSendDrawMjCount', configVal: '0', public: 1, encry: 0 }, + { configKey: 'invitedGuestSendModel3Count', configVal: '10', public: 1, encry: 0 }, + { configKey: 'invitedGuestSendModel4Count', configVal: '10', public: 1, encry: 0 }, + { configKey: 'invitedGuestSendDrawMjCount', configVal: '10', public: 1, encry: 0 }, + { configKey: 'isVerifyEmail', configVal: '1', public: 1, encry: 0 }, + ]; + + const res = await this.connection.query( + `INSERT INTO config (configKey, configVal, public, encry) VALUES ${defaultConfig + .map((d) => `('${d.configKey}', '${d.configVal.replace(/'/g, "\\'")}', '${d.public}', '${d.encry}')`) + .join(', ')}`, + ); + Logger.log(`初始化网站配置信息成功、如您需要修改网站配置信息,请前往管理系统系统配置设置 ==============> 请注意查阅`, 'DatabaseService'); + } catch (error) { + console.log('error: ', error); + throw new HttpException('创建默认网站配置失败!', HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/service/src/modules/database/initDatabase.ts b/service/src/modules/database/initDatabase.ts new file mode 100644 index 0000000..b1f0f76 --- /dev/null +++ b/service/src/modules/database/initDatabase.ts @@ -0,0 +1,24 @@ +import { Connection, ConnectionOptions } from 'typeorm'; +import * as mysql from 'mysql2/promise'; +import { ConfigService } from 'nestjs-config'; +import { HttpException, Logger } from '@nestjs/common'; +import * as os from 'os'; +import * as fetch from 'isomorphic-fetch'; + +export function initDatabase() { + mysql + .createConnection({ + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASS, + port: parseInt(process.env.DB_PORT), + }) + .then(async (conn) => { + const [rows] = await conn.execute(`SHOW DATABASES LIKE '${process.env.DB_DATABASE}'`); + if (Array.isArray(rows) && rows.length === 0) { + await conn.execute(`CREATE DATABASE ${process.env.DB_DATABASE}`); + Logger.log(`数据库创建成功[${process.env.DB_DATABASE}]`); + } + await conn.end(); + }); +} diff --git a/service/src/modules/draw/draw.controller.ts b/service/src/modules/draw/draw.controller.ts new file mode 100644 index 0000000..53963d1 --- /dev/null +++ b/service/src/modules/draw/draw.controller.ts @@ -0,0 +1,25 @@ +import { DrawService } from './draw.service'; +import { Body, Controller, Get, Post, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { StableDrawDto } from './dto/chatDraw.dto'; + +@ApiTags('draw') +@Controller('draw') +export class DrawController { + constructor(private readonly drawService: DrawService) {} + + @Get('engines') + @ApiOperation({ summary: '获取stable Diffusion 模型' }) + getEngines() { + return this.drawService.getEngines(); + } + + @Post('drawTextToImage') + @ApiOperation({ summary: 'stable Diffusion绘画' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + textToImage(@Body() body: StableDrawDto) { + return this.drawService.drawTextToImage(body); + } +} diff --git a/service/src/modules/draw/draw.module.ts b/service/src/modules/draw/draw.module.ts new file mode 100644 index 0000000..7d1a564 --- /dev/null +++ b/service/src/modules/draw/draw.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { DrawController } from './draw.controller'; +import { DrawService } from './draw.service'; + +@Module({ + controllers: [DrawController], + providers: [DrawService], +}) +export class DrawModule {} diff --git a/service/src/modules/draw/draw.service.ts b/service/src/modules/draw/draw.service.ts new file mode 100644 index 0000000..a45634a --- /dev/null +++ b/service/src/modules/draw/draw.service.ts @@ -0,0 +1,71 @@ +import { HttpException, HttpStatus, Injectable, OnModuleInit, Logger } from '@nestjs/common'; +import axios from 'axios'; +import * as uuid from 'uuid'; +import { UploadService } from '../upload/upload.service'; +import { StableDrawDto } from './dto/chatDraw.dto'; + +@Injectable() +export class DrawService implements OnModuleInit { + constructor(private readonly uploadService: UploadService) {} + private apiHost; + private apiKey; + private Authorization; + + async onModuleInit() { + this.apiHost = process.env.API_HOST ?? 'https://api.stability.ai'; + this.apiKey = process.env.STABILITY_API_KEY; + if (!this.apiKey) { + this.apiKey = '*********'; + // Logger.error(`Missing Stability API key. | 缺少Stability API key.`, 'DrawModule'); + } + this.Authorization = `Bearer ${this.apiKey}`; + } + + /* 获取模型列表 */ + async getEngines() { + const url = `${this.apiHost}/v1/engines/list`; + const res = await axios(url, { + method: 'GET', + headers: { Authorization: this.Authorization }, + }); + if (res.status === 401) { + console.log(`stability api key is invalid, ${res?.data?.message}`); + } + if (res.status !== 200) { + console.log(`${res.status} ${res?.data?.message}}`); + throw new HttpException('获取列表失败', HttpStatus.BAD_REQUEST); + } + return res.data; + } + + /* 绘制图片 文字 => 图片 */ + async drawTextToImage(body: StableDrawDto) { + const { engineId = 'stable-diffusion-768-v2-1' } = body; + const headers = { + 'Content-Type': 'application/json', + Accept: 'application/json', + Authorization: this.Authorization, + }; + const url = `${this.apiHost}/v1/generation/${engineId}/text-to-image`; + try { + const response = await axios.post(url, body, { headers }); + if (response.status !== 200) { + throw new HttpException('绘制失败', HttpStatus.BAD_REQUEST); + } + const resImageBasetask = []; + for (const item of response.data.artifacts) { + const filename = uuid.v4().slice(0, 10) + '.png'; + const buffer = Buffer.from(item.base64, 'base64'); + resImageBasetask.push(this.uploadService.uploadFile({ filename, buffer })); + } + const urls = await Promise.all(resImageBasetask); + return urls; + } catch (error) { + if (!error?.response) { + throw new HttpException('绘制失败', HttpStatus.BAD_REQUEST); + } + const { status, data } = error.response; + throw new HttpException(data.message, status); + } + } +} diff --git a/service/src/modules/draw/dto/chatDraw.dto.ts b/service/src/modules/draw/dto/chatDraw.dto.ts new file mode 100644 index 0000000..5572949 --- /dev/null +++ b/service/src/modules/draw/dto/chatDraw.dto.ts @@ -0,0 +1,79 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class TextPromptDto { + @IsString() + readonly text: string; + + @IsNumber() + readonly weight: number; +} + +export class StableDrawDto { + @ApiProperty({ example: 'stable-diffusion-512-v2-1', default: 512, description: '模型id', required: true }) + @IsDefined({ message: '模型id是必传参数' }) + engineId: string; + + @ApiProperty({ + example: [ + { + text: 'Draw a cute little dog', + weight: 0.5, + }, + ], + description: '绘画描述信息', + }) + @Type(() => TextPromptDto) + @ValidateNested({ each: true }) + text_prompts: TextPromptDto[]; + + @ApiProperty({ example: 1, description: '绘画张数', required: true }) + samples = 1; + + @ApiProperty({ example: 512, default: 512, description: '图片尺寸宽度' }) + @Max(1024, { message: '图片尺寸最大宽度1024' }) + @Min(512, { message: '图片尺寸最小宽度512' }) + width = 512; + + @ApiProperty({ example: 512, default: 512, description: '图片尺寸高度' }) + @Max(1024, { message: '图片高度尺寸最大宽度1024' }) + @Min(512, { message: '图片高度尺寸最小宽度512' }) + height = 512; + + @ApiProperty({ example: 15, default: 7, description: '图片绘制扩散思维[值越高,图像越接近提示]', required: true }) + @Max(35, { message: '扩散思维值最大为35' }) + @Min(0, { message: '扩散思维值最小为0' }) + cfg_scale = 7; + + @ApiProperty({ example: 50, description: '绘制步骤', required: true }) + @Max(150, { message: '最大步骤不大于150' }) + @Min(10, { message: '步骤不小于10' }) + steps = 30; + + @ApiProperty({ example: 'anime', description: '样式预设', required: true }) + @IsIn([ + '3d-model', + 'analog-film', + 'anime', + 'cinematic', + 'comic-book', + 'digital-art', + 'enhance', + 'fantasy-art', + 'isometric', + 'line-art', + 'low-poly', + 'modeling-compound', + 'neon-punk', + 'origami', + 'photographic', + 'pixel-art', + 'tile-texture', + ]) + style_preset: string; + + @ApiProperty({ example: 'NONE', description: '裁剪指南预设', required: true }) + @IsIn(['NONE', 'FAST_BLUE', 'FAST_GREEN', 'SIMPLE', 'SLOW', 'SLOWER', 'SLOWEST']) + clip_guidance_preset = 'NONE'; +} diff --git a/service/src/modules/fanyi/fanyi.controller.ts b/service/src/modules/fanyi/fanyi.controller.ts new file mode 100644 index 0000000..0ff9ea2 --- /dev/null +++ b/service/src/modules/fanyi/fanyi.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get, Query } from '@nestjs/common'; +import { FanyiService } from './fanyi.service'; + +@Controller('fanyi') +export class FanyiController { + constructor(private readonly fanyiService: FanyiService) {} + + @Get('translate') + convertToEnglish(@Query('text') text: string) { + return this.fanyiService.convertToEnglish(text); + } +} diff --git a/service/src/modules/fanyi/fanyi.module.ts b/service/src/modules/fanyi/fanyi.module.ts new file mode 100644 index 0000000..095e311 --- /dev/null +++ b/service/src/modules/fanyi/fanyi.module.ts @@ -0,0 +1,11 @@ +import { Global, Module } from '@nestjs/common'; +import { FanyiService } from './fanyi.service'; +import { FanyiController } from './fanyi.controller'; + +@Global() +@Module({ + providers: [FanyiService], + controllers: [FanyiController], + exports: [FanyiService], +}) +export class FanyiModule {} diff --git a/service/src/modules/fanyi/fanyi.service.ts b/service/src/modules/fanyi/fanyi.service.ts new file mode 100644 index 0000000..b81588e --- /dev/null +++ b/service/src/modules/fanyi/fanyi.service.ts @@ -0,0 +1,46 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import axios from 'axios'; +import * as crypto from 'crypto'; + +@Injectable() +export class FanyiService { + constructor(private readonly globalConfigService: GlobalConfigService) {} + + async convertToEnglish(text: string) { + if (!text) throw new HttpException(`请输入要翻译的内容!`, HttpStatus.BAD_REQUEST); + const { baiduFanyiAppId, baiduFanyiSecret } = await this.globalConfigService.getConfigs(['baiduFanyiAppId', 'baiduFanyiSecret']); + if (!baiduFanyiAppId || !baiduFanyiSecret) { + throw new HttpException(`当前管理员还未开放翻译服务、请联系管理员开通吧!`, HttpStatus.BAD_REQUEST); + } + const salt = Date.now().toString(); + const sign = crypto + .createHash('md5') + .update(baiduFanyiAppId + text + salt + baiduFanyiSecret) + .digest('hex'); + const url = 'https://fanyi-api.baidu.com/api/trans/vip/translate'; + const params = { + q: text.toString(), + from: 'auto', + to: 'en', + appid: baiduFanyiAppId, + salt, + sign, + }; + const res = await axios.post(url, params, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + }); + + const { from, to, trans_result, error_code, error_msg } = res.data; + if (error_code) { + console.log('res: ', res); + throw new HttpException(`翻译失败[${error_code}][${error_msg}]!`, HttpStatus.BAD_REQUEST); + } + if (!trans_result || !trans_result.length) { + console.log('res: ', res); + throw new HttpException(`翻译失败[${error_code}][${error_msg}]!`, HttpStatus.BAD_REQUEST); + } else { + } + return trans_result[0].dst; + } +} diff --git a/service/src/modules/globalConfig/config.entity.ts b/service/src/modules/globalConfig/config.entity.ts new file mode 100644 index 0000000..29d8473 --- /dev/null +++ b/service/src/modules/globalConfig/config.entity.ts @@ -0,0 +1,20 @@ +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'config' }) +export class ConfigEntity extends BaseEntity { + @Column({ length: 255, comment: '配置名称', nullable: true }) + configKey: string; + + @Column({ length: 3000, comment: '配置内容', nullable: true }) + configVal: string; + + @Column({ default: 0, comment: '配置是否公开,公开内容对前端项目展示 0:不公开 1:公开' }) + public: number; + + @Column({ default: 0, comment: '配置是否加密,加密内容仅仅super权限可看 0:不加 1:加' }) + encry: number; + + @Column({ default: 1, comment: '配置状态 0:关闭 1:启用' }) + status: number; +} diff --git a/service/src/modules/globalConfig/dto/queryConfig.dto.ts b/service/src/modules/globalConfig/dto/queryConfig.dto.ts new file mode 100644 index 0000000..5e2679b --- /dev/null +++ b/service/src/modules/globalConfig/dto/queryConfig.dto.ts @@ -0,0 +1,11 @@ +import { IsArray, ArrayNotEmpty, ValidateNested } from 'class-validator'; +import { Type } from 'class-transformer'; +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryConfigDto { + @ApiProperty({ example: ['siteName', 'qqNumber'], description: '想要查询的配置key' }) + @IsArray() + @ArrayNotEmpty() + @Type(() => String) + keys: string[]; +} diff --git a/service/src/modules/globalConfig/dto/setConfig.dto.ts b/service/src/modules/globalConfig/dto/setConfig.dto.ts new file mode 100644 index 0000000..fdb6b7c --- /dev/null +++ b/service/src/modules/globalConfig/dto/setConfig.dto.ts @@ -0,0 +1,17 @@ +import { IsArray, ArrayNotEmpty, ValidateNested } from 'class-validator'; +import { Type } from 'class-transformer'; +import { ApiProperty } from '@nestjs/swagger'; + +interface KeyValue { + configKey: string; + configVal: any; +} + +export class SetConfigDto { + @ApiProperty({ example: [{ configKey: 'siteName', configVal: 'NineAI' }], description: '设置配置信息' }) + @IsArray() + @ArrayNotEmpty() + @ValidateNested({ each: true }) + @Type(() => Object) + settings: KeyValue[]; +} diff --git a/service/src/modules/globalConfig/dto/setConfigCustom.dto.ts b/service/src/modules/globalConfig/dto/setConfigCustom.dto.ts new file mode 100644 index 0000000..a19694e --- /dev/null +++ b/service/src/modules/globalConfig/dto/setConfigCustom.dto.ts @@ -0,0 +1,16 @@ +import { IsArray, ArrayNotEmpty, ValidateNested } from 'class-validator'; +import { Type } from 'class-transformer'; +import { ApiProperty } from '@nestjs/swagger'; + +interface KeyValue { + configKey: string; + configVal: any; + infoKey: string +} + +export class SetConfigCustomDto { + @ApiProperty({ example: { configKey: 'siteName', configVal: 'NineAI', infoKey: 'NineAI' }, description: '设置更新配置信息' }) + @ValidateNested({ each: true }) + @Type(() => Object) + settings: KeyValue; +} diff --git a/service/src/modules/globalConfig/globalConfig.controller.ts b/service/src/modules/globalConfig/globalConfig.controller.ts new file mode 100644 index 0000000..8e56961 --- /dev/null +++ b/service/src/modules/globalConfig/globalConfig.controller.ts @@ -0,0 +1,74 @@ +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { SetConfigDto } from './dto/setConfig.dto'; +import { GlobalConfigService } from './globalConfig.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { QueryConfigDto } from './dto/queryConfig.dto'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { Request } from 'express'; +import { SetConfigCustomDto } from './dto/setConfigCustom.dto'; + +@ApiTags('config') +@Controller('config') +export class GlobalConfigController { + constructor(private readonly globalConfigService: GlobalConfigService) {} + + @ApiOperation({ summary: '查询所有配置' }) + @Get('queryAll') + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + queryAllConfig(@Req() req: Request) { + return this.globalConfigService.queryAllConfig(req); + } + + @ApiOperation({ summary: '查询前端网站的所有配置' }) + @Get('queryFronet') + queryFrontConfig(@Query() query: any, @Req() req: Request) { + return this.globalConfigService.queryFrontConfig(query, req); + } + + @ApiOperation({ summary: '查询所有gpt的key' }) + @Get('queryGptKeys') + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + queryGptKeys(@Req() req: Request) { + return this.globalConfigService.queryGptKeys(req); + } + + @ApiOperation({ summary: '设置gpt的key' }) + @Post('setGptKeys') + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + setGptKeys(@Body() body) { + return this.globalConfigService.setGptKeys(body); + } + + @ApiOperation({ summary: '查询所有配置' }) + @Post('query') + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + queryConfig(@Body() body: QueryConfigDto, @Req() req: Request) { + return this.globalConfigService.queryConfig(body, req); + } + + @ApiOperation({ summary: '设置配置信息' }) + @Post('set') + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + setConfig(@Body() body: SetConfigDto) { + return this.globalConfigService.setConfig(body); + } + + @ApiOperation({ summary: '用户端查询公告信息' }) + @Get('notice') + queryNotice() { + return this.globalConfigService.queryNotice(); + } + + @ApiOperation({ summary: '管理端查询版权信息' }) + @Get('copyright') + getCopyright() { + return this.globalConfigService.getCopyright(); + } +} diff --git a/service/src/modules/globalConfig/globalConfig.module.ts b/service/src/modules/globalConfig/globalConfig.module.ts new file mode 100644 index 0000000..c04ffd1 --- /dev/null +++ b/service/src/modules/globalConfig/globalConfig.module.ts @@ -0,0 +1,15 @@ +import { Global, Module } from '@nestjs/common'; +import { GlobalConfigController } from './globalConfig.controller'; +import { GlobalConfigService } from './globalConfig.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ConfigEntity } from './config.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([ConfigEntity, ChatLogEntity])], + providers: [GlobalConfigService], + controllers: [GlobalConfigController], + exports: [GlobalConfigService], +}) +export class GlobalConfigModule {} diff --git a/service/src/modules/globalConfig/globalConfig.service.ts b/service/src/modules/globalConfig/globalConfig.service.ts new file mode 100644 index 0000000..c9fbd3b --- /dev/null +++ b/service/src/modules/globalConfig/globalConfig.service.ts @@ -0,0 +1,470 @@ +import { UserService } from '../user/user.service'; +import { ModelsService } from '../models/models.service'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { Global, HttpException, HttpStatus, Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import { SetConfigDto } from './dto/setConfig.dto'; +import { ConfigEntity } from './config.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { In, Like, MoreThan, Not, Repository } from 'typeorm'; +import { QueryConfigDto } from './dto/queryConfig.dto'; +import { getDiffArray, hideString } from '@/common/utils'; +import { Request } from 'express'; +import axios from 'axios'; +import * as fs from 'fs'; +const packageJsonContent = fs.readFileSync('package.json', 'utf-8'); +const packageJson = JSON.parse(packageJsonContent); +const version = packageJson.version; +console.log(' current use version in ------>: ', version); + +@Injectable() +export class GlobalConfigService implements OnModuleInit { + constructor( + @InjectRepository(ConfigEntity) + private readonly configEntity: Repository, + @InjectRepository(ChatLogEntity) + private readonly chatLogEntity: Repository, + private readonly modelsService: ModelsService, + ) {} + private globalConfigs: any = {}; + private wechatAccessToken: string; + private wechatJsapiTicket: string; + private nineAiToken = true; + + async onModuleInit() { + await this.initGetAllConfig(); + } + + /* 对外提供给其他service */ + async getConfigs(configKey: string[]) { + if (configKey.length === 0) return; + /* 微信token特殊处理 */ + if (configKey.includes('wechatAccessToken') && configKey.length === 1) { + return this.wechatAccessToken; + } + if (configKey.includes('wechatJsapiTicket') && configKey.length === 1) { + return this.wechatJsapiTicket; + } + if (configKey.length === 1) { + return this.globalConfigs[configKey[0]]; + } else { + const result = {}; + configKey.forEach((key) => (result[key] = this.globalConfigs[key])); + return result; + } + } + + /* 初始化查询所有config 不对外调用 */ + async initGetAllConfig() { + const data = await this.configEntity.find(); + this.globalConfigs = data.reduce((prev, cur) => { + prev[cur.configKey] = cur.configVal; + return prev; + }, {}); + this.initBaiduSensitive(); + } + + /* 初始化百度敏感词 拿到百度的access_token isInit: 初始化报错不检测 管理端手动修改则提示 */ + async initBaiduSensitive(isInit = true) { + const { baiduTextApiKey, baiduTextSecretKey } = await this.getConfigs(['baiduTextApiKey', 'baiduTextSecretKey']); + if (!baiduTextApiKey || !baiduTextSecretKey) { + Logger.error('百度敏感词初始化失败,如果需要敏感检测、请前往后台系统配置!', 'GlobalConfigService'); + return; + } + const headers = { 'Content-Type': 'application/json', Accept: 'application/json' }; + const url = `https://aip.baidubce.com/oauth/2.0/token?client_id=${baiduTextApiKey}&client_secret=${baiduTextSecretKey}&grant_type=client_credentials`; + try { + const response = await axios.post(url, { headers }); + this.globalConfigs.baiduTextAccessToken = response.data.access_token; + } catch (error) { + if (isInit) { + Logger.error('百度敏感词配置检测失败,您的参数可能配置的不正确!', 'GlobalConfigService'); + } else { + throw new HttpException(error.response.data.error_description, HttpStatus.BAD_REQUEST); + } + } + } + + /* 定时刷新 access_token */ + async getWechatAccessToken(isInit = false) { + const { wechatOfficialAppId: appId, wechatOfficialAppSecret: secret } = await this.getConfigs(['wechatOfficialAppId', 'wechatOfficialAppSecret']); + if (!appId || !secret) { + return Logger.error('还未配置微信的appId和secret、配置后才可进行微信扫码登录!!!', 'OfficialService'); + } + this.wechatAccessToken = await this.fetchBaseAccessToken(appId, secret, isInit); + this.wechatJsapiTicket = await this.fetchJsapiTicket(this.wechatAccessToken); + Logger.log(`wechat refresh access_token ==> ${this.wechatAccessToken}`, 'OfficialService'); + } + + /* 获取微信access_token */ + async fetchBaseAccessToken(appId: string, secret: string, isInit = false) { + if (process.env.ISDEV === 'TRUE') { + this.wechatAccessToken = ''; + return; + } + const { + data: { errmsg, access_token }, + } = await axios.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${secret}`); + if (errmsg) { + if (isInit) { + Logger.error(`获取微信access_token失败、错误信息:${errmsg}`, 'OfficialService'); + } else { + throw new HttpException('请配置正确的秘钥、当前秘钥检测不通过!', HttpStatus.BAD_REQUEST); + } + return ''; + } + return access_token; + } + + /* 获取微信jsapi_ticket */ + async fetchJsapiTicket(accessToken: string) { + if (process.env.ISDEV === 'TRUE') { + this.wechatJsapiTicket = ''; + return; + } + const res = await axios.get(`https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${accessToken}&type=jsapi`); + return res?.data?.ticket; + } + + /* 查询所有配置信息 */ + async queryAllConfig(req: Request) { + const { role } = req.user; + return this.globalConfigs; + } + + /* 前端网站的所有查阅权限的配置信息 */ + async queryFrontConfig(query, req) { + /* 指定前端可以访问范围 */ + const allowKeys = [ + 'vxNumber', + 'registerSendStatus', + 'registerSendModel3Count', + 'registerSendModel4Count', + 'registerSendDrawMjCount', + 'firstRegisterSendStatus', + 'firstRegisterSendRank', + 'firstRregisterSendModel3Count', + 'firstRregisterSendModel4Count', + 'firstRregisterSendDrawMjCount', + 'inviteSendStatus', + 'inviteGiveSendModel3Count', + 'inviteGiveSendModel4Count', + 'inviteGiveSendDrawMjCount', + 'invitedGuestSendModel3Count', + 'invitedGuestSendModel4Count', + 'invitedGuestSendDrawMjCount', + 'clientHomePath', + 'clientLogoPath', + 'clientFavoIconPath', + 'isUseWxLogin', + 'siteName', + 'robotAvatar', + 'siteRobotName', + 'buyCramiAddress', + 'mindDefaultData', + 'baiduCode', + 'payEpayChannel', + 'payMpayChannel', + 'payEpayApiPayUrl', + 'payEpayStatus', + 'payHupiStatus', + 'payWechatStatus', + 'payMpayStatus', + 'isAutoOpenNotice', + 'isShowAppCatIcon', + 'salesBaseRatio', + 'salesSeniorRatio', + 'salesAllowDrawMoney', + 'companyName', + 'filingNumber', + 'phoneRegisterStatus', + 'emailRegisterStatus', + 'emailLoginStatus', + 'phoneLoginStatus', + 'wechatRegisterStatus', + 'wechatSilentLoginStatus', + 'signInStatus', + 'signInModel3Count', + 'signInModel4Count', + 'signInMjDrawToken', + 'appMenuHeaderTips', + 'appMenuHeaderBgUrl', + 'mjUseBaiduFy', + 'mjHideNotBlock', + 'mjHideWorkIn', + 'isVerifyEmail', + ]; + const data = await this.configEntity.find({ where: { configKey: In(allowKeys) } }); + const { domain } = query; + const domainDb = this.globalConfigs['domain']; + if (domainDb !== domain) { + this.createOrUpdate({ configKey: `domain`, configVal: domain, status: 1 }); + await this.initGetAllConfig(); + } + const publicConfig = data.reduce((prev, cur) => { + prev[cur.configKey] = cur.configVal; + return prev; + }, {}); + /* 追加一些自定义的配置 */ + const { wechatOfficialAppId, wechatOfficialAppSecret } = await this.getConfigs(['wechatOfficialAppId', 'wechatOfficialAppSecret']); + const isUseWxLogin = !!(wechatOfficialAppId && wechatOfficialAppSecret); + + /* 查看是否有本机未同步数据 */ + return { ...publicConfig, isUseWxLogin }; + } + + /* 查询所有gptkey */ + async queryGptKeys(req: Request) { + const { role } = req.user; + const data = await this.configEntity.find({ where: { configKey: Like(`%${'chatGptKey'}%`) } }); + if (role === 'super') return data; + return data.map((t) => { + t.configVal = hideString(t.configVal); + return t; + }); + } + + /* 设置gpt的key */ + async setGptKeys(body) { + const effectiveConfig = body.configs.filter((t) => t.configVal); + const keys = effectiveConfig.map((t) => t.configKey); + for (const [index, value] of effectiveConfig.entries()) { + const { configKey, configVal, status } = value; + await this.createOrUpdate({ configKey: `chatGptKey:${index + 1}`, configVal, status }); + } + + const likeChatGptKeys = await this.configEntity.find({ where: { configKey: Like(`%${'chatGptKey'}%`) } }); + const allKey = likeChatGptKeys.map((t) => t.configKey); + + if (allKey.length > keys.length) { + const diffKey = getDiffArray(allKey.length, keys.length, 'chatGptKey:'); + for (const key of diffKey) { + await this.configEntity.delete({ configKey: key }); + } + } + await this.initGetAllConfig(); + return '操作完成!'; + } + + /* 查询配置 */ + async queryConfig(body: QueryConfigDto, req: Request) { + const { role } = req.user; + const { keys } = body; + const data = await this.configEntity.find({ where: { configKey: In(keys) } }); + /* 对演示账户的一些敏感配置修改处理 */ + if (role !== 'super') { + // data = data.filter((t) => !t.configKey.includes('Key')); + data.forEach((item) => { + if ( + item.configKey.includes('mj') || + item.configKey.includes('Key') || + item.configKey.includes('gpt') || + item.configKey.includes('cos') || + item.configKey.includes('baidu') || + item.configKey.includes('ali') || + item.configKey.includes('tencent') || + item.configKey.includes('pay') || + item.configKey.includes('wechat') || + item.configKey.includes('mjProxyImgUrl') || + item.configKey === 'openaiBaseUrl' + ) { + /* 比较长的隐藏内容自定义 */ + const longKeys = ['payWeChatPublicKey', 'payWeChatPrivateKey']; + if (longKeys.includes(item.configKey)) { + return (item.configVal = hideString(item.configVal, '隐私内容、非超级管理员无权查看')); + } + const whiteListKey = ['payEpayStatus', 'payHupiStatus', 'mjProxy']; + if (!whiteListKey.includes(item.configKey) && !item.configKey.includes('Status')) { + item.configVal = hideString(item.configVal); + } + } + }); + } + + return data.reduce((prev, cur) => { + prev[cur.configKey] = cur.configVal; + return prev; + }, {}); + } + + /* 获取token success = 0 error = 1 */ + getNineAiToken() { + const MjdrawCount = this.globalConfigs['MjdrawCount']; + const auth = this.nineAiToken; + return !auth || Number(MjdrawCount) === 1; + } + + /* 设置配置信息 */ + async setConfig(body: SetConfigDto) { + try { + const { settings } = body; + for (const item of settings) { + await this.createOrUpdate(item); + } + await this.initGetAllConfig(); + const keys = settings.map((t) => t.configKey); + /* 如果修改的包含了百度云文本检测选择、则需要触发更新重新获取token */ + if (keys.includes('baiduTextApiKey') || keys.includes('baiduTextSecretKey')) { + await this.initBaiduSensitive(false); + } + /* 如果变更微信配置 则需要手动刷新微信 access_token */ + if (keys.includes('wechatOfficialAppId') || keys.includes('wechatOfficialAppSecret')) { + await this.getWechatAccessToken(); + } + + return '设置完成!'; + } catch (error) { + console.log('error: ', error); + } + } + + /* 创建或更新配置信息 */ + async createOrUpdate(setting) { + /* 后期追加配置非自动化的需要手动追加为public让前端查找 */ + try { + const { configKey, configVal, status = 1 } = setting; + const c = await this.configEntity.findOne({ where: { configKey } }); + if (c) { + const res = await this.configEntity.update({ configKey }, { configVal, status }); + } else { + const save = await this.configEntity.save({ configKey, configVal, status }); + } + } catch (error) { + console.log('error: ', error); + throw new HttpException('设置配置信息错误!', HttpStatus.BAD_REQUEST); + } + } + + /* 查询公告信息 */ + async queryNotice() { + return await this.getConfigs(['noticeInfo', 'noticeTitle']); + } + + /* 查询版权 */ + async getCopyright() { + return await this.getConfigs(['copyrightUrl', 'copyrightTitle']); + } + + /* 开启多个支付规则的时候 按顺序只使用一个 */ + async queryPayType() { + const { + payHupiStatus = 0, + payEpayStatus = 0, + payWechatStatus = 0, + payMpayStatus = 0, + } = await this.getConfigs(['payHupiStatus', 'payEpayStatus', 'payMpayStatus', 'payWechatStatus']); + if ([payHupiStatus, payEpayStatus, payWechatStatus, payMpayStatus].every((status) => status === 0)) { + throw new HttpException('支付功能暂未开放!', HttpStatus.BAD_REQUEST); + } + if (Number(payWechatStatus) === 1) { + return 'wechat'; + } + if (Number(payEpayStatus) === 1) { + return 'epay'; + } + if (Number(payMpayStatus) === 1) { + return 'mpay'; + } + if (Number(payHupiStatus) === 1) { + return 'hupi'; + } + } + + /* get auth info */ + async getAuthInfo() { + const { siteName, qqNumber, vxNumber, registerBaseUrl, domain } = await this.getConfigs([ + 'siteName', + 'qqNumber', + 'vxNumber', + 'registerBaseUrl', + 'domain', + ]); + return { siteName, qqNumber, vxNumber, registerBaseUrl, domain }; + } + + /* get phone verify config */ + async getPhoneVerifyConfig() { + const { phoneRegisterStatus, aliPhoneAccessKeyId, aliPhoneAccessKeySecret, aliPhoneSignName, aliPhoneTemplateCode } = await this.getConfigs([ + 'phoneRegisterStatus', + 'aliPhoneAccessKeyId', + 'aliPhoneAccessKeySecret', + 'aliPhoneSignName', + 'aliPhoneTemplateCode', + ]); + if (Number(phoneRegisterStatus) !== 1) { + throw new HttpException('手机验证码功能暂未开放!', HttpStatus.BAD_REQUEST); + } + return { + accessKeyId: aliPhoneAccessKeyId, + accessKeySecret: aliPhoneAccessKeySecret, + SignName: aliPhoneSignName, + TemplateCode: aliPhoneTemplateCode, + }; + } + + /* get namespace */ + getNamespace() { + return process.env.NAMESPACE || 'NINEAI'; + } + + /* 获取签名赠送额度 */ + async getSignatureGiftConfig() { + const { + signInStatus = 0, + signInModel3Count = 0, + signInModel4Count = 0, + signInMjDrawToken = 0, + } = await this.getConfigs(['signInStatus', 'signInModel3Count', 'signInModel4Count', 'signInMjDrawToken']); + if (Number(signInStatus) !== 1) { + throw new HttpException('签到功能暂未开放!', HttpStatus.BAD_REQUEST); + } + return { + model3Count: Number(signInModel3Count), + model4Count: Number(signInModel4Count), + drawMjCount: Number(signInMjDrawToken), + }; + } + + async auth() { + const api = 'https://api.jiangly.com/api/permission/auth'; + const response = await fetch(api, {}); + const responseData: any = await response.json(); + const { success = true, message } = responseData; + Logger.error('请按要求填写正确的授权信息'); + Logger.error('请填写您的授权码'); + Logger.error('缺失ip信息'); + Logger.error('缺失ip信息'); + Logger.debug('感谢您使用NineAi、祝您使用愉快~'); + } + + /* 拿到敏感次配置 都开启优先使用百度云 */ + async getSensitiveConfig() { + const { + baiduTextStatus = 0, + baiduTextAccessToken, + nineaiBuiltInSensitiveStatus = 0, + nineaiBuiltInSensitiveApiBase, + nineaiBuiltInSensitiveAuthKey, + } = await this.getConfigs([ + 'baiduTextStatus', + 'baiduTextAccessToken', + 'nineaiBuiltInSensitiveStatus', + 'nineaiBuiltInSensitiveApiBase', + 'nineaiBuiltInSensitiveAuthKey', + ]); + if (Number(baiduTextStatus) === 1) { + return { + useType: 'baidu', + baiduTextAccessToken, + }; + } + /* 官方提供的检测Api */ + if (Number(nineaiBuiltInSensitiveStatus) === 1) { + return { + useType: 'nineai', + nineaiBuiltInSensitiveApiBase, + nineaiBuiltInSensitiveAuthKey, + }; + } + return null; + } +} diff --git a/service/src/modules/mailer/mailer.module.ts b/service/src/modules/mailer/mailer.module.ts new file mode 100644 index 0000000..4f0e15b --- /dev/null +++ b/service/src/modules/mailer/mailer.module.ts @@ -0,0 +1,17 @@ +import { Module } from '@nestjs/common'; +import { ConfigModule, ConfigService } from 'nestjs-config'; +import { MailerModule as MModule, MailerOptions } from '@nestjs-modules/mailer'; +import { MailerService } from './mailer.service'; + +@Module({ + imports: [ + ConfigModule, + MModule.forRootAsync({ + useFactory: (config: ConfigService): MailerOptions => config.get('mailer'), + inject: [ConfigService], + }), + ], + exports: [MailerModule], + providers: [MailerService], +}) +export class MailerModule {} diff --git a/service/src/modules/mailer/mailer.service.ts b/service/src/modules/mailer/mailer.service.ts new file mode 100644 index 0000000..eb365ac --- /dev/null +++ b/service/src/modules/mailer/mailer.service.ts @@ -0,0 +1,17 @@ +import { MailerService as MService, ISendMailOptions } from '@nestjs-modules/mailer'; +import { Injectable, HttpException, HttpStatus } from '@nestjs/common'; +import { SentMessageInfo } from 'nodemailer'; + +@Injectable() +export class MailerService { + constructor(private mailerService: MService) {} + + async sendMail(options: ISendMailOptions): Promise { + try { + await this.mailerService.sendMail(options); + } catch (error) { + console.log('error: ', error); + throw new HttpException('邮件发送失败!', HttpStatus.BAD_REQUEST); + } + } +} diff --git a/service/src/modules/menu/dto/queryMenu.dto.ts b/service/src/modules/menu/dto/queryMenu.dto.ts new file mode 100644 index 0000000..0b503b8 --- /dev/null +++ b/service/src/modules/menu/dto/queryMenu.dto.ts @@ -0,0 +1,8 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryMenuDto { + @ApiProperty({ example: 1, description: '菜单平台 0:移动端 1:pc端', required: true }) + @IsOptional() + menuPlatform: number; +} diff --git a/service/src/modules/menu/dto/setMenu.dto.ts b/service/src/modules/menu/dto/setMenu.dto.ts new file mode 100644 index 0000000..fb26ebd --- /dev/null +++ b/service/src/modules/menu/dto/setMenu.dto.ts @@ -0,0 +1,37 @@ +import { AddBadWordDto } from '../../badwords/dto/addBadWords.dto'; +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class SetMenuDto { + @ApiProperty({ example: 1, description: '菜单id', required: false }) + id: number; + + @ApiProperty({ example: '测试菜单', description: '菜单文字提示', required: true }) + @IsOptional() + menuTipText: string; + + @ApiProperty({ example: 'https:baidu.com', description: '三方网页地址', required: false }) + @IsOptional() + menuIframeUrl: string; + + @ApiProperty({ example: false, description: '是否跳转', required: true }) + isJump: boolean; + + @ApiProperty({ example: true, description: '是否打开菜单', required: true }) + isShow: boolean; + + @ApiProperty({ example: 'eos-icons:typing', description: '菜单ICON图标代码', required: true }) + menuIcon: string; + + @ApiProperty({ example: '/chat', description: '站内系统路径', required: true }) + menuPath: string; + + @ApiProperty({ example: 1000, description: '菜单排序id 数字越小越靠前', required: true }) + order: number; + + @ApiProperty({ example: true, description: '是否系统预设', required: true }) + isSystem: boolean; + + @ApiProperty({ example: true, description: '是否需要登录才可访问', required: true }) + isNeedAuth: boolean; +} diff --git a/service/src/modules/menu/menu.controller.ts b/service/src/modules/menu/menu.controller.ts new file mode 100644 index 0000000..a7d2b7a --- /dev/null +++ b/service/src/modules/menu/menu.controller.ts @@ -0,0 +1,60 @@ +import { ApiBearerAuth, ApiOperation } from '@nestjs/swagger'; +import { MenuService } from './menu.service'; +import { Body, Controller, Get, Post, Query, UseGuards } from '@nestjs/common'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { QueryMenuDto } from './dto/queryMenu.dto'; +import { SetMenuDto } from './dto/setMenu.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; + +@Controller('menu') +export class MenuController { + constructor( + private readonly menuService:MenuService + ){} + + @Get('query') + @ApiOperation({ summary: '管理端查询菜单列表' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + queryMenu(@Query() query: QueryMenuDto){ + return this.menuService.queryMenu(query) + } + + @Get('list') + @ApiOperation({ summary: '用户端查询菜单列表' }) + menuListFront(@Query() query: QueryMenuDto){ + return this.menuService.menuListFront(query) + } + + @Post('visible') + @ApiOperation({ summary: '显示或者隐藏菜单' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + visibleMenu(@Body() params: { id: number }){ + return this.menuService.visibleMenu(params) + } + + @Post('setMenu') + @ApiOperation({ summary: '设置修改菜单' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + setMenu(@Body() params: SetMenuDto){ + return this.menuService.setMenu(params) + } + + @Post('delete') + @ApiOperation({ summary: '删除菜单' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delMenu(@Body() params: {id: number}){ + return this.menuService.delMenu(params) + } + + @Post('updateIcon') + @ApiOperation({ summary: '修改菜单ICON' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + updateIcon(@Body() params){ + return this.menuService.updateIcon(params) + } +} diff --git a/service/src/modules/menu/menu.entity.ts b/service/src/modules/menu/menu.entity.ts new file mode 100644 index 0000000..fa9a886 --- /dev/null +++ b/service/src/modules/menu/menu.entity.ts @@ -0,0 +1,38 @@ +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'menu' }) +export class MenuEntity extends BaseEntity { + @Column({ comment: '菜单名称', length: 64, default: null }) + menuName: string; + + @Column({ comment: '菜单路径、跳转的系统路径', length: 64 }) + menuPath: string; + + @Column({ comment: '菜单图标 icon图标名称' }) + menuIcon: string; + + @Column({ comment: '菜单文字提示信息' }) + menuTipText: string; + + @Column({ comment: '菜单类型: 系统预设|自定义菜单', default: 1 }) + menuType: number; + + @Column({ comment: '菜单平台: 0:移动端 1:pc端', default: 1 }) + menuPlatform: number; + + @Column({ comment: '菜单加载地址: 系统菜单|自定义菜单', default: null }) + menuIframeUrl: string; + + @Column({ comment: '排序ID', default: 100 }) + order: number; + + @Column({ comment: '是否显示 1:是|0:不是', default: 1 }) + isShow: boolean; + + @Column({ comment: '是否跳转到新窗口 0不跳转 1跳转 仅设置为iframe窗口时候有效', default: 0 }) + isJump: boolean; + + @Column({ comment: '是否权限 登录才可以访问', default: 0 }) + isNeedAuth: boolean; +} diff --git a/service/src/modules/menu/menu.module.ts b/service/src/modules/menu/menu.module.ts new file mode 100644 index 0000000..0a69e46 --- /dev/null +++ b/service/src/modules/menu/menu.module.ts @@ -0,0 +1,12 @@ +import { Module } from '@nestjs/common'; +import { MenuController } from './menu.controller'; +import { MenuService } from './menu.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { MenuEntity } from './menu.entity'; + +@Module({ + imports:[TypeOrmModule.forFeature([MenuEntity])], + controllers: [MenuController], + providers: [MenuService] +}) +export class MenuModule {} diff --git a/service/src/modules/menu/menu.service.ts b/service/src/modules/menu/menu.service.ts new file mode 100644 index 0000000..0519e9b --- /dev/null +++ b/service/src/modules/menu/menu.service.ts @@ -0,0 +1,190 @@ +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { MenuEntity } from './menu.entity'; +import { QueryMenuDto } from './dto/queryMenu.dto'; +import { SetMenuDto } from './dto/setMenu.dto'; + +@Injectable() +export class MenuService { + constructor( + @InjectRepository(MenuEntity) + private readonly menuEntity: Repository, + ) {} + + async onModuleInit() { + await this.initMenu(); + } + + /* 初始化菜单 */ + async initMenu() { + const menuCount = await this.menuEntity.count(); + if (menuCount > 0) return; + const pcMenuData = [ + { menuTipText: '对话聊天', menuIcon: 'eos-icons:typing', menuName: 'Chat', menuPath: '/chat', menuType: 0, menuPlatform: 1, order: 100 }, + { + menuTipText: '应用广场', + menuIcon: 'ant-design:appstore-outlined', + menuName: 'AppStore', + menuPath: '/app-store', + menuType: 0, + menuPlatform: 1, + order: 200, + }, + { + menuTipText: '专业绘画', + menuIcon: 'ri:landscape-line', + menuName: 'Midjourney', + menuPath: '/midjourney', + menuType: 0, + menuPlatform: 1, + order: 300, + }, + { + menuTipText: '绘画广场', + menuIcon: 'solar:album-line-duotone', + menuName: 'Market', + menuPath: '/market', + menuType: 0, + menuPlatform: 1, + order: 400, + }, + { + menuTipText: '基础绘画', + menuIcon: 'fluent:draw-image-24-regular', + menuName: 'Draw', + menuPath: '/draw', + menuType: 0, + menuPlatform: 1, + order: 500, + }, + { + menuTipText: '思维导图', + menuIcon: 'icon-park-outline:mindmap-map', + menuName: 'Mind', + menuPath: '/mind', + menuType: 0, + menuPlatform: 1, + order: 600, + }, + { + menuTipText: '会员中心', + menuIcon: 'icon-park-outline:shopping', + menuName: 'Pay', + menuPath: '/pay', + menuType: 0, + menuPlatform: 1, + order: 700, + }, + { menuTipText: '推广计划', menuIcon: 'uiw:share', menuName: 'Share', menuPath: '/share', menuType: 0, menuPlatform: 1, order: 800 }, + ]; + const mobileMenuData = [ + { menuTipText: '对话聊天', menuIcon: 'eos-icons:typing', menuName: 'Chat', menuPath: '/chat', menuType: 0, menuPlatform: 0, order: 100 }, + { + menuTipText: '应用广场', + menuIcon: 'ant-design:appstore-outlined', + menuName: 'AppStore', + menuPath: '/app-store', + menuType: 0, + menuPlatform: 0, + order: 200, + }, + { + menuTipText: '专业绘画', + menuIcon: 'ri:landscape-line', + menuName: 'Midjourney', + menuPath: '/midjourney', + menuType: 0, + menuPlatform: 0, + order: 300, + }, + { + menuTipText: '思维导图', + menuIcon: 'icon-park-outline:mindmap-map', + menuName: 'Mind', + menuPath: '/mind', + menuType: 0, + menuPlatform: 0, + order: 400, + }, + { + menuTipText: '个人中心', + menuIcon: 'ri:account-pin-box-line', + menuName: 'UserCenter', + menuPath: '/user-center', + menuType: 0, + menuPlatform: 0, + order: 500, + }, + ]; + + const initMenuData = [...pcMenuData, ...mobileMenuData]; + + await this.menuEntity.save(initMenuData); + } + + async queryMenu(query: QueryMenuDto) { + const { menuPlatform } = query; + const where: any = {}; + menuPlatform && (where.menuPlatform = menuPlatform); + return await this.menuEntity.find({ where, order: { order: 'ASC' } }); + } + + async menuListFront(query: QueryMenuDto) { + const { menuPlatform } = query; + const where: any = { + isShow: true, + }; + menuPlatform && (where.menuPlatform = menuPlatform); + return await this.menuEntity.find({ where, order: { order: 'ASC' } }); + } + + async visibleMenu(params) { + const { id } = params; + if (!id) return; + const m = await this.menuEntity.findOne({ where: { id } }); + if (!m) return; + const { isShow } = m; + const res = await this.menuEntity.update({ id }, { isShow: !isShow }); + return res.affected > 0; + } + + async setMenu(params: SetMenuDto) { + const { id } = params; + if (params.isSystem) { + params.menuPath = ''; + } else { + params.menuIframeUrl = ''; + } + delete params.isSystem; + try { + if (id) { + const res = await this.menuEntity.update({ id }, params); + return res.affected > 0; + } else { + const res = await this.menuEntity.save(params); + return res; + } + } catch (error) { + throw new HttpException('操作菜单失败!', HttpStatus.BAD_REQUEST); + } + } + + async delMenu(params) { + const { id } = params; + if (!id) { + throw new HttpException('缺失必要参数!', HttpStatus.BAD_REQUEST); + } + const res = await this.menuEntity.delete({ id }); + return res; + } + + async updateIcon(params) { + const { id, menuIcon, menuTipText, order } = params; + if (!id || !menuIcon || !menuTipText || !order) { + throw new HttpException('缺失必要参数!', HttpStatus.BAD_REQUEST); + } + const res = await this.menuEntity.update({ id }, { menuIcon, menuTipText, order }); + return res.affected > 0; + } +} diff --git a/service/src/modules/midjourney/dto/getList.dto.ts b/service/src/modules/midjourney/dto/getList.dto.ts new file mode 100644 index 0000000..a1fb769 --- /dev/null +++ b/service/src/modules/midjourney/dto/getList.dto.ts @@ -0,0 +1,26 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class GetListDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 1, description: '是否推荐0: 默认 1: 推荐', required: false }) + @IsOptional() + rec: number; + + @ApiProperty({ example: 99, description: '生成图片的用户id', required: false }) + @IsOptional() + userId: number; + + @ApiProperty({ example: 1, description: '绘制状态', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/midjourney/midjourney.controller.ts b/service/src/modules/midjourney/midjourney.controller.ts new file mode 100644 index 0000000..c153ae3 --- /dev/null +++ b/service/src/modules/midjourney/midjourney.controller.ts @@ -0,0 +1,104 @@ +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { MidjourneyService } from './midjourney.service'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { Body, Controller, Get, Post, Query, Req, Res, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation } from '@nestjs/swagger'; +import axios from 'axios'; +import { Request, Response } from 'express'; +import { GetListDto } from './dto/getList.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; + +@Controller('midjourney') +export class MidjourneyController { + constructor(private readonly midjourneyService: MidjourneyService) {} + + @Get('drawList') + @ApiOperation({ summary: '获取我的绘画列表' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getDrawList(@Req() req: Request, @Query() params: any) { + return await this.midjourneyService.getDrawList(req, params); + } + + @Get('getList') + @ApiOperation({ summary: '获取绘画列表' }) + async getList(@Query() params: GetListDto) { + return await this.midjourneyService.getList(params); + } + + @Get('getFullPrompt') + @ApiOperation({ summary: '获取绘画列表' }) + async getFullPrompt(@Query('id') id: number) { + return await this.midjourneyService.getFullPrompt(id); + } + + @Get('adminDrawList') + @ApiOperation({ summary: '管理端获取绘画列表' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async getAdminDrawList(@Req() req: Request, @Query() params: GetListDto) { + return await this.midjourneyService.getAdminDrawList(req, params); + } + + @Post('rec') + @ApiOperation({ summary: '推荐图片' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async recDraw(@Body() params: any) { + return await this.midjourneyService.recDraw(params); + } + + @Post('download') + @ApiOperation({ summary: '下载绘画' }) + async download(@Body('url') url: string, @Res() res: Response) { + const response = await axios.get(url, { responseType: 'arraybuffer' }); + const buffer = Buffer.from(response.data, 'binary'); + res.set({ 'Content-Type': 'image/png' }); + res.send(buffer); + } + + @Post('delete') + @ApiOperation({ summary: '删除绘画' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async deleteDraw(@Body('id') id: number, @Req() req: Request) { + return await this.midjourneyService.deleteDraw(id, req); + } + + @Post('del') + @ApiOperation({ summary: '删除log' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delLog(@Req() req: Request, @Body() body: any) { + return await this.midjourneyService.delLog(req, body); + } + + @Post('setPrompt') + @ApiOperation({ summary: '添加修改prompt提示词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async setPrompt(@Req() req: Request, @Body() body: any) { + return await this.midjourneyService.setPrompt(req, body); + } + + @Post('delPrompt') + @ApiOperation({ summary: '添加修改prompt提示词' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async delPrompt(@Req() req: Request, @Body() body: any) { + return await this.midjourneyService.delPrompt(req, body); + } + + @Get('queryPrompts') + @ApiOperation({ summary: '查询prompt列表' }) + async queryPrompt() { + return await this.midjourneyService.queryPrompt(); + } + + @Get('proxy') + @ApiOperation({ summary: '代理图片' }) + @ApiBearerAuth() + async proxyImg(@Query() params: { url: String}) { + return await this.midjourneyService.proxyImg(params); + } +} diff --git a/service/src/modules/midjourney/midjourney.entity.ts b/service/src/modules/midjourney/midjourney.entity.ts new file mode 100644 index 0000000..59b7ec0 --- /dev/null +++ b/service/src/modules/midjourney/midjourney.entity.ts @@ -0,0 +1,64 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'midjourney' }) +export class MidjourneyEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '任务ID', nullable: true }) + jobId: number; + + @Column({ comment: '额外参数', nullable: true }) + extraParam: string; + + @Column({ comment: '绘画描述词', type: 'text' }) + prompt: string; + + @Column({ comment: '垫图图片基础地址', nullable: true }) + imgUrl: string; + + @Column({ comment: '垫图图片 + 绘画描述词 + 额外参数 = 完整的prompt', type: 'text' }) + fullPrompt: string; + + @Column({ comment: '当前绘制任务的进度', nullable: true }) + progress: number; + + @Column({ comment: '当前绘制任务的耗时', nullable: true }) + durationSpent: number; + + @Column({ comment: '当前绘制任务的状态' }) + status: number; + + @Column({ comment: 'mj绘画的动作、绘图、放大、变换、图生图' }) + action: string; + + @Column({ comment: '一组图片的第几张、放大或者变换的时候需要使用', nullable: true }) + orderId: number; + + @Column({ comment: '是否推荐0: 默认不推荐 1: 推荐', nullable: true, default: 0 }) + rec: number; + + @Column({ comment: '对图片操作的', nullable: true }) + customId: string; + + @Column({ comment: '绘画的ID每条不一样', nullable: true }) + drawId: string; + + @Column({ comment: '图片链接', nullable: true, type: 'text' }) + drawUrl: string; + + @Column({ comment: '图片比例', nullable: true, type: 'text' }) + drawRatio: string; + + @Column({ comment: '扩展参数', nullable: true, type: 'text' }) + extend: string; + + @Column({ comment: '是否删除 0: 未删除 1: 已删除', nullable: true, default: 0 }) + isDelete: number; + + @Column({ comment: '是否存入了图片到配置的储存项 配置了则存储 不配置地址则是源地址', default: true }) + isSaveImg: boolean; + messageId: any; +} diff --git a/service/src/modules/midjourney/midjourney.module.ts b/service/src/modules/midjourney/midjourney.module.ts new file mode 100644 index 0000000..03ab316 --- /dev/null +++ b/service/src/modules/midjourney/midjourney.module.ts @@ -0,0 +1,17 @@ +import { Global, Module } from '@nestjs/common'; +import { MidjourneyController } from './midjourney.controller'; +import { MidjourneyService } from './midjourney.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { MidjourneyEntity } from './midjourney.entity'; +import { UserEntity } from '../user/user.entity'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { mjPromptEntity } from './prompt.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([MidjourneyEntity, UserEntity, mjPromptEntity])], + controllers: [MidjourneyController], + providers: [MidjourneyService, RedisCacheService], + exports: [MidjourneyService], +}) +export class MidjourneyModule {} diff --git a/service/src/modules/midjourney/midjourney.service.ts b/service/src/modules/midjourney/midjourney.service.ts new file mode 100644 index 0000000..1281274 --- /dev/null +++ b/service/src/modules/midjourney/midjourney.service.ts @@ -0,0 +1,628 @@ +import { UserEntity } from './../user/user.entity'; +import { HttpException, HttpStatus, Inject, Injectable, Logger, Req } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { MidjourneyEntity } from './midjourney.entity'; +import { In, Repository } from 'typeorm'; +import axios from 'axios'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { MidjourneyActionEnum, MidjourneyStatusEnum } from '@/common/constants/midjourney.constant'; +import { UploadService } from '../upload/upload.service'; +import { BadwordsService } from '../badwords/badwords.service'; +import { Request } from 'express'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { GetListDto } from './dto/getList.dto'; +import { formatCreateOrUpdateDate } from '@/common/utils'; +import { RedisClientType } from 'redis'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { mjPromptEntity } from './prompt.entity'; +import sizeOf from 'image-size'; + +@Injectable() +export class MidjourneyService { + constructor( + @InjectRepository(MidjourneyEntity) + private readonly midjourneyEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + @InjectRepository(mjPromptEntity) + private readonly mjPromptsEntity: Repository, + private readonly globalConfigService: GlobalConfigService, + private readonly uploadService: UploadService, + // private readonly badwordsService: BadwordsService, + private readonly userBalanceService: UserBalanceService, + private redisCacheService: RedisCacheService, + ) { } + + + private lockPrompt = []; + + /* 睡眠 xs */ + async sleep(time) { + return new Promise((resolve) => setTimeout(resolve, time)); + } + + /* 获取图片尺寸 */ + async getImageSizeFromUrl(imageUrl: string) { + try { + const response = await axios.get(imageUrl, { responseType: 'arraybuffer' }); + const buffer = Buffer.from(response.data, 'binary'); + const dimensions = sizeOf(buffer); + return { width: dimensions.width, height: dimensions.height }; + } catch (error) { + console.error('Error fetching image size:', error); + throw error; + } + } + + /* MJ 绘画 */ + async draw(jobData, jobId) { + const { id, action, drawId } = jobData; + const drawInfo = await this.midjourneyEntity.findOne({ where: { id } }); + const { customId } = drawInfo + try { + /* 把任务ID绑定到DB去 */ + await this.bindJobId(id, jobId); + await this.updateDrawStatus(id, MidjourneyStatusEnum.DRAWING); + const result = await this.sendDrawCommand(drawInfo, action); + /* 开始执行检测逻辑 */ + drawInfo.drawId = result; + const drawRes = await this.pollComparisonResultDraw(id, drawInfo); + /* 把所有绘制记录存入 */ + await this.updateDrawData(jobData, drawRes); + // await this.updateDrawStatus(id, MidjourneyStatusEnum.DRAWED); + this.drawSuccess(jobData) + return true; + } catch (error) { + // this.lockPrompt = this.lockPrompt.filter((item) => item !== drawInfo.randomDrawId); + // await this.drawFailed(jobData); + console.log('error: ', error); + return true; + } + } + + /* 添加一条等待中的绘制任务 */ + async addDrawQueue(params) { + try { + const { prompt, imgUrl = '', extraParam = '', action, userId, orderId, customId, drawId } = params; + const fullPrompt = imgUrl ? `${imgUrl} ${prompt} ${extraParam}` : `${prompt} ${extraParam}`; + const drawInfo = { + userId, + drawId, + extraParam, + prompt, + imgUrl, + fullPrompt, + status: MidjourneyStatusEnum.WAITING, + action, + orderId, + customId, + }; + + const res = await this.midjourneyEntity.save(drawInfo); + return res; + } catch (error) { + console.error('Error in addDrawQueue:', error); + throw error; // Re-throw the error for further handling + } + } + + /* 修改绘制记录状态 */ + async updateDrawStatus(id, status) { + await this.midjourneyEntity.update({ id }, { status }); + } + + /* 绘制完成后修改数据 */ + async updateDrawData(jobData, drawRes) { + try { + const { id, imageUrl, action, submitTime, finishTime, progress } = drawRes; + // 计算总耗时 + const durationSpent = finishTime - submitTime; // 注意单位可能需要调整,根据实际时间单位 + + // 组合时间戳和id生成文件名 + let filename = `${Date.now()}-${id}.png`; // 替换 '.ext' 为实际的文件扩展名 + + const mjNotSaveImg = await this.globalConfigService.getConfigs(['mjNotSaveImg']) + let cosUrl = ''; + let isSaveImg = true; + + try { + if (!Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0) { + Logger.debug(`------> 开始上传图片!!!`, 'MidjourneyService'); + cosUrl = await this.uploadService.uploadFileFromUrl({ filename, url: imageUrl }); + } else { + cosUrl = imageUrl; + isSaveImg = false; + Logger.debug('本次不存图片了', 'MidjourneyService'); + } + } catch (uploadError) { + Logger.error('存储图片失败,使用原始图片链接', 'MidjourneyService'); + cosUrl = imageUrl; // 使用原始图片链接 + isSaveImg = false; + } + + // 获取图片尺寸 + const { width, height } = await this.getImageSizeFromUrl(imageUrl); + + const drawInfo = { + status: MidjourneyStatusEnum.DRAWED, + drawId: id, + action: action, + drawUrl: cosUrl, + drawRatio: `${width}x${height}`, + progress: 100, + extend: this.removeEmoji(JSON.stringify(drawRes)), + durationSpent, + isSaveImg, + }; + + await this.midjourneyEntity.update({ id: jobData.id }, drawInfo); + } catch (error) { + throw new HttpException('更新绘画数据失败', HttpStatus.BAD_REQUEST); + } + } + + + // /* 获取到当前ID的历史已经存入的信息并且绘制完成的 防止已经存过的图又被存了 */ + // async getHistroyMessageIds(randomDrawId) { + // const res = await this.midjourneyEntity.find({ where: { status: MidjourneyStatusEnum.DRAWED } }); + // return res.map((item: any) => item.drawId); + // } + + /* 发送绘画指令 */ + async sendDrawCommand(drawInfo, action) { + const mjProxyUrl = (await this.globalConfigService.getConfigs(['mjProxyUrl'])); + const mjKey = (await this.globalConfigService.getConfigs(['mjKey'])); + const { id, fullPrompt, imgUrl, drawId, customId } = drawInfo; + const prompt = imgUrl ? `${imgUrl} ${fullPrompt}` : `${fullPrompt}`; + let url = ''; + let payloadJson = {}; + const MAX_RETRIES = 3; // 最大重试次数 + let retryCount = 0; // 当前重试次数 + + while (retryCount < MAX_RETRIES) { + try { + if (action === 'IMAGINE') { + url = `${mjProxyUrl}/mj/submit/imagine`; + payloadJson = { prompt: prompt }; + } else { + url = `${mjProxyUrl}/mj/submit/action`; + payloadJson = { taskId: drawId, customId: customId }; + } + const headers = { "mj-api-secret": mjKey }; + const res = await axios.post(url, payloadJson, { headers }); + const { result } = res.data; + if (result) { + Logger.log(`绘画ID: ${result}`, 'MidjourneyService'); + return result; + } else { + throw new Error('未能获取结果数据'); + } + } catch (error) { + retryCount++; + if (retryCount >= MAX_RETRIES) { + await this.updateDrawStatus(id, MidjourneyStatusEnum.DRAWFAIL); + throw new HttpException('发送绘图指令失败、请联系管理员检测绘画配置!', HttpStatus.BAD_REQUEST); + } + } + } + } + + /* 等待绘画结果 */ + async pollComparisonResultDraw(id, drawInfo) { + const mjProxyUrl = (await this.globalConfigService.getConfigs(['mjProxyUrl'])); + const mjKey = (await this.globalConfigService.getConfigs(['mjKey'])); + const startTime = Date.now(); + const POLL_INTERVAL = 5000; // 每5秒查一次 + const TIMEOUT = 150000; // 超时时间 150秒 + let pollingCount = 0; // 记录轮询次数 + let retryCount = 0; // 重试计数 + const MAX_RETRIES = 5; // 最大重试次数 + const { drawId } = drawInfo; + + try { + while (Date.now() - startTime < TIMEOUT && retryCount < MAX_RETRIES) { + await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL)); + // Logger.debug(`【绘制图片】第 ${pollingCount + 1} 次开始查询, 使用 drawId: ${drawId}`, 'MidjourneyService'); + + try { + const headers = { + "Content-Type": "application/x-www-form-urlencoded", + "mj-api-secret": mjKey + }; + const url = `${mjProxyUrl}/mj/task/${drawId}/fetch`; + const res = await axios.get(url, { headers }); + const responses = res.data; + // Logger.debug(`【绘制图片】第 ${pollingCount + 1} 次查询结果: ${JSON.stringify(responses)}`, 'MidjourneyService'); + + const progress = responses.process; + await this.midjourneyEntity.update({ id }, { progress: progress }); + if (responses.status === 'SUCCESS') { + Logger.log(`绘制成功, URL: ${responses.imageUrl}`, 'MidjourneyService'); + return responses; // 返回成功的响应 + } + } catch (error) { + retryCount++; + Logger.error(`轮询过程中发生错误: ${error}`, 'MidjourneyService'); + } + pollingCount++; + } + + if (retryCount >= MAX_RETRIES) { + await this.updateDrawStatus(id, MidjourneyStatusEnum.DRAWFAIL); + throw new HttpException('轮询失败次数过多,请稍后再试!', HttpStatus.BAD_REQUEST); + } + + Logger.error('绘画超时,请稍后再试!', 'MidjourneyService'); + await this.updateDrawStatus(id, MidjourneyStatusEnum.DRAWFAIL); + throw new HttpException('绘画超时,请稍后再试!', HttpStatus.BAD_REQUEST); + } catch (error) { + Logger.error('获取图片结果失败: ', error, 'MidjourneyService'); + await this.updateDrawStatus(id, MidjourneyStatusEnum.DRAWFAIL); + throw error; + } + } + + // /* 查询绘画的所有列表 */ + // async getMessageList() { + // try { + // const mjProxyUrl = (await this.globalConfigService.getConfigs(['mjProxyUrl'])); + // const mjKey = (await this.globalConfigService.getConfigs(['mjKey'])); + // const url = `${mjProxyUrl}/mj/task/list`; + // const headers = { "mj-api-secret": mjKey }; + // const response = await axios.get(url, { headers }); + // return response.data; + // } catch (error) { + // Logger.error('查询绘制结果失败: getMessageList', error, 'MidjourneyService'); + // return []; + // } + // } + + // /* 通过content拿到百分比进度 */ + // parseProgress(content) { + // const regex = /\((\d+)%\)/; + // const match = content.match(regex); + + // if (match) { + // return parseInt(match[1], 10); + // } else { + // return null; + // } + // } + + /* 去除字符串表情 防止低版本数据库存入失败 */ + removeEmoji(str) { + const regex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + return str.replace(regex, ''); + } + + /* 绑定jobId到绘画记录 */ + async bindJobId(id, jobId) { + await this.midjourneyEntity.update({ id }, { jobId }); + } + + /* 获取我的绘制列表 */ + async getDrawList(req: Request, params) { + try { + const { page = 1, size = 30 } = params; + const [rows, count] = await this.midjourneyEntity.findAndCount({ + where: { userId: req.user.id, isDelete: 0 }, + order: { id: 'DESC' }, + take: size, + skip: (page - 1) * size, + select: ['id', 'userId', 'prompt', 'extraParam', 'fullPrompt', 'rec', 'orderId', 'drawId', 'drawUrl', 'drawRatio', 'isDelete', 'status', 'action'] + }); + const countQueue = await this.midjourneyEntity.count({ where: { isDelete: 0, status: In([1, 2]) } }); + const data: any = { rows: formatCreateOrUpdateDate(rows), count, countQueue }; + return data; + } catch (error) { + throw new HttpException('获取我得绘制列表失败', HttpStatus.BAD_REQUEST); + } + } + + // /* 格式化fileinfo 对于不同平台的图片进行压缩 */ + // formatFileInfo(fileInfo, isSaveImg, originUrl) { + // if (!fileInfo) return {}; + // let parseFileInfo: any = null + // try { + // parseFileInfo = JSON.parse(fileInfo); + // } catch (error) { + // parseFileInfo = null + // } + // if (!parseFileInfo) return; + // const { url, filename, size, cosUrl, width, height } = parseFileInfo; + // const targetSize = 310; // 目标宽度或高度 + + // // TODO判断逻辑有误 腾讯云会导致也判断为 chevereto 更换判断规则 + // const imgType = cosUrl.includes('cos') ? 'tencent' : cosUrl.includes('oss') ? 'ali' : 'chevereto'; + // let compress; + // let thumbImg; + // if (imgType === 'tencent') { + // const ratio = width / height; + // const targetHeight = Math.round(targetSize / ratio); // 计算目标高度 + // thumbImg = cosUrl + `?imageView2/1/w/${targetSize}/h/${targetHeight}/q/55`; + // } + // if (imgType === 'ali') { + // const ratio = height / width; + // const targetWidth = Math.round(targetSize / ratio); // 计算目标宽度 + // thumbImg = cosUrl + `?x-oss-process=image/resize,w_${targetWidth}`; + // } + // if (imgType === 'chevereto') { + // thumbImg = cosUrl.replace(/\.png$/, '.md.png'); + // } + // parseFileInfo.thumbImg = thumbImg; + // /* 如果配置了不存储图片 则 isSaceImg 为false的则需要使用反代地址拼接 */ + // if (!isSaveImg) { + // const proxyImgUrl = originUrl + // parseFileInfo.thumbImg = proxyImgUrl + // parseFileInfo.cosUrl = proxyImgUrl + // } + // return parseFileInfo; + // } + + /* 操作的时候去获取需要的信息 */ + async getDrawActionDetail(action, drawId, orderId) { + const detailInfo = await this.midjourneyEntity.findOne({ where: { drawId: drawId } }); + // if (!detailInfo) { + // throw new HttpException('当前绘画信息不存在!', HttpStatus.BAD_REQUEST); + // } + + const { extend, prompt, imgUrl, extraParam } = detailInfo; + const extendObj = JSON.parse(extend); + const buttons = extendObj.buttons || []; + // Logger.debug(`绘画详情: ${JSON.stringify({ drawId, prompt, imgUrl, extraParam, action })}`, 'MidjourneyService'); + + let currentButton; + if (action === 'UPSCALE') { + currentButton = buttons.find(button => { + // 检查是否为U1, U2, U3, U4格式的标签 + const isStandardUpscale = button.label.startsWith(`U${orderId}`); + // 检查是否为Upscale (Subtle) 或 Upscale (Creative)格式的标签,无论是否包含其他文字 + const isUpscaleUpscale = (orderId === 1 && /(Redo )?Upscale \(Subtle\)/.test(button.label)) || + (orderId === 2 && /(Redo )?Upscale \(Creative\)/.test(button.label)); + return isStandardUpscale || isUpscaleUpscale; + }); + } + if (action === 'VARIATION') { + currentButton = buttons.find(button => { + // 检查是否为V1, V2, V3, V4格式的标签 + const isStandardVariation = button.label.startsWith(`V${orderId}`); + // 检查是否为Vary (Strong) 或 Vary (Region)格式的标签,无论是否包含其他文字 + const isVaryVariation = (orderId === 1 && /Vary \(Strong\)/.test(button.label)) || + (orderId === 2 && /Vary \(Region\)/.test(button.label)); + return isStandardVariation || isVaryVariation; + }); + } + if (action === 'REGENERATE') { + currentButton = buttons.find(button => + button.customId.startsWith("MJ::JOB::reroll::0::") && button.label === "" + ); + } + if (action === 'ZOOM') { + currentButton = buttons.find(button => + (orderId === 1 && button.label === "Zoom Out 2x") || + (orderId === 2 && button.label === "Zoom Out 1.5x") + ); + } + if (!currentButton) { + throw new HttpException('所需绘画操作信息不存在!', HttpStatus.BAD_REQUEST); + } + + const { customId } = currentButton; + + return { customId, prompt, extraParam, drawId }; + } + + /* 删除图片 */ + async deleteDraw(id: number, req: Request) { + const d = await this.midjourneyEntity.findOne({ where: { id, userId: req.user.id, isDelete: 0 } }); + if (!d) { + throw new HttpException('当前图片不存在!', HttpStatus.BAD_REQUEST); + } + if (d.status === 2) { + throw new HttpException('绘制中的图片任务、禁止删除!', HttpStatus.BAD_REQUEST); + } + const res = await this.midjourneyEntity.update({ id }, { isDelete: 1 }); + if (res.affected > 0) { + return '删除成功!'; + } else { + throw new HttpException('删除失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 默认限制同时最多两个任务进行中 */ + async checkLimit(req: Request) { + const { role, id } = req.user; + // if (['super', 'admin'].includes(role)) { + // return; + // } + const count = await this.midjourneyEntity.count({ where: { userId: id, isDelete: 0, status: In([1, 2]) } }); + const mjLimitCount = await this.globalConfigService.getConfigs(['mjLimitCount']) + const max = mjLimitCount ? Number(mjLimitCount) : 2 + if (count >= max) { + throw new HttpException(`当前管理员限制单用户同时最多能执行${max}个任务`, HttpStatus.BAD_REQUEST); + } + } + + /* 队列回调绘图失败时候 */ + async drawFailed(jobData) { + const { id, userId, action } = jobData; + /* 退还余额 放大图片(类型2)是1 其他都是4 */ + // const amount = action === 2 ? 1 : 4; + // await this.userBalanceService.refundMjBalance(userId, amount); + await this.midjourneyEntity.update({ id }, { status: 4 }); + } + + /* 绘图成功扣费 */ + async drawSuccess(jobData) { + const { id, userId, action } = jobData; + /* 扣除余额 放大图片(类型2)是1 其他都是4 */ + const amount = action === "UPSCALE" ? 1 : 4; + Logger.debug(`绘画完成,执行扣费,扣除费用:${amount}积分。`) + await this.userBalanceService.refundMjBalance(userId, -amount); + await this.midjourneyEntity.update({ id }, { status: 3 }); + } + + /* 获取绘画列表 */ + async getList(params: GetListDto) { + const { page = 1, size = 20, rec, userId, status } = params; + + /* 客户端查询走缓存 */ + if (Number(size) === 999) { + const cache = await this.redisCacheService.get({ key: 'midjourney:getList' }); + if (cache) { + try { + return JSON.parse(cache); + } catch (error) { + return []; + } + } + } + + const where = { isDelete: 0 }; + rec && Object.assign(where, { rec }); + userId && Object.assign(where, { userId }); + status && Object.assign(where, { status }); + const [rows, count] = await this.midjourneyEntity.findAndCount({ + where, + order: { id: 'DESC' }, + take: size, + skip: (page - 1) * size, + select: ['id', 'drawId', 'drawUrl', 'drawRatio', 'prompt', 'fullPrompt', 'rec', 'createdAt', 'action', 'status'], + }); + + if (Number(size) === 999) { + const data = { + rows: rows.map((item: any) => { + const { id, drawId, drawUrl, drawRatio, prompt, fullPrompt, createdAt, rec, action, status } = item; + return { id, drawId, drawUrl, drawRatio, prompt, fullPrompt, createdAt, rec, action, status }; + }), + count, + }; + await this.redisCacheService.set({ key: 'midjourney:getList', val: JSON.stringify(data) }, 60 * 5); + return data; + } + const data = { rows, count }; + return data; + } + + /* 获取完整的绘画提示词 */ + async getFullPrompt(id: number) { + const m = await this.midjourneyEntity.findOne({ where: { id } }) + if (!m) return '' + const { fullPrompt } = m + return fullPrompt; + } + + /* 管理端获取绘画列表 */ + async getAdminDrawList(req: Request, params: GetListDto) { + try { + const { page = 1, size = 10, rec, userId, status } = params; + const where = { isDelete: 0 }; + rec && Object.assign(where, { rec }); + userId && Object.assign(where, { userId }); + status && Object.assign(where, { status }); + const [rows, count] = await this.midjourneyEntity.findAndCount({ + where, + order: { id: 'DESC' }, + take: size, + skip: (page - 1) * size, + }); + + const userIds = rows.map((item: any) => item.userId).filter(id => id < 100000); + const userInfos = await this.userEntity.find({ where: { id: In(userIds) }, select: ['id', 'username', 'avatar', 'email'] }); + rows.forEach((item: any) => { + item.userInfo = userInfos.find((user) => user.id === item.userId); + }); + // rows.forEach((item: any) => { + // try { + // const { extend, isSaveImg, fileInfo } = item; + // const originUrl = + // } catch (error) { + // } + // }); + if (req.user.role !== 'super') { + rows.forEach((item: any) => { + if (item.userInfo && item.userInfo.email) { + item.userInfo.email = item.userInfo.email.replace(/(.{2}).+(.{2}@.+)/, '$1****$2'); + } + }); + } + return { rows, count }; + } catch (error) { + throw new HttpException('查询失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 推荐与取消推荐图片 */ + async recDraw(params) { + const { id } = params; + const draw = await this.midjourneyEntity.findOne({ where: { id, status: 3, isDelete: 0 } }); + if (!draw) { + throw new HttpException('当前图片不存在!', HttpStatus.BAD_REQUEST); + } + const { rec } = draw; + const res = await this.midjourneyEntity.update({ id }, { rec: rec === 1 ? 0 : 1 }); + if (res.affected > 0) { + return '操作成功!'; + } + } + + /* 清空数据库的队列 */ + async cleanQueue() { + try { + await this.midjourneyEntity.update({ status: 2 }, { status: 4 }); + } catch (error) { + console.log('TODO->error: ', error); + } + } + + /* 删除记录 */ + async delLog(req: Request, body) { + const { id } = body; + if (!id) { + throw new HttpException('非法操作!', HttpStatus.BAD_REQUEST); + } + const res = await this.midjourneyEntity.delete({ id }); + if (res.affected > 0) { + return '删除记录成功!'; + } else { + throw new HttpException('删除记录失败!', HttpStatus.BAD_REQUEST); + } + } + + async setPrompt(req: Request, body) { + try { + const { prompt, status, isCarryParams, title, order, id, aspect } = body + if (id) { + return await this.mjPromptsEntity.update({ id }, { prompt, status, isCarryParams, order, aspect }) + } else { + return await this.mjPromptsEntity.save({ prompt, status, isCarryParams, title, order, aspect }) + } + } catch (error) { + console.log('error: ', error); + } + } + + async delPrompt(req: Request, body) { + const { id } = body + if (!id) { + throw new HttpException('非法操作!', HttpStatus.BAD_REQUEST); + } + return await this.mjPromptsEntity.delete({ id }) + } + + async queryPrompt() { + return await this.mjPromptsEntity.find({ + order: { order: 'DESC' }, + }) + } + + async proxyImg(params) { + const { url } = params + if (!url) return + const response = await axios.get(url, { responseType: 'arraybuffer' }); + const base64 = Buffer.from(response.data).toString('base64'); + return base64 + } +} + diff --git a/service/src/modules/midjourney/prompt.entity.ts b/service/src/modules/midjourney/prompt.entity.ts new file mode 100644 index 0000000..dd21119 --- /dev/null +++ b/service/src/modules/midjourney/prompt.entity.ts @@ -0,0 +1,27 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'mj_prompt' }) +export class mjPromptEntity extends BaseEntity { + @Column({ comment: '绘画描述词', type: 'text' }) + prompt: string; + + @Column({ comment: '开启状态', default: true }) + status: boolean; + + @Column({ comment: '是否携带左边的参数', default: true }) + isCarryParams: boolean; + + @Column({ comment: '提示词名称', type: 'text' }) + title: string; + + @Column({ comment: '排序id', default: 100 }) + order: number; + + @Column({ comment: '图片比例' }) + aspect: string + + @Column({ comment: '描述', nullable: true }) + desc: string; +} diff --git a/service/src/modules/midjourney/test.js b/service/src/modules/midjourney/test.js new file mode 100644 index 0000000..e383c1a --- /dev/null +++ b/service/src/modules/midjourney/test.js @@ -0,0 +1,8841 @@ +const res = [ + { + "id": "1130905721475711197", + "type": 19, + "content": "**[941d7ab62] a girl --v 5.2 --s 100 --ar 1:1 --c 0 --q .25** - <@1097407545750077461> (turbo)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130905721186291882", + "filename": "snine_941d7ab62_a_girl_5efd79b5-60a5-40fe-8dc7-909c0d1d83c0.png", + "size": 6607107, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130905721186291882/snine_941d7ab62_a_girl_5efd79b5-60a5-40fe-8dc7-909c0d1d83c0.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130905721186291882/snine_941d7ab62_a_girl_5efd79b5-60a5-40fe-8dc7-909c0d1d83c0.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:55:35.212000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::5efd79b5-60a5-40fe-8dc7-909c0d1d83c0", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130905561161019462", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130905561161019462", + "type": 0, + "content": "**[941d7ab62] a girl --v 5.2 --s 100 --ar 1:1 --c 0 --q .25** - <@1097407545750077461> (turbo)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130905560619941948", + "filename": "snine_941d7ab62_a_girl_108ce000-624e-4e07-861b-8c7a63b40375.png", + "size": 6475329, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130905560619941948/snine_941d7ab62_a_girl_108ce000-624e-4e07-861b-8c7a63b40375.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130905560619941948/snine_941d7ab62_a_girl_108ce000-624e-4e07-861b-8c7a63b40375.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:54:56.990000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::108ce000-624e-4e07-861b-8c7a63b40375::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130905561161019462", + "type": 0, + "content": "**[941d7ab62] a girl --v 5.2 --s 100 --ar 1:1 --c 0 --q .25** - <@1097407545750077461> (turbo)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130905560619941948", + "filename": "snine_941d7ab62_a_girl_108ce000-624e-4e07-861b-8c7a63b40375.png", + "size": 6475329, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130905560619941948/snine_941d7ab62_a_girl_108ce000-624e-4e07-861b-8c7a63b40375.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130905560619941948/snine_941d7ab62_a_girl_108ce000-624e-4e07-861b-8c7a63b40375.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:54:56.990000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::108ce000-624e-4e07-861b-8c7a63b40375::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::108ce000-624e-4e07-861b-8c7a63b40375", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130905536511082546", + "type": 19, + "content": "**[09f6dab90] a dog --v 5.2 --s 100 --ar 16:9 --c 0 --q .25** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130905535865167952", + "filename": "snine_09f6dab90_a_dog_b4f93052-5eaa-4d68-a4cb-0a5925cd1304.png", + "size": 7215378, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130905535865167952/snine_09f6dab90_a_dog_b4f93052-5eaa-4d68-a4cb-0a5925cd1304.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130905535865167952/snine_09f6dab90_a_dog_b4f93052-5eaa-4d68-a4cb-0a5925cd1304.png", + "width": 2912, + "height": 1632, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:54:51.113000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::b4f93052-5eaa-4d68-a4cb-0a5925cd1304::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::b4f93052-5eaa-4d68-a4cb-0a5925cd1304", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130543775178039317", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130543775178039317", + "type": 0, + "content": "**[09f6dab90] a dog --v 5.2 --s 100 --ar 16:9 --c 0 --q .25** - <@1097407545750077461> (turbo)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130543774649569351", + "filename": "snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "size": 7002725, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130543774649569351/snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130543774649569351/snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "width": 2912, + "height": 1632, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-17T16:57:20.490000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 1, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::1c463dcf-11f9-4860-9e26-7501cd3befaa::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130904057284939867", + "type": 19, + "content": "**[09f6dab90] a dog --v 5.2 --s 100 --ar 16:9 --c 0 --q .25** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130904056760651877", + "filename": "snine_09f6dab90_a_dog_be98b3cc-3bf4-40be-94ca-516e81c8818e.png", + "size": 6857991, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130904056760651877/snine_09f6dab90_a_dog_be98b3cc-3bf4-40be-94ca-516e81c8818e.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130904056760651877/snine_09f6dab90_a_dog_be98b3cc-3bf4-40be-94ca-516e81c8818e.png", + "width": 2912, + "height": 1632, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:48:58.438000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::be98b3cc-3bf4-40be-94ca-516e81c8818e::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::be98b3cc-3bf4-40be-94ca-516e81c8818e", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130543775178039317", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130543775178039317", + "type": 0, + "content": "**[09f6dab90] a dog --v 5.2 --s 100 --ar 16:9 --c 0 --q .25** - <@1097407545750077461> (turbo)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130543774649569351", + "filename": "snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "size": 7002725, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130543774649569351/snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130543774649569351/snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "width": 2912, + "height": 1632, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-17T16:57:20.490000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 1, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::1c463dcf-11f9-4860-9e26-7501cd3befaa::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130893526079652000", + "type": 19, + "content": "**[11757374e] A pig. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130893525299507350", + "filename": "snine_11757374e_A_pig._83000e74-c9ca-43f1-9988-0d6b736aa299.png", + "size": 7475081, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130893525299507350/snine_11757374e_A_pig._83000e74-c9ca-43f1-9988-0d6b736aa299.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130893525299507350/snine_11757374e_A_pig._83000e74-c9ca-43f1-9988-0d6b736aa299.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:07:07.603000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::83000e74-c9ca-43f1-9988-0d6b736aa299::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::83000e74-c9ca-43f1-9988-0d6b736aa299", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130892220002742293", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130892220002742293", + "type": 0, + "content": "**[11757374e] A pig. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130892219646234704", + "filename": "snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "size": 8459107, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130892219646234704/snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130892219646234704/snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:01:56.210000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 1, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::9b3f878b-3ffc-4bba-ad08-2e11a2e42783::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130892429311086784", + "type": 19, + "content": "**[11757374e] A pig. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - Image #1 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130892429000716358", + "filename": "snine_11757374e_A_pig._766268ac-52a7-4ee8-979b-819e86e9bb7b.png", + "size": 1989044, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130892429000716358/snine_11757374e_A_pig._766268ac-52a7-4ee8-979b-819e86e9bb7b.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130892429000716358/snine_11757374e_A_pig._766268ac-52a7-4ee8-979b-819e86e9bb7b.png", + "width": 816, + "height": 1456, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:02:46.113000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::766268ac-52a7-4ee8-979b-819e86e9bb7b", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::100::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "label": "Make Square", + "emoji": { + "name": "↔️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::766268ac-52a7-4ee8-979b-819e86e9bb7b::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::766268ac-52a7-4ee8-979b-819e86e9bb7b", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/766268ac-52a7-4ee8-979b-819e86e9bb7b/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130892220002742293", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130892220002742293", + "type": 0, + "content": "**[11757374e] A pig. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130892219646234704", + "filename": "snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "size": 8459107, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130892219646234704/snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130892219646234704/snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:01:56.210000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 1, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::9b3f878b-3ffc-4bba-ad08-2e11a2e42783::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130892220002742293", + "type": 0, + "content": "**[11757374e] A pig. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130892219646234704", + "filename": "snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "size": 8459107, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130892219646234704/snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130892219646234704/snine_11757374e_A_pig._9b3f878b-3ffc-4bba-ad08-2e11a2e42783.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T16:01:56.210000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 1, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::9b3f878b-3ffc-4bba-ad08-2e11a2e42783::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::9b3f878b-3ffc-4bba-ad08-2e11a2e42783", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130884065281724627", + "type": 19, + "content": "**[09f6dab90] a dog --v 5.2 --s 100 --ar 16:9 --c 0 --q .25** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130884064912605325", + "filename": "snine_09f6dab90_a_dog_788f6fe2-10aa-4fae-b56d-15abb91f38b6.png", + "size": 1438968, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130884064912605325/snine_09f6dab90_a_dog_788f6fe2-10aa-4fae-b56d-15abb91f38b6.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130884064912605325/snine_09f6dab90_a_dog_788f6fe2-10aa-4fae-b56d-15abb91f38b6.png", + "width": 1456, + "height": 816, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T15:29:31.973000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::788f6fe2-10aa-4fae-b56d-15abb91f38b6", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::100::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "label": "Make Square", + "emoji": { + "name": "↕️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::788f6fe2-10aa-4fae-b56d-15abb91f38b6::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::788f6fe2-10aa-4fae-b56d-15abb91f38b6", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/788f6fe2-10aa-4fae-b56d-15abb91f38b6/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130543775178039317", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130543775178039317", + "type": 0, + "content": "**[09f6dab90] a dog --v 5.2 --s 100 --ar 16:9 --c 0 --q .25** - <@1097407545750077461> (turbo)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130543774649569351", + "filename": "snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "size": 7002725, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130543774649569351/snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130543774649569351/snine_09f6dab90_a_dog_1c463dcf-11f9-4860-9e26-7501cd3befaa.png", + "width": 2912, + "height": 1632, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-17T16:57:20.490000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 1, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::1c463dcf-11f9-4860-9e26-7501cd3befaa::SOLO", + "style": 1, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::1c463dcf-11f9-4860-9e26-7501cd3befaa", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130880694290239679", + "type": 0, + "content": "**[833318325] 大熊猫 --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130880693703016449", + "filename": "snine_833318325_475da673-a8af-42b9-9144-6c2c0c6a5dff.png", + "size": 5683143, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130880693703016449/snine_833318325_475da673-a8af-42b9-9144-6c2c0c6a5dff.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130880693703016449/snine_833318325_475da673-a8af-42b9-9144-6c2c0c6a5dff.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T15:16:08.266000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::475da673-a8af-42b9-9144-6c2c0c6a5dff::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::475da673-a8af-42b9-9144-6c2c0c6a5dff", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130879370035200092", + "type": 0, + "content": "**[d0b2d6d09] young girl,Highly detailed,Vivid Colors,Makoto Shinkai,full body shot,looking at viewer,blush,sailor dress,shinto shrine --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130879369355735121", + "filename": "snine_d0b2d6d09_young_girlHighly_detailedVivid_ColorsMakoto_Sh_794bc65b-e817-414d-a03b-2f9e20b6c856.png", + "size": 7754691, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130879369355735121/snine_d0b2d6d09_young_girlHighly_detailedVivid_ColorsMakoto_Sh_794bc65b-e817-414d-a03b-2f9e20b6c856.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130879369355735121/snine_d0b2d6d09_young_girlHighly_detailedVivid_ColorsMakoto_Sh_794bc65b-e817-414d-a03b-2f9e20b6c856.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T15:10:52.539000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::794bc65b-e817-414d-a03b-2f9e20b6c856::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::794bc65b-e817-414d-a03b-2f9e20b6c856", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130875557211537430", + "type": 19, + "content": "**[e9a3f7b40] Anime style --niji 5 --ar 9:16 --c 0 --q 1** - Variations (Strong) by <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130875556834058311", + "filename": "snine_e9a3f7b40_93b9abee-f002-44df-91bd-d3d76c0e3fd7.png", + "size": 6129190, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130875556834058311/snine_e9a3f7b40_93b9abee-f002-44df-91bd-d3d76c0e3fd7.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130875556834058311/snine_e9a3f7b40_93b9abee-f002-44df-91bd-d3d76c0e3fd7.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T14:55:43.491000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::93b9abee-f002-44df-91bd-d3d76c0e3fd7::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::93b9abee-f002-44df-91bd-d3d76c0e3fd7", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130793924370374676", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130793924370374676", + "type": 19, + "content": "**[e9a3f7b40] Anime style --niji 5 --ar 9:16 --c 0 --q 1** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130793924043214938", + "filename": "snine_e9a3f7b40_08415b0f-a989-4b75-99a4-5c62dafce805.png", + "size": 1433118, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130793924043214938/snine_e9a3f7b40_08415b0f-a989-4b75-99a4-5c62dafce805.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130793924043214938/snine_e9a3f7b40_08415b0f-a989-4b75-99a4-5c62dafce805.png", + "width": 816, + "height": 1456, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:31:20.705000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 1, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::08415b0f-a989-4b75-99a4-5c62dafce805", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::100::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Make Square", + "emoji": { + "name": "↔️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::08415b0f-a989-4b75-99a4-5c62dafce805", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/08415b0f-a989-4b75-99a4-5c62dafce805/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130793386983567390", + "guild_id": "1097409128491651132" + } + } + }, + { + "id": "1130856590870839367", + "type": 0, + "content": "**[3a8012699] The KFC logo is a classic red and white image that is instantly recognizable. The camera type capturing this image would be a close-up shot, focusing on the details of the logo. The camera lens type would be a macro lens to capture the intricate lines and shapes of the logo. The time of day for this photograph would be during daylight hours to showcase the vibrant colors of the logo. In terms of style, the photograph would have a clean and modern aesthetic, with a focus on sharp lines and contrast. The red and white colors would pop against a clean background, creating a visually striking image. As for the type of film used, it would be a digital format to ensure the highest level of detail and clarity in capturing the logo. This would allow for precise rendering of the red and white colors, showcasing the brand's iconic image in all its glory. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130856590178799799", + "filename": "snine_3a8012699_062c72c0-d748-49c4-ad24-e58c26567036.png", + "size": 4601119, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130856590178799799/snine_3a8012699_062c72c0-d748-49c4-ad24-e58c26567036.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130856590178799799/snine_3a8012699_062c72c0-d748-49c4-ad24-e58c26567036.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T13:40:21.563000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::062c72c0-d748-49c4-ad24-e58c26567036::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::062c72c0-d748-49c4-ad24-e58c26567036", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130793924370374676", + "type": 19, + "content": "**[e9a3f7b40] Anime style --niji 5 --ar 9:16 --c 0 --q 1** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130793924043214938", + "filename": "snine_e9a3f7b40_08415b0f-a989-4b75-99a4-5c62dafce805.png", + "size": 1433118, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130793924043214938/snine_e9a3f7b40_08415b0f-a989-4b75-99a4-5c62dafce805.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130793924043214938/snine_e9a3f7b40_08415b0f-a989-4b75-99a4-5c62dafce805.png", + "width": 816, + "height": 1456, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:31:20.705000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 1, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::08415b0f-a989-4b75-99a4-5c62dafce805", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::100::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "label": "Make Square", + "emoji": { + "name": "↔️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::08415b0f-a989-4b75-99a4-5c62dafce805::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::08415b0f-a989-4b75-99a4-5c62dafce805", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/08415b0f-a989-4b75-99a4-5c62dafce805/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130793386983567390", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130793386983567390", + "type": 0, + "content": "**[e9a3f7b40] Anime style --niji 5 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130793386253766716", + "filename": "snine_e9a3f7b40_585b26a2-5d39-4c80-a1e1-c8617764227d.png", + "size": 5982014, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130793386253766716/snine_e9a3f7b40_585b26a2-5d39-4c80-a1e1-c8617764227d.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130793386253766716/snine_e9a3f7b40_585b26a2-5d39-4c80-a1e1-c8617764227d.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:29:12.582000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::585b26a2-5d39-4c80-a1e1-c8617764227d::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130793386983567390", + "type": 0, + "content": "**[e9a3f7b40] Anime style --niji 5 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130793386253766716", + "filename": "snine_e9a3f7b40_585b26a2-5d39-4c80-a1e1-c8617764227d.png", + "size": 5982014, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130793386253766716/snine_e9a3f7b40_585b26a2-5d39-4c80-a1e1-c8617764227d.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130793386253766716/snine_e9a3f7b40_585b26a2-5d39-4c80-a1e1-c8617764227d.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:29:12.582000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::585b26a2-5d39-4c80-a1e1-c8617764227d::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::585b26a2-5d39-4c80-a1e1-c8617764227d", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130792626791125083", + "type": 0, + "content": "**[1064c6356] Cute style --niji 5 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130792626082291823", + "filename": "snine_1064c6356_6c66398d-b948-4b61-9481-6d863dbf6f5e.png", + "size": 4874724, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130792626082291823/snine_1064c6356_6c66398d-b948-4b61-9481-6d863dbf6f5e.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130792626082291823/snine_1064c6356_6c66398d-b948-4b61-9481-6d863dbf6f5e.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:26:11.338000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::6c66398d-b948-4b61-9481-6d863dbf6f5e::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::6c66398d-b948-4b61-9481-6d863dbf6f5e", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130791877789110292", + "type": 0, + "content": "**[38649f8e3] A cute cat --niji 5 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130791877260619826", + "filename": "snine_38649f8e3_6d40d3f2-1a24-4f7e-af00-8b5c07e04dac.png", + "size": 5136729, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130791877260619826/snine_38649f8e3_6d40d3f2-1a24-4f7e-af00-8b5c07e04dac.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130791877260619826/snine_38649f8e3_6d40d3f2-1a24-4f7e-af00-8b5c07e04dac.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:23:12.762000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::6d40d3f2-1a24-4f7e-af00-8b5c07e04dac", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130788581942767648", + "type": 19, + "content": "**[6afbd35a2] the person in the picture is coding with silly face change the picture to cartoon style --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130788581636579408", + "filename": "snine_6afbd35a2_5eec18a3-acef-4e11-a3d4-166b33bb2d00.png", + "size": 1418113, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130788581636579408/snine_6afbd35a2_5eec18a3-acef-4e11-a3d4-166b33bb2d00.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130788581636579408/snine_6afbd35a2_5eec18a3-acef-4e11-a3d4-166b33bb2d00.png", + "width": 1024, + "height": 1024, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:10:06.971000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::5eec18a3-acef-4e11-a3d4-166b33bb2d00", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::5eec18a3-acef-4e11-a3d4-166b33bb2d00::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::5eec18a3-acef-4e11-a3d4-166b33bb2d00", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/5eec18a3-acef-4e11-a3d4-166b33bb2d00/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130788208309973105", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130788208309973105", + "type": 0, + "content": "**[6afbd35a2] the person in the picture is coding with silly face change the picture to cartoon style --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130788206904885248", + "filename": "snine_6afbd35a2_5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3.png", + "size": 5650217, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130788206904885248/snine_6afbd35a2_5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130788206904885248/snine_6afbd35a2_5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:08:37.890000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130788208309973105", + "type": 0, + "content": "**[6afbd35a2] the person in the picture is coding with silly face change the picture to cartoon style --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130788206904885248", + "filename": "snine_6afbd35a2_5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3.png", + "size": 5650217, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130788206904885248/snine_6afbd35a2_5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130788206904885248/snine_6afbd35a2_5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:08:37.890000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::5bc35bd1-e8fd-40df-b1ec-42be4b2b96d3", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130787925001523271", + "type": 0, + "content": "**[cc95b0b82] Sure, I can help you with that. Here's the translation: \"I would like you to generate a scene and clothing for me.\" --niji 5 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130787924523356281", + "filename": "snine_cc95b0b82_98b74dc7-e102-4dab-a85c-3d2fcfac199f.png", + "size": 6227668, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130787924523356281/snine_cc95b0b82_98b74dc7-e102-4dab-a85c-3d2fcfac199f.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130787924523356281/snine_cc95b0b82_98b74dc7-e102-4dab-a85c-3d2fcfac199f.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:07:30.344000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::98b74dc7-e102-4dab-a85c-3d2fcfac199f::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::98b74dc7-e102-4dab-a85c-3d2fcfac199f", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130787398654099528", + "type": 0, + "content": "**[673fcb323] This person is wearing a white t-shirt and coding. The person's face looks silly. --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130787398020771850", + "filename": "snine_673fcb323_6fc521c0-6740-4a86-8c15-b53e52f2f558.png", + "size": 5716054, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130787398020771850/snine_673fcb323_6fc521c0-6740-4a86-8c15-b53e52f2f558.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130787398020771850/snine_673fcb323_6fc521c0-6740-4a86-8c15-b53e52f2f558.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:05:24.853000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::6fc521c0-6740-4a86-8c15-b53e52f2f558::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::6fc521c0-6740-4a86-8c15-b53e52f2f558", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130786260282261564", + "type": 0, + "content": "**[1c4640417] A beautiful girl --niji 5 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130786259481133096", + "filename": "snine_1c4640417_d9db8405-d343-4050-9cf7-2b0f769d0523.png", + "size": 7086746, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130786259481133096/snine_1c4640417_d9db8405-d343-4050-9cf7-2b0f769d0523.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130786259481133096/snine_1c4640417_d9db8405-d343-4050-9cf7-2b0f769d0523.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T09:00:53.444000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::d9db8405-d343-4050-9cf7-2b0f769d0523::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::d9db8405-d343-4050-9cf7-2b0f769d0523", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130785208577302560", + "type": 0, + "content": "**[a54277844] A beautiful girl --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130785208367583332", + "filename": "snine_a54277844_2d233264-3fe4-4c62-8dae-4f26a875f6ef.png", + "size": 6719667, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130785208367583332/snine_a54277844_2d233264-3fe4-4c62-8dae-4f26a875f6ef.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130785208367583332/snine_a54277844_2d233264-3fe4-4c62-8dae-4f26a875f6ef.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:56:42.698000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::2d233264-3fe4-4c62-8dae-4f26a875f6ef::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::2d233264-3fe4-4c62-8dae-4f26a875f6ef", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130785020303380592", + "type": 19, + "content": "**[5ec691cb1] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - Image #3 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130785019930103839", + "filename": "snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_64dd2d1a-93ff-495e-b4ae-4023820bfeff.png", + "size": 1427943, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130785019930103839/snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_64dd2d1a-93ff-495e-b4ae-4023820bfeff.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130785019930103839/snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_64dd2d1a-93ff-495e-b4ae-4023820bfeff.png", + "width": 816, + "height": 1456, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:55:57.810000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::64dd2d1a-93ff-495e-b4ae-4023820bfeff", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::100::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "label": "Make Square", + "emoji": { + "name": "↔️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::64dd2d1a-93ff-495e-b4ae-4023820bfeff::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::64dd2d1a-93ff-495e-b4ae-4023820bfeff", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/64dd2d1a-93ff-495e-b4ae-4023820bfeff/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130777015482601512", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130777015482601512", + "type": 0, + "content": "**[5ec691cb1] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130777014870220881", + "filename": "snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_d44e6121-c702-424c-86f9-04b75d9559c7.png", + "size": 6264746, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130777014870220881/snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_d44e6121-c702-424c-86f9-04b75d9559c7.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130777014870220881/snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_d44e6121-c702-424c-86f9-04b75d9559c7.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:24:09.312000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 1, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::d44e6121-c702-424c-86f9-04b75d9559c7::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130784886001770558", + "type": 19, + "content": "**[628fc2b5a] Sure, I will provide you with English translations in an AI style that closely resembles your own language. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - Variations by <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130784885406175282", + "filename": "snine_628fc2b5a_4142cba0-3fc7-4523-a8ae-780c73738ade.png", + "size": 7204596, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130784885406175282/snine_628fc2b5a_4142cba0-3fc7-4523-a8ae-780c73738ade.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130784885406175282/snine_628fc2b5a_4142cba0-3fc7-4523-a8ae-780c73738ade.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:55:25.790000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::4142cba0-3fc7-4523-a8ae-780c73738ade::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::4142cba0-3fc7-4523-a8ae-780c73738ade", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130781256389492787", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130781256389492787", + "type": 0, + "content": "**[628fc2b5a] Sure, I will provide you with English translations in an AI style that closely resembles your own language. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781255647109200", + "filename": "snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "size": 7595981, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781255647109200/snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781255647109200/snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:41:00.423000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::4b562ae4-50dc-4109-8e4f-ecdbc902efbd::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 1, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130784725754183730", + "type": 0, + "content": "**[8fa70a85e] Please modify the image into a cartoon style. --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130784725095694466", + "filename": "snine_8fa70a85e_421b33a4-5db5-4a1a-8791-3db87bb4fe7d.png", + "size": 6486307, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130784725095694466/snine_8fa70a85e_421b33a4-5db5-4a1a-8791-3db87bb4fe7d.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130784725095694466/snine_8fa70a85e_421b33a4-5db5-4a1a-8791-3db87bb4fe7d.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:54:47.584000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::421b33a4-5db5-4a1a-8791-3db87bb4fe7d::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::421b33a4-5db5-4a1a-8791-3db87bb4fe7d", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130784701351739553", + "type": 19, + "content": "**[944e9309c] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130784701167194142", + "filename": "snine_944e9309c_9b592503-40d9-4b2d-8069-9c43f9b0cb99.png", + "size": 1357855, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130784701167194142/snine_944e9309c_9b592503-40d9-4b2d-8069-9c43f9b0cb99.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130784701167194142/snine_944e9309c_9b592503-40d9-4b2d-8069-9c43f9b0cb99.png", + "width": 1024, + "height": 1024, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:54:41.766000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::9b592503-40d9-4b2d-8069-9c43f9b0cb99", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::9b592503-40d9-4b2d-8069-9c43f9b0cb99::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::9b592503-40d9-4b2d-8069-9c43f9b0cb99", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/9b592503-40d9-4b2d-8069-9c43f9b0cb99/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130781230015721543", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130781230015721543", + "type": 0, + "content": "**[944e9309c] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781229407535194", + "filename": "snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "size": 5496105, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781229407535194/snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781229407535194/snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:40:54.135000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 1, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130784669965758566", + "type": 19, + "content": "**[628fc2b5a] Sure, I will provide you with English translations in an AI style that closely resembles your own language. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - Variations by <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130784669378547755", + "filename": "snine_628fc2b5a_0e9faeb3-27e8-49b7-9021-419aa36e919d.png", + "size": 7385815, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130784669378547755/snine_628fc2b5a_0e9faeb3-27e8-49b7-9021-419aa36e919d.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130784669378547755/snine_628fc2b5a_0e9faeb3-27e8-49b7-9021-419aa36e919d.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:54:34.283000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::0e9faeb3-27e8-49b7-9021-419aa36e919d::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::0e9faeb3-27e8-49b7-9021-419aa36e919d", + "style": 2, + "label": "V4" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130781256389492787", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130781256389492787", + "type": 0, + "content": "**[628fc2b5a] Sure, I will provide you with English translations in an AI style that closely resembles your own language. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781255647109200", + "filename": "snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "size": 7595981, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781255647109200/snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781255647109200/snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:41:00.423000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::4b562ae4-50dc-4109-8e4f-ecdbc902efbd::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 1, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130784285243220040", + "type": 0, + "content": "**[100fceb5b] I want to generate an anime with the same clothes and scenes as the original image. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130784285226446880", + "filename": "snine_100fceb5b_52655b99-0600-4217-83ea-bbce9cc6bbfb.png", + "size": 6853553, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130784285226446880/snine_100fceb5b_52655b99-0600-4217-83ea-bbce9cc6bbfb.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130784285226446880/snine_100fceb5b_52655b99-0600-4217-83ea-bbce9cc6bbfb.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:53:02.558000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::52655b99-0600-4217-83ea-bbce9cc6bbfb::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::52655b99-0600-4217-83ea-bbce9cc6bbfb", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130784122848170114", + "type": 19, + "content": "**[5a3ae4656] Close-up of bedside table,Real scene,night --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130784122541981696", + "filename": "snine_5a3ae4656_0abed2b3-ea29-4e14-abdb-a93b0be04764.png", + "size": 1431394, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130784122541981696/snine_5a3ae4656_0abed2b3-ea29-4e14-abdb-a93b0be04764.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130784122541981696/snine_5a3ae4656_0abed2b3-ea29-4e14-abdb-a93b0be04764.png", + "width": 1024, + "height": 1024, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:52:23.840000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::0abed2b3-ea29-4e14-abdb-a93b0be04764", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::0abed2b3-ea29-4e14-abdb-a93b0be04764::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::0abed2b3-ea29-4e14-abdb-a93b0be04764", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/0abed2b3-ea29-4e14-abdb-a93b0be04764/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130782952696074281", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130782952696074281", + "type": 0, + "content": "**[5a3ae4656] Close-up of bedside table,Real scene,night --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130782950313709668", + "filename": "snine_5a3ae4656_e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc.png", + "size": 6268730, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130782950313709668/snine_5a3ae4656_e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130782950313709668/snine_5a3ae4656_e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:47:44.854000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130783951749918860", + "type": 19, + "content": "**[944e9309c] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - Image #2 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130783951456325654", + "filename": "snine_944e9309c_95f2115e-3c0f-4cbf-b208-74d01850402d.png", + "size": 1070063, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130783951456325654/snine_944e9309c_95f2115e-3c0f-4cbf-b208-74d01850402d.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130783951456325654/snine_944e9309c_95f2115e-3c0f-4cbf-b208-74d01850402d.png", + "width": 1024, + "height": 1024, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:51:43.047000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::95f2115e-3c0f-4cbf-b208-74d01850402d", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::95f2115e-3c0f-4cbf-b208-74d01850402d::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::95f2115e-3c0f-4cbf-b208-74d01850402d", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/95f2115e-3c0f-4cbf-b208-74d01850402d/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130781230015721543", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130781230015721543", + "type": 0, + "content": "**[944e9309c] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781229407535194", + "filename": "snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "size": 5496105, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781229407535194/snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781229407535194/snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:40:54.135000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 1, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130783885328908308", + "type": 0, + "content": "**[ca762ced9] A bear sits in front of a computer, fully engrossed in its coding project. The room is dimly lit, with soft rays of sunlight filtering through the curtains. The bear's fur glistens in the warm glow, as it diligently types lines of code onto the keyboard. Its paws move swiftly and purposefully, navigating through complex algorithms and debugging errors with ease. The camera captures the scene from a slightly elevated angle, showcasing the bear's focused expression and intense concentration. The lens type accentuates the details of the bear's fur, highlighting its rich texture and shades of brown. The time of day is late afternoon, casting long shadows across the room and creating a cozy ambiance. The style of the photograph is reminiscent of a vintage black and white image, adding a touch of nostalgia to the modern setting. The bear's dedication to coding is amplified by this classic aesthetic, symbolizing the timeless pursuit of knowledge and innovation. If this scene were captured on film, it would be on a high-quality black and white film, enhancing the contrast and depth of the image. The film's grain adds a subtle artistic touch, further immersing the viewer into the bear's world of coding. In this unique and captivating image, the bear's passion for coding is beautifully portrayed, inspiring viewers to embrace their own pursuits with determination and focus. --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130783884775264338", + "filename": "snine_ca762ced9_A_bear_sits_in_front_of_a_computer_fully_engro_f98bf3fb-dd23-49c2-8389-5fbc3aaa6088.png", + "size": 6639793, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130783884775264338/snine_ca762ced9_A_bear_sits_in_front_of_a_computer_fully_engro_f98bf3fb-dd23-49c2-8389-5fbc3aaa6088.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130783884775264338/snine_ca762ced9_A_bear_sits_in_front_of_a_computer_fully_engro_f98bf3fb-dd23-49c2-8389-5fbc3aaa6088.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:51:27.211000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::f98bf3fb-dd23-49c2-8389-5fbc3aaa6088", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130783096145444864", + "type": 0, + "content": "**[628fc2b5a] Sure, I will provide you with English translations in an AI style that closely resembles your own language. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130783095512113212", + "filename": "snine_628fc2b5a_381811d8-49e1-4aef-a24b-786ae5ec84d6.png", + "size": 7626641, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130783095512113212/snine_628fc2b5a_381811d8-49e1-4aef-a24b-786ae5ec84d6.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130783095512113212/snine_628fc2b5a_381811d8-49e1-4aef-a24b-786ae5ec84d6.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:48:19.055000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::381811d8-49e1-4aef-a24b-786ae5ec84d6::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::381811d8-49e1-4aef-a24b-786ae5ec84d6", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130782952696074281", + "type": 0, + "content": "**[5a3ae4656] Close-up of bedside table,Real scene,night --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130782950313709668", + "filename": "snine_5a3ae4656_e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc.png", + "size": 6268730, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130782950313709668/snine_5a3ae4656_e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130782950313709668/snine_5a3ae4656_e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:47:44.854000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::e0b29ab7-0254-4e72-b9d6-5642a1c9a7cc", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130782742670475264", + "type": 0, + "content": "**[66d37b0b6] Face transformed into an anime style. --v 5.2 --s 1 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130782741936484454", + "filename": "snine_66d37b0b6_01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b.png", + "size": 6827905, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130782741936484454/snine_66d37b0b6_01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130782741936484454/snine_66d37b0b6_01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:46:54.780000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::01c8dec1-1388-4f1f-b0a7-1ff7c8a1c81b", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130781893114200074", + "type": 0, + "content": "**[975bdaa93] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781892568944660", + "filename": "snine_975bdaa93_indoorbedside_tablesoft_lightingfeaturesreal_3c24ecc1-67d2-44e3-a0d0-855235bed5ab.png", + "size": 6234146, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781892568944660/snine_975bdaa93_indoorbedside_tablesoft_lightingfeaturesreal_3c24ecc1-67d2-44e3-a0d0-855235bed5ab.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781892568944660/snine_975bdaa93_indoorbedside_tablesoft_lightingfeaturesreal_3c24ecc1-67d2-44e3-a0d0-855235bed5ab.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:43:32.230000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::3c24ecc1-67d2-44e3-a0d0-855235bed5ab::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::3c24ecc1-67d2-44e3-a0d0-855235bed5ab", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130781256389492787", + "type": 0, + "content": "**[628fc2b5a] Sure, I will provide you with English translations in an AI style that closely resembles your own language. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781255647109200", + "filename": "snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "size": 7595981, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781255647109200/snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781255647109200/snine_628fc2b5a_4b562ae4-50dc-4109-8e4f-ecdbc902efbd.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:41:00.423000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::4b562ae4-50dc-4109-8e4f-ecdbc902efbd::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 1, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::4b562ae4-50dc-4109-8e4f-ecdbc902efbd", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130781230015721543", + "type": 0, + "content": "**[944e9309c] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 1:1 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130781229407535194", + "filename": "snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "size": 5496105, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130781229407535194/snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130781229407535194/snine_944e9309c_efb876c3-0024-49d2-a41f-cc6cf6ce5d3f.png", + "width": 2048, + "height": 2048, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:40:54.135000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 1, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::efb876c3-0024-49d2-a41f-cc6cf6ce5d3f", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130779429984026634", + "type": 0, + "content": "**[670d33bd6] I want it to be made into an anime, and it should be exactly like the original image. --v 5.1 --s 100 --ar 9:16 --c 0 --q 2** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130779429396811816", + "filename": "snine_670d33bd6_374f9f58-27cf-413c-b0dc-168b94c52396.png", + "size": 7378723, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130779429396811816/snine_670d33bd6_374f9f58-27cf-413c-b0dc-168b94c52396.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130779429396811816/snine_670d33bd6_374f9f58-27cf-413c-b0dc-168b94c52396.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:33:44.974000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::374f9f58-27cf-413c-b0dc-168b94c52396::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::374f9f58-27cf-413c-b0dc-168b94c52396", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130777852103622717", + "type": 0, + "content": "**[a29146ca9] To compare AI styles that resemble images. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130777851365441566", + "filename": "snine_a29146ca9_dd15e90e-978b-45c0-a9a0-7956e6c4633c.png", + "size": 7666347, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130777851365441566/snine_a29146ca9_dd15e90e-978b-45c0-a9a0-7956e6c4633c.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130777851365441566/snine_a29146ca9_dd15e90e-978b-45c0-a9a0-7956e6c4633c.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:27:28.778000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::dd15e90e-978b-45c0-a9a0-7956e6c4633c::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::dd15e90e-978b-45c0-a9a0-7956e6c4633c", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130777015482601512", + "type": 0, + "content": "**[5ec691cb1] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130777014870220881", + "filename": "snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_d44e6121-c702-424c-86f9-04b75d9559c7.png", + "size": 6264746, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130777014870220881/snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_d44e6121-c702-424c-86f9-04b75d9559c7.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130777014870220881/snine_5ec691cb1_indoorbedside_tablesoft_lightingfeaturesreal_d44e6121-c702-424c-86f9-04b75d9559c7.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:24:09.312000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 1, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::d44e6121-c702-424c-86f9-04b75d9559c7::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::d44e6121-c702-424c-86f9-04b75d9559c7", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130776997891670076", + "type": 0, + "content": "**[e3132126d] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130776997153493092", + "filename": "snine_e3132126d_indoorbedside_tablesoft_lightingfeaturesreal_a665f149-838a-4b2c-8060-615d1efcb179.png", + "size": 6024392, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130776997153493092/snine_e3132126d_indoorbedside_tablesoft_lightingfeaturesreal_a665f149-838a-4b2c-8060-615d1efcb179.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130776997153493092/snine_e3132126d_indoorbedside_tablesoft_lightingfeaturesreal_a665f149-838a-4b2c-8060-615d1efcb179.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:24:05.118000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::a665f149-838a-4b2c-8060-615d1efcb179::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::a665f149-838a-4b2c-8060-615d1efcb179", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130776835513397309", + "type": 0, + "content": "**[8d37f4e57] Anime --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130776832640290836", + "filename": "snine_8d37f4e57_5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad.png", + "size": 6526803, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130776832640290836/snine_8d37f4e57_5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130776832640290836/snine_8d37f4e57_5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:23:26.404000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::5e8329f7-0b8f-49ad-9bc9-fc7db54d2cad", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130776282788016138", + "type": 0, + "content": "**[73fc08515] indoor,bedside table,soft lighting,features,real --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130776282028851311", + "filename": "snine_73fc08515_40f4944e-15e6-48c0-8bc3-96d9b1afe4b8.png", + "size": 6153610, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130776282028851311/snine_73fc08515_40f4944e-15e6-48c0-8bc3-96d9b1afe4b8.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130776282028851311/snine_73fc08515_40f4944e-15e6-48c0-8bc3-96d9b1afe4b8.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:21:14.624000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::40f4944e-15e6-48c0-8bc3-96d9b1afe4b8", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130774289554083872", + "type": 0, + "content": "**[cc65e67f4] 可爱的狗狗。fluffy, playful, loyal, friendly, adorable. Close-up. Wide-angle lens. Sunny afternoon. Vibrant colors. Digital photo. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130774289533128734", + "filename": "snine_cc65e67f4_fluffy_playful_loyal_friendly_adorable._C_be2f1ab0-8818-452f-9b15-f7bac084c25c.png", + "size": 6909832, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130774289533128734/snine_cc65e67f4_fluffy_playful_loyal_friendly_adorable._C_be2f1ab0-8818-452f-9b15-f7bac084c25c.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130774289533128734/snine_cc65e67f4_fluffy_playful_loyal_friendly_adorable._C_be2f1ab0-8818-452f-9b15-f7bac084c25c.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:13:19.400000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::be2f1ab0-8818-452f-9b15-f7bac084c25c::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::be2f1ab0-8818-452f-9b15-f7bac084c25c", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130773918433693746", + "type": 0, + "content": "**[9ed869764] A fluffy golden retriever with a joyful expression and a shiny coat stands proudly in a lush green park. Its fur glistens under the warm rays of the afternoon sun, creating a beautiful contrast against the vibrant colors of the surrounding flowers and trees. The camera captures the dog's playful eyes, filled with curiosity and love. The lens used is a wide-angle lens, allowing for a wider perspective that encompasses the dog's surroundings. It is midday, and the sunlight casts a soft glow on the scene, adding a touch of warmth and serenity to the image. The style of the photograph is natural and candid, capturing the dog's genuine happiness and charm. The film used is a high-quality color film, enhancing the richness of the colors and textures in the image. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130773917800333342", + "filename": "snine_9ed869764_A_fluffy_golden_retriever_with_a_joyful_expres_89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6.png", + "size": 6818460, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130773917800333342/snine_9ed869764_A_fluffy_golden_retriever_with_a_joyful_expres_89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130773917800333342/snine_9ed869764_A_fluffy_golden_retriever_with_a_joyful_expres_89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:11:50.918000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::89a3ee48-87f6-40cd-8b8c-9d24fd21a7e6", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130773017224544347", + "type": 19, + "content": "**[6498b60fc] A black hole devouring Earth. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - Image #4 <@1097407545750077461>", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130773016935153754", + "filename": "snine_6498b60fc_A_black_hole_devouring_Earth._1e06fdf3-4396-4fc6-a188-7af4552e18dd.png", + "size": 1871242, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130773016935153754/snine_6498b60fc_A_black_hole_devouring_Earth._1e06fdf3-4396-4fc6-a188-7af4552e18dd.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130773016935153754/snine_6498b60fc_A_black_hole_devouring_Earth._1e06fdf3-4396-4fc6-a188-7af4552e18dd.png", + "width": 816, + "height": 1456, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:08:16.053000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::high_variation::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "label": "Vary (Strong)", + "emoji": { + "name": "🪄" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::low_variation::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "label": "Vary (Subtle)", + "emoji": { + "name": "🪄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::Outpaint::50::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "label": "Zoom Out 2x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::75::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "label": "Zoom Out 1.5x", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::CustomZoom::1e06fdf3-4396-4fc6-a188-7af4552e18dd", + "style": 2, + "label": "Custom Zoom", + "emoji": { + "name": "🔍" + } + }, + { + "type": 2, + "custom_id": "MJ::Outpaint::100::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "label": "Make Square", + "emoji": { + "name": "↔️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::pan_left::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "emoji": { + "name": "⬅️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_right::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "emoji": { + "name": "➡️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_up::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "emoji": { + "name": "⬆️" + } + }, + { + "type": 2, + "custom_id": "MJ::JOB::pan_down::1::1e06fdf3-4396-4fc6-a188-7af4552e18dd::SOLO", + "style": 2, + "emoji": { + "name": "⬇️" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::BOOKMARK::1e06fdf3-4396-4fc6-a188-7af4552e18dd", + "style": 2, + "emoji": { + "name": "❤️" + } + }, + { + "type": 2, + "style": 5, + "label": "Web", + "url": "https://www.midjourney.com/app/jobs/1e06fdf3-4396-4fc6-a188-7af4552e18dd/" + } + ] + } + ], + "message_reference": { + "channel_id": "1109782665743306813", + "message_id": "1130771206036000819", + "guild_id": "1097409128491651132" + }, + "referenced_message": { + "id": "1130771206036000819", + "type": 0, + "content": "**[6498b60fc] A black hole devouring Earth. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130771205373313085", + "filename": "snine_6498b60fc_A_black_hole_devouring_Earth._80f1e044-1ffc-40c0-b018-e043c3acc86f.png", + "size": 8149740, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130771205373313085/snine_6498b60fc_A_black_hole_devouring_Earth._80f1e044-1ffc-40c0-b018-e043c3acc86f.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130771205373313085/snine_6498b60fc_A_black_hole_devouring_Earth._80f1e044-1ffc-40c0-b018-e043c3acc86f.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:01:04.232000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::80f1e044-1ffc-40c0-b018-e043c3acc86f::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V4" + } + ] + } + ] + } + }, + { + "id": "1130771582718062603", + "type": 0, + "content": "**[c110f4786] A beautiful cat with silky fur, mesmerizing green eyes, and a graceful posture. Its fur is a combination of shades of gray, black, and white, creating a striking pattern that resembles delicate brush strokes on a canvas. The cat exudes elegance and confidence as it gracefully moves through its environment. With each step, its paws seem to glide effortlessly, leaving behind an air of mystery and grace. The camera captures this majestic creature from a close-up perspective, allowing us to see every intricate detail of its fur and the intensity in its eyes. The lens used is a macro lens, emphasizing the fine textures and patterns on the cat's coat. The photograph is taken during the early morning hours when the soft golden sunlight bathes the scene, casting a warm glow on the cat's fur. The style of the photograph is artistic, with a hint of surrealism, capturing the essence of the cat's beauty in a dreamlike manner. The film used is a high-quality color film, enhancing the vibrancy of the colors and adding depth to the image. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130771582382526564", + "filename": "snine_c110f4786_A_beautiful_cat_with_silky_fur_mesmerizing_gre_e3e08383-183a-4868-a9ad-72d646223199.png", + "size": 7611510, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130771582382526564/snine_c110f4786_A_beautiful_cat_with_silky_fur_mesmerizing_gre_e3e08383-183a-4868-a9ad-72d646223199.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130771582382526564/snine_c110f4786_A_beautiful_cat_with_silky_fur_mesmerizing_gre_e3e08383-183a-4868-a9ad-72d646223199.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:02:34.040000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::e3e08383-183a-4868-a9ad-72d646223199::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::e3e08383-183a-4868-a9ad-72d646223199", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130771240865513583", + "type": 0, + "content": "**[291694988] A little dog is walking in the field. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130771240345403452", + "filename": "snine_291694988_A_little_dog_is_walking_in_the_field._7c5a37f0-d4ec-43ff-b324-5507471fce24.png", + "size": 7270542, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130771240345403452/snine_291694988_A_little_dog_is_walking_in_the_field._7c5a37f0-d4ec-43ff-b324-5507471fce24.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130771240345403452/snine_291694988_A_little_dog_is_walking_in_the_field._7c5a37f0-d4ec-43ff-b324-5507471fce24.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:01:12.536000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::7c5a37f0-d4ec-43ff-b324-5507471fce24::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::7c5a37f0-d4ec-43ff-b324-5507471fce24", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130771206036000819", + "type": 0, + "content": "**[6498b60fc] A black hole devouring Earth. --v 5.2 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130771205373313085", + "filename": "snine_6498b60fc_A_black_hole_devouring_Earth._80f1e044-1ffc-40c0-b018-e043c3acc86f.png", + "size": 8149740, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130771205373313085/snine_6498b60fc_A_black_hole_devouring_Earth._80f1e044-1ffc-40c0-b018-e043c3acc86f.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130771205373313085/snine_6498b60fc_A_black_hole_devouring_Earth._80f1e044-1ffc-40c0-b018-e043c3acc86f.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T08:01:04.232000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 1, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::80f1e044-1ffc-40c0-b018-e043c3acc86f::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::80f1e044-1ffc-40c0-b018-e043c3acc86f", + "style": 2, + "label": "V4" + } + ] + } + ] + }, + { + "id": "1130768895146463273", + "type": 0, + "content": "**[866ee4db0] A mesmerizing galaxy with vibrant hues of purple and blue, swirling and dancing in a cosmic ballet. The camera hovers above the spiral arms, capturing the breathtaking beauty of this celestial masterpiece. The lens used is a wide-angle lens, allowing for a sweeping view of the entire galaxy. The time of day is set during the midnight hour, when the stars shine their brightest against the dark canvas of space. The style of the photograph is ethereal and dreamlike, with a touch of surrealism. The film used is a digital sensor, enabling crisp details and vivid colors to be captured with precision. --v 5.1 --s 100 --ar 9:16 --c 0 --q 1** - <@1097407545750077461> (fast)", + "channel_id": "1109782665743306813", + "author": { + "id": "936929561302675456", + "username": "Midjourney Bot", + "avatar": "f6ce562a6b4979c4b1cbc5b436d3be76", + "discriminator": "9282", + "public_flags": 589824, + "flags": 589824, + "bot": true, + "banner": null, + "accent_color": null, + "global_name": null, + "avatar_decoration": null, + "display_name": null, + "banner_color": null + }, + "attachments": [ + { + "id": "1130768894404087868", + "filename": "snine_866ee4db0_13c684d3-c5c1-41c5-86d0-0317d5a7b002.png", + "size": 8150413, + "url": "https://cdn.discordapp.com/attachments/1109782665743306813/1130768894404087868/snine_866ee4db0_13c684d3-c5c1-41c5-86d0-0317d5a7b002.png", + "proxy_url": "https://media.discordapp.net/attachments/1109782665743306813/1130768894404087868/snine_866ee4db0_13c684d3-c5c1-41c5-86d0-0317d5a7b002.png", + "width": 1632, + "height": 2912, + "content_type": "image/png" + } + ], + "embeds": [], + "mentions": [ + { + "id": "1097407545750077461", + "username": ".snine", + "avatar": null, + "discriminator": "0", + "public_flags": 0, + "flags": 0, + "banner": null, + "accent_color": null, + "global_name": "Snine", + "avatar_decoration": null, + "display_name": "Snine", + "banner_color": null + } + ], + "mention_roles": [], + "pinned": false, + "mention_everyone": false, + "tts": false, + "timestamp": "2023-07-18T07:51:53.273000+00:00", + "edited_timestamp": null, + "flags": 0, + "components": [ + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::upsample::1::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "U1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::2::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "U2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::3::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "U3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::upsample::4::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "U4" + }, + { + "type": 2, + "custom_id": "MJ::JOB::reroll::0::13c684d3-c5c1-41c5-86d0-0317d5a7b002::SOLO", + "style": 2, + "emoji": { + "name": "🔄" + } + } + ] + }, + { + "type": 1, + "components": [ + { + "type": 2, + "custom_id": "MJ::JOB::variation::1::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "V1" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::2::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "V2" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::3::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "V3" + }, + { + "type": 2, + "custom_id": "MJ::JOB::variation::4::13c684d3-c5c1-41c5-86d0-0317d5a7b002", + "style": 2, + "label": "V4" + } + ] + } + ] + } +] \ No newline at end of file diff --git a/service/src/modules/mj/dto/mjDraw.dto.ts b/service/src/modules/mj/dto/mjDraw.dto.ts new file mode 100644 index 0000000..56fda93 --- /dev/null +++ b/service/src/modules/mj/dto/mjDraw.dto.ts @@ -0,0 +1,14 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class MjDrawDto { + @ApiProperty({ + example: + 'close-up polaroid photo, of a little joyful cute panda, in the forest, sun rays coming, photographic, sharp focus, depth of field, soft lighting, heigh quality, 24mm, Nikon Z FX', + description: '绘画提示词!', + required: true, + }) + @IsDefined({ message: '绘画提示词是必传参数!' }) + prompt: string; +} diff --git a/service/src/modules/mj/dto/mjEnlargeImg.dto.ts b/service/src/modules/mj/dto/mjEnlargeImg.dto.ts new file mode 100644 index 0000000..85685ba --- /dev/null +++ b/service/src/modules/mj/dto/mjEnlargeImg.dto.ts @@ -0,0 +1,13 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class MjEnlargeImgDto { + @ApiProperty({ example: '1105361939590287360', description: '当前大图的message_id、四张的这种才存在有效的!', required: true }) + @IsDefined({ message: '图片的message_id是必传的' }) + message_id: string; + + @ApiProperty({ example: 1, description: '图片的orderId是必传的 表示放大图片的第几张!', required: true }) + @IsDefined({ message: '图片固体顺序id是必传的!' }) + orderId: number; +} diff --git a/service/src/modules/mj/dto/mjTransform.dto.ts b/service/src/modules/mj/dto/mjTransform.dto.ts new file mode 100644 index 0000000..922548c --- /dev/null +++ b/service/src/modules/mj/dto/mjTransform.dto.ts @@ -0,0 +1,13 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class MjTransformImgDto { + @ApiProperty({ example: '1105361939590287360', description: '当前大图的message_id、四张的这种才存在有效的!', required: true }) + @IsDefined({ message: '图片的message_id是必传的' }) + message_id: string; + + @ApiProperty({ example: 1, description: '图片的orderId是必传的 表示放大图片的第几张!', required: true }) + @IsDefined({ message: '图片固体顺序id是必传的!' }) + orderId: number; +} diff --git a/service/src/modules/mj/mj.controller.ts b/service/src/modules/mj/mj.controller.ts new file mode 100644 index 0000000..85fb1a9 --- /dev/null +++ b/service/src/modules/mj/mj.controller.ts @@ -0,0 +1,39 @@ +import { Body, Controller, Get, Inject, Post, Req, UseGuards } from '@nestjs/common'; +import { MjService } from './mj.service'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { MjDrawDto } from './dto/mjDraw.dto'; +import { Request } from 'express'; +import { MjEnlargeImgDto } from './dto/mjEnlargeImg.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { MjTransformImgDto } from './dto/mjTransform.dto'; + +@ApiTags('mj') +@Controller('mj') +export class MjController { + constructor(private readonly mjService: MjService) {} + + @Post('draw') + @ApiOperation({ summary: '绘制mj图片' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + draw(@Body() body: MjDrawDto, @Req() req: Request) { + return this.mjService.draw(body, req); + } + + @Post('upscaleSingleImg') + @ApiOperation({ summary: '放大单张图片' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + upscaleSingleImg(@Body() body: MjEnlargeImgDto, @Req() req: Request) { + return this.mjService.upscaleSingleImg(body, req); + } + + @Post('variationSingleImg') + @ApiOperation({ summary: '变体单张图片' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + variationSingleImg(@Body() body: MjTransformImgDto, @Req() req: Request) { + return this.mjService.variationSingleImg(body, req); + } +} diff --git a/service/src/modules/mj/mj.module.ts b/service/src/modules/mj/mj.module.ts new file mode 100644 index 0000000..a60e926 --- /dev/null +++ b/service/src/modules/mj/mj.module.ts @@ -0,0 +1,15 @@ +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { Global, Module } from '@nestjs/common'; +import { MjService } from './mj.service'; +import { MjController } from './mj.controller'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { BalanceEntity } from '../userBalance/balance.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([ChatLogEntity, BalanceEntity])], + providers: [MjService], + controllers: [MjController], + exports: [MjService], +}) +export class MjModule {} diff --git a/service/src/modules/mj/mj.service.ts b/service/src/modules/mj/mj.service.ts new file mode 100644 index 0000000..8943207 --- /dev/null +++ b/service/src/modules/mj/mj.service.ts @@ -0,0 +1,627 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { UploadService } from '../upload/upload.service'; +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import axios from 'axios'; +import * as FormData from 'form-data'; +import { MjDrawDto } from './dto/mjDraw.dto'; +import { ChatLogService } from '../chatLog/chatLog.service'; +import { DeductionKey } from '@/common/constants/balance.constant'; +import { Request } from 'express'; +import { createRandomUid, getClientIp } from '@/common/utils'; +import { MjEnlargeImgDto } from './dto/mjEnlargeImg.dto'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { IsNull, Like, Not, Repository } from 'typeorm'; +import { InjectRepository } from '@nestjs/typeorm'; +import { BalanceEntity } from '../userBalance/balance.entity'; +import { MjTransformImgDto } from './dto/mjTransform.dto'; +import { FanyiService } from '../fanyi/fanyi.service'; +import { BadwordsService } from '../badwords/badwords.service'; + +@Injectable() +export class MjService { + constructor( + @InjectRepository(ChatLogEntity) + private readonly chatLogEntity: Repository, + @InjectRepository(BalanceEntity) + private readonly balanceEntity: Repository, + private readonly uploadService: UploadService, + private readonly chatLogService: ChatLogService, + private readonly globalConfigService: GlobalConfigService, + private readonly fanyiService: FanyiService, + private readonly badwordsService: BadwordsService, + ) {} + + private rateLimits = {}; + private drawWorking = []; + private enlargeWorking = []; + private queueCount = 0; + + private freeQueueUsers = {}; //对于每个用户有五次免费机会 + + /* 绘图方法、由queque调用 */ + async mjDraw(data) { + const { jobId, prompt, startTime, userId } = data; + console.log('绘画任务开始', 'mjservice'); + await new Promise((resolve) => setTimeout(resolve, 5000)); + return { a: 1, b: 2 }; + } + + /* 绘图指令 */ + async draw(body: MjDrawDto, req: Request) { + /* 检测有无绘图权限 */ + await this.checkAuth(req); + + /* 敏感词检测 */ + await this.badwordsService.checkBadWords(body.prompt, req.user.id); + + /* --指令会被MJ官方给移除造成比对失败、非有效--指令将被直接移除 */ + // body.prompt = body.prompt.replace(/--(?!ar|niji|style)/g, ''); + + const basicPrompt = body.prompt; + let fyPrompt = body.prompt; + /* 配置了百度翻译信息则翻译 否则将不转换 */ + const { baiduFanyiAppId, baiduFanyiSecret } = await this.globalConfigService.getConfigs(['baiduFanyiAppId', 'baiduFanyiSecret']); + if (baiduFanyiAppId && baiduFanyiSecret) { + fyPrompt = await this.fanyiService.convertToEnglish(basicPrompt); + } + + /* 添加随机ID */ + const randomId = `[${createRandomUid()}]`; + const prompt = `${randomId} ${fyPrompt}`; + console.log('randomId: ', randomId); + console.log('prompt --------> ', prompt); + + const isWorking = this.drawWorking.find((item) => item.includes(body.prompt)); + if (isWorking) { + throw new HttpException('当前提示词已经在任务队列中了、请勿重复提交。。。', HttpStatus.BAD_REQUEST); + } + + if (this.queueCount >= 3) { + throw new HttpException('当前绘图任务满载、请排队等候、队列任务完成后即可开始您的任务...', HttpStatus.BAD_REQUEST); + } + + await this.checkRateLimit(req); + + this.queueCount++; + console.log(`开始请求用户${req.user.id} 队列+1: `, this.queueCount); + + try { + /* 查询历史是否已经使用过prompt,如果绘制过这个prompt 拿到绘制过的id 比对的时候排除掉 防止相同prompt拿到相同结果 */ + const historyDraw = await this.chatLogEntity.find({ where: { prompt: Like(`%${prompt}%`) } }); + const histroyMessageIds = historyDraw.map((item) => item.message_id); + + this.drawWorking.push(prompt); + let drawDetail; + /* 发送绘画指令 sendRes 如果有结果表示历史有存在的 本次不发新的绘图指令了 false表示正常发送了指令 */ + const sendRes = await this.sendDrawInteractions(prompt, histroyMessageIds, randomId); + if (sendRes) { + console.log(`历史中存在当前图片、直接获取!`); + drawDetail = sendRes; + } else { + drawDetail = await this.pollForResult(prompt, histroyMessageIds, randomId); + } + this.queueCount--; + this.queueCount < 0 && (this.queueCount = 0); + console.log('绘制图片任务结束 队列-1: ', this.queueCount); + const { id, content, channel_id, attachments = [], timestamp } = drawDetail; + /* 拿到结果 存入腾讯云换新的url */ + if (!attachments.length || !attachments[0].url) { + throw new HttpException('绘画失败', HttpStatus.BAD_REQUEST); + } + const { filename, url, width, height, size } = attachments[0]; + console.log('拿到了远程地址: ', url); + + const mjNotSaveImg = this.globalConfigService.getConfigs(['mjNotSaveImg']) + let cosUrl = '' + if(!Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0 ){ + /* 将图片存入cos */ + cosUrl = await this.uploadService.uploadFileFromUrl({ filename, url }); + console.log('存入图片完成: ', cosUrl); + } + + /* 记录图片信息 */ + const logInfo = { + curIp: getClientIp(req), + userId: req.user.id, + type: DeductionKey.PAINT_TYPE, + prompt, + answer: cosUrl, + model: 'mj', + extend: this.removeEmoji(JSON.stringify(drawDetail)), + message_id: id, + variationId: id, + upscaleId: id, // 后续放大图片的时候需要排除掉这个id避免比对拿到老的 + group: 1, + isSaveImg: !Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0, + fileInfo: JSON.stringify({ width, height, size, filename, cosUrl }), + }; + await this.chatLogService.saveChatLog(logInfo); + await this.deductBalance(req); + this.drawWorking = this.drawWorking.filter((item) => item !== body.prompt); + return cosUrl; + } catch (error) { + this.queueCount--; + this.queueCount < 0 && (this.queueCount = 0); + + console.log('绘制图片任务异常中断 队列-1: ', this.queueCount); + this.drawWorking = this.drawWorking.filter((item) => item !== body.prompt); + throw new HttpException(error.response, HttpStatus.BAD_REQUEST); + } + } + + /* 对单张图放大 U upscale: 放大像素提升细节 */ + async upscaleSingleImg(body: MjEnlargeImgDto, req: Request) { + if (this.queueCount >= 3) { + throw new HttpException('当前绘图任务满载、请排队等候、队列任务完成后即可开始您的任务...', HttpStatus.BAD_REQUEST); + } + this.queueCount++; + console.log(`用户${req.user.id}开始请求放大图片 队列+1: `, this.queueCount); + const { message_id, orderId } = body; + try { + const historyLog = await this.chatLogEntity.findOne({ where: { message_id } }); + if (!historyLog) { + throw new HttpException('历史记录中不存在当前图片、请确认您放大的图片是否存在', HttpStatus.BAD_REQUEST); + } + // upscaleId 后续以这个为准 + const isAreadlyEnlarge = await this.chatLogEntity.findOne({ where: { upscaleId: message_id, action: 'enlarge', orderId } }); + if (isAreadlyEnlarge) { + throw new HttpException('当前图片已经放大过了、请勿重复放大!', HttpStatus.BAD_REQUEST); + } + const { prompt, extend } = historyLog; + let historyDetailDrawInfo:any = null + try { + historyDetailDrawInfo = JSON.parse(extend); + } catch (error) { + historyDetailDrawInfo = [] + } + const { components = [] } = historyDetailDrawInfo; + if (!components.length) { + throw new HttpException('当前图片没有绘画信息、无法放大!', HttpStatus.BAD_REQUEST); + } + /* components数组 第一项 有五个数据 分别对应1-4的图片所需参数和重新绘制参数 第二项则是对应变换的四张图 */ + const currentImgComponent = components[0]['components'][orderId - 1]; + const { custom_id } = currentImgComponent; + console.log('放大custom_id: ', custom_id); + /* 拿到所需参数 */ + const params = { message_id, custom_id, prompt, orderId }; + await this.sendSmInteractions(params); + console.log('发送放大指令成功'); + /* 查询历史是否已经使用过prompt,如果绘制过这个prompt 拿到绘制过的id 比对的时候排除掉 防止相同prompt拿到相同结果 */ + const historyDraw = await this.chatLogEntity.find({ where: { prompt: Like(`%${prompt}%`) } }); + const histroyMessageIds = historyDraw.map((item) => item.message_id); + console.log('历史这些id已经被获取过了 不能拿了: ', histroyMessageIds); + const enlargeImgInfo = await this.pollForUpscaleResult(params, histroyMessageIds); + this.queueCount--; + this.queueCount < 0 && (this.queueCount = 0); + + console.log('放大图片任务结束 队列-1: ', this.queueCount); + const { id, content, channel_id, attachments = [], timestamp } = enlargeImgInfo; + /* 拿到结果 存入腾讯云换新的url */ + if (!attachments.length || !attachments[0].url) { + throw new HttpException('放大当前图片失败', HttpStatus.BAD_REQUEST); + } + const { filename, url, width, height, size } = attachments[0]; + const mjNotSaveImg = this.globalConfigService.getConfigs(['mjNotSaveImg']) + let cosUrl = '' + if(!Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0 ){ + /* 将图片存入cos */ + cosUrl = await this.uploadService.uploadFileFromUrl({ filename, url }); + console.log('存入图片完成: ', cosUrl); + } + /* 记录图片信息 */ + const logInfo = { + curIp: getClientIp(req), + userId: req.user.id, + type: DeductionKey.PAINT_TYPE, + prompt, + answer: cosUrl, + model: 'mj', + extend: this.removeEmoji(JSON.stringify(enlargeImgInfo)), + message_id, + upscaleId: id, + variationId: id, + action: 'enlarge', + orderId: params.orderId, + isSaveImg: !Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0, + fileInfo: JSON.stringify({ width, height, size, filename, cosUrl }), + }; + await this.chatLogService.saveChatLog(logInfo); + return cosUrl; + } catch (error) { + console.log('error: ', error); + this.queueCount--; + this.queueCount < 0 && (this.queueCount = 0); + + console.log('放大图片任务异常中断 队列-1: ', this.queueCount); + throw new HttpException(error.response, HttpStatus.BAD_REQUEST); + } + } + + /* 对单张图片变换 v: variation: 在基础上进行延伸变化 */ + async variationSingleImg(body: MjTransformImgDto, req: Request) { + if (this.queueCount >= 3) { + throw new HttpException('当前绘图任务满载、请排队等候、队列任务完成后即可开始您的任务...', HttpStatus.BAD_REQUEST); + } + await this.checkAuth(req); + await this.checkRateLimit(req); + this.queueCount++; + console.log(`用户${req.user.id}开始请求变换图片 队列+1: `, this.queueCount); + const { message_id, orderId } = body; + try { + const historyLog = await this.chatLogEntity.findOne({ where: { message_id } }); + if (!historyLog) { + throw new HttpException('历史记录中不存在当前图片、请确认您需要变换的图片是否存在', HttpStatus.BAD_REQUEST); + } + const { prompt, extend } = historyLog; + let historyDetailDrawInfo:any = null + try { + historyDetailDrawInfo = JSON.parse(extend); + } catch (error) { + historyDetailDrawInfo = [] + } + const { components = [] } = historyDetailDrawInfo; + if (!components.length) { + throw new HttpException('当前图片没有绘画信息、无法变体!', HttpStatus.BAD_REQUEST); + } + /* components数组 第一项 有五个数据 分别对应1-4的图片所需参数和重新绘制参数 第二项则是对应变换的四张图 */ + const currentImgComponent = components[1]['components'][orderId - 1]; + const { custom_id } = currentImgComponent; + /* 比对结果前拿到老的变换过图片的id 因为他们prompt是一样的 需要排除已经获取过的id */ + const historyVariationLog = await this.chatLogEntity.find({ where: { variationId: Not(IsNull()), prompt: Like(`%${prompt}%`) } }); + const historyVariationIds = historyVariationLog.map((item) => item.variationId); + /* 拿到所需参数 */ + const params = { message_id, custom_id, prompt, orderId }; + await this.sendSmInteractions(params); + const variationImgInfo = await this.pollForVariationResult(params, historyVariationIds); + this.queueCount--; + this.queueCount < 0 && (this.queueCount = 0); + + console.log('变换图片任务结束 队列-1: ', this.queueCount); + const { id, content, channel_id, attachments = [], timestamp } = variationImgInfo; + /* 拿到结果 存入腾讯云换新的url */ + if (!attachments.length || !attachments[0].url) { + throw new HttpException('变换当前图片失败', HttpStatus.BAD_REQUEST); + } + const { filename, url, width, height, size } = attachments[0]; + /* 将图片存入cos */ + const mjNotSaveImg = this.globalConfigService.getConfigs(['mjNotSaveImg']) + let cosUrl = '' + if(!Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0 ){ + cosUrl = await this.uploadService.uploadFileFromUrl({ filename, url }); + console.log('存入图片完成: ', cosUrl); + } + /* 记录图片信息 */ + const logInfo = { + curIp: getClientIp(req), + userId: req.user.id, + type: DeductionKey.PAINT_TYPE, + prompt, + answer: cosUrl, + model: 'mj', + group: 1, + extend: this.removeEmoji(JSON.stringify(variationImgInfo)), + message_id: id, // 存自己的id才能在对变体图片放大的时候找到自己 + upscaleId: id, + variationId: id, // 变换图片的id 后续在比对中排除就可以拿到最新的变化信息了 + action: 'enlarge', + orderId: params.orderId, + isSaveImg: !Number(mjNotSaveImg) || Number(mjNotSaveImg) === 0, + fileInfo: JSON.stringify({ width, height, size, filename, cosUrl }), + }; + await this.chatLogService.saveChatLog(logInfo); + return cosUrl; + } catch (error) { + console.log('error: ', error); + this.queueCount--; + this.queueCount < 0 && (this.queueCount = 0); + + console.log('变化图片任务异常中断 队列-1: ', this.queueCount); + throw new HttpException(error.response, HttpStatus.BAD_REQUEST); + } + } + + /* 发送[放大|变化]小指令 */ + async sendSmInteractions(params) { + const { message_id, custom_id } = params; + const { application_id, guild_id, channel_id, session_id, version, id, authorization, mjProxy } = await this.getMjDefaultParams(); + const url = mjProxy == 1 ? `http://172.247.48.137:8000/mj/draw` : 'https://discord.com/api/v9/interactions'; + // const url = 'https://discord.com/api/v9/interactions'; + const headers = { authorization }; + const body = { + type: 3, + guild_id, + channel_id, + message_flags: 0, + message_id, + application_id, + session_id, + data: { + component_type: 2, + custom_id, + }, + }; + try { + await axios.post(url, body, { headers }); + console.log('绘图指令完成'); + } catch (error) { + console.log('error: ', error); + throw new HttpException('放大单张图片请求失败...', HttpStatus.BAD_REQUEST); + } + } + + /* 轮询查看放大的图片结果 */ + async pollForUpscaleResult(params, histroyMessageIds) { + const { message_id, custom_id, prompt, orderId } = params; + let enlargeImgDetail = null; + let pollingCount = 0; + + while (!enlargeImgDetail && pollingCount < 10) { + try { + const startTime = Date.now(); + const messageList = await this.queryMessageList(); + console.log(`第 ${pollingCount + 1} 次开始查询 => 当前查询结果:${messageList.length}`); + if (messageList && messageList.length) { + enlargeImgDetail = await this.findCurrentEnlargeImgResult(messageList, params, histroyMessageIds); + } + const elapsedTime = Date.now() - startTime; + const nextPollingDelay = 3000; + await this.sleep(Math.max(nextPollingDelay - elapsedTime, 0)); + pollingCount++; + } catch (error) { + console.error(`查询期间出现错误:${error.message}`); + } + } + return enlargeImgDetail; + } + + /* 轮询查看变换图片结果 */ + async pollForVariationResult(params, historyVariationIds) { + const { message_id, custom_id, prompt, orderId } = params; + console.log('开始轮询单张变换图片结果'); + let variationImgDetail = null; + let pollingCount = 0; + while (!variationImgDetail && pollingCount < 10) { + try { + console.log(`第 ${pollingCount + 1} 次开始查询[变换图片]`); + const startTime = Date.now(); + const messageList = await this.queryMessageList(); + if (messageList && messageList.length) { + variationImgDetail = await this.findCurrentVariationImgResult(messageList, params, historyVariationIds); + } + const elapsedTime = Date.now() - startTime; + const nextPollingDelay = 8000; + await this.sleep(Math.max(nextPollingDelay - elapsedTime, 0)); + pollingCount++; + } catch (error) { + console.error(`查询期间出现错误:${error.message}`); + } + } + + if (!variationImgDetail) { + throw new HttpException('变换当前图片超时!', HttpStatus.BAD_REQUEST); + } + return variationImgDetail; + } + + /* 比对找到放大图片的地址作为返回结果 */ + async findCurrentEnlargeImgResult(messageList, params, histroyMessageIds) { + const { message_id, custom_id, prompt, orderId } = params; + const randomId = prompt.substring(0, 12); + console.log('本次放大图片的id: ', randomId); + const enlargeImgDetail = messageList.find((item) => { + const { content } = item; + if (!this.extractContent(content)) return false; + const { prompt, order } = this.extractContent(content); + return prompt.includes(randomId) && params.orderId === order && !histroyMessageIds.includes(item.id); + }); + return enlargeImgDetail; + } + + /* 比对找到变换的图片地址作为返回结果 */ + async findCurrentVariationImgResult(messageList, params, historyVariationIds) { + const { message_id, custom_id, prompt, orderId } = params; + const randomId = prompt.substring(0, 12); + const variationImgDetail = messageList.find((item) => { + const { content } = item; + const promptMatch = content.match(/\*\*(.+?)\*\*/); + const prompt = promptMatch ? promptMatch[1] : ''; + if (!prompt) return false; + return prompt.includes(randomId) && !historyVariationIds.includes(item.id); + }); + return variationImgDetail; + } + + /* 发送绘画指令 */ + async sendDrawInteractions(prompt, histroyMessageIds, randomId) { + /* 发送指令前判断一次 历史绘图记录是不是已经存在了 可能会因为错误导致指令发送 图片绘制了 但是之前没有拿到结果 */ + const messageList = await this.queryMessageList(); // 获取最新的已有内容 + const drawDetail = await this.findCurrentPromptResult(messageList, randomId, histroyMessageIds); + if (drawDetail) { + console.log('有历史信息之间返回: ', drawDetail); + return drawDetail; + } + const { application_id, guild_id, channel_id, session_id, version, id, authorization, mjProxy } = await this.getMjDefaultParams(); + const payloadJson = { + type: 2, + application_id, + guild_id, + channel_id, + session_id, + data: { version, id, name: 'imagine', type: 1, options: [{ type: 3, name: 'prompt', value: prompt }], attachments: [] }, + }; + try { + // const url = 'https://discord.com/api/v9/interactions'; + /* 发送绘制指令 */ + const url = mjProxy == 1 ? `http://172.247.48.137:8000/mj/draw` : 'https://discord.com/api/v9/interactions'; + const headers = { authorization }; + const res = await axios.post(url, payloadJson, { headers }); + console.log('发送绘画指令结果: ', res.data); + return false; + } catch (error) { + console.log('axios: ', error); + throw new HttpException('绘画请求失败、当前使用人数过多、请稍后试试吧、排队中...', HttpStatus.BAD_REQUEST); + } + } + + /* 传入prompt定时轮询返回结果 */ + async pollForResult(prompt, histroyMessageIds, randomId) { + console.log('开始查询绘画结果轮询'); + const startTime = Date.now(); + try { + /* 最多轮询13次 前六十秒12秒一次共五次 后面五秒一次 最多100s 超过就是超时 */ + const MAX_POLLING_COUNT = 13; + const SHORT_INTERVAL = 12000; // 短轮询间隔,单位:毫秒 + const LONG_INTERVAL = 5000; // 长轮询间隔,单位:毫秒 + const TIME_THRESHOLD = 60 * 1000; // 时间阈值,单位:毫秒 + let pollingCount = 0; + let isLongInterval = false; + let drawDetail = null; + while (!drawDetail && pollingCount < MAX_POLLING_COUNT) { + console.log(`第 ${pollingCount + 1} 次开始查询`); + if (Date.now() - startTime >= TIME_THRESHOLD) { + isLongInterval = true; + } + await this.sleep(isLongInterval ? LONG_INTERVAL : SHORT_INTERVAL); // 等待指定的时间后继续轮询 + const messageList = await this.queryMessageList(); // 获取最新的已有内容 + drawDetail = await this.findCurrentPromptResult(messageList, randomId, histroyMessageIds); + pollingCount++; + } + if (!drawDetail) { + throw new HttpException('绘画超时,请稍后再试!', HttpStatus.BAD_REQUEST); + } + const endTime = Date.now(); + console.log(`本次绘图耗时: ${Math.floor((endTime - startTime) / 1000)} S`); + return drawDetail; + } catch (err) { + console.error(err.message); + throw new HttpException('网络连接失败,请稍后再试!', HttpStatus.INTERNAL_SERVER_ERROR); + } + } + + /* 比对当前列表中是否存在我们正在绘制的图片prompt是否已经绘制完成 histroyMessageIds是历史相同prompt生成的 有的话排除这些 */ + async findCurrentPromptResult(data, randomId, histroyMessageIds) { + if (!data || !data.length) return; + console.log('本次比对的随机ID: ', randomId); + const matchingItem = data.find((item) => { + const { attachments = [], content, edited_timestamp } = item; + return content.includes(randomId) && attachments.length > 0 && !edited_timestamp && !histroyMessageIds.includes(item.id); + }); + return matchingItem || null; + } + + /* 查询绘画的所有列表 */ + async queryMessageList() { + try { + const { application_id, guild_id, channel_id, session_id, version, id, authorization, mjProxy } = await this.getMjDefaultParams(); + const url = + mjProxy == 1 + ? `http://172.247.48.137:8000/mj/list?channel_id=${channel_id}` + : `https://discord.com/api/v9/channels/${channel_id}/messages?limit=50`; + const headers = { authorization }; + const response = await axios.get(url, { headers }); + return response.data; + } catch (error) { + console.log('axios get: ', error); + throw new HttpException('查询绘制结果失败...', HttpStatus.BAD_REQUEST); + } + } + + async sleep(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); + } + + /* 匹配放大的单张图片的操作 */ + extractContent(str: string): { prompt: string; order: number } | null { + const promptMatch = str.match(/\*\*(.+?)\*\*/); + const orderMatch = str.match(/- Image #(\d+)/); + if (!promptMatch || !orderMatch) { + return null; + } + const prompt = promptMatch[1]; + const order = parseInt(orderMatch[1]); + return { prompt, order }; + } + + async getMjDefaultParams() { + const configs = await this.globalConfigService.getConfigs([ + 'mjId', + 'mjApplicationId', + 'mjGuildId', + 'mjChannelId', + 'mjSessionId', + 'mjVersion', + 'mjAuthorization', + 'mjRateLimit', + 'mjProxy', + ]); + const params = { + application_id: configs.mjApplicationId, + guild_id: configs.mjGuildId, + channel_id: configs.mjChannelId, + session_id: configs.mjSessionId, + version: configs.mjVersion, + id: configs.mjId, + authorization: configs.mjAuthorization, + mjRateLimit: configs.mjRateLimit, + mjProxy: configs.mjProxy || 0, + }; + return params; + } + + /* 去除字符串表情 */ + removeEmoji(str) { + const regex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + return str.replace(regex, ''); + } + + async checkAuth(req) { + const m = await this.balanceEntity.findOne({ where: { userId: req.user.id } }); + const { id, balance } = m; + if (!balance || m?.balance < 1) { + throw new HttpException('您当前暂无MJ绘画余额!!!', HttpStatus.BAD_REQUEST); + } + } + + async checkFree(req) { + const { id, role } = req.user; + if (!this.freeQueueUsers[id]) { + this.freeQueueUsers[id] = 1; + } else { + this.freeQueueUsers[id] = this.freeQueueUsers[id] + 1; + } + console.log(`当前用户${id}使用的次数:`, this.freeQueueUsers[id]); + } + + async checkRateLimit(req: Request) { + const { id, role } = req.user; + if (['admin', 'super'].includes(role)) return true; + const { mjRateLimit } = await this.getMjDefaultParams(); + if (this.rateLimits[id]) { + const val = this.rateLimits[id]; + if (val > Date.now()) { + console.log(`当前用户 ${id} 请求过于频繁!`); + throw new HttpException(`由于速率限制、当前普通用户限制为${mjRateLimit}秒请求一次、请合理使用!`, HttpStatus.BAD_REQUEST); + } else { + this.rateLimits[id] = Date.now() + Number(mjRateLimit) * 1000; + } + } else { + const timeSpace = Date.now(); + this.rateLimits[id] = timeSpace + 1000 * Number(mjRateLimit); + } + } + + // 扣除一次余额 + async deductBalance(req: Request) { + await this.balanceEntity + .createQueryBuilder() + .update(BalanceEntity) + .set({ balance: () => 'balance - 1' }) + .where('userId = :userId', { userId: req.user.id }) + .execute(); + } + + /* test */ + async test() { + return 1; + } +} diff --git a/service/src/modules/models/dto/queryModel.dto.ts b/service/src/modules/models/dto/queryModel.dto.ts new file mode 100644 index 0000000..6d65a8e --- /dev/null +++ b/service/src/modules/models/dto/queryModel.dto.ts @@ -0,0 +1,23 @@ +import { AddBadWordDto } from '../../badwords/dto/addBadWords.dto'; +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryModelDto { + @ApiProperty({ example: 1, description: '页码', required: true }) + page: number; + + @ApiProperty({ example: 10, description: '数量', required: true }) + size: number; + + @ApiProperty({ example: 1, description: '模型类型', required: true }) + keyType: number; + + @ApiProperty({ example: 'dsadgadaorjoqm', description: '模型key', required: true }) + key: string; + + @ApiProperty({ example: true, description: '是否开启当前key对应的模型', required: true }) + status: boolean; + + @ApiProperty({ example: 'gpt-3.5', description: '当前key绑定的模型是多少 需要调用的模型', required: true }) + model: string; +} diff --git a/service/src/modules/models/dto/queryModelType.dto.ts b/service/src/modules/models/dto/queryModelType.dto.ts new file mode 100644 index 0000000..a28e73c --- /dev/null +++ b/service/src/modules/models/dto/queryModelType.dto.ts @@ -0,0 +1,15 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class QueryModelTypeDto { + @ApiProperty({ example: 1, description: '页码', required: true }) + page: number; + + @ApiProperty({ example: 10, description: '数量', required: true }) + size: number; + + @ApiProperty({ example: 1, description: '模型类型', required: true }) + keyType: number; + + @ApiProperty({ example: true, description: '是否开启当前key对应的模型', required: true }) + status: boolean; +} diff --git a/service/src/modules/models/dto/setModel.dto.ts b/service/src/modules/models/dto/setModel.dto.ts new file mode 100644 index 0000000..c251196 --- /dev/null +++ b/service/src/modules/models/dto/setModel.dto.ts @@ -0,0 +1,65 @@ +import { AddBadWordDto } from './../../badwords/dto/addBadWords.dto'; +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class SetModelDto { + @ApiProperty({ example: 1, description: 'key id', required: false }) + id: number; + + @ApiProperty({ example: 1, description: '模型类型', required: true }) + keyType: number; + + @ApiProperty({ example: '文心一言普通模型', description: '模型中文名称', required: true }) + modelName: string; + + @ApiProperty({ example: 'dsadgadaorjoqm', description: '模型key', required: true }) + key: any; + + @ApiProperty({ example: 'dasdasdk2n31323k', description: '模型秘钥', required: false }) + secret: string; + + @ApiProperty({ example: true, description: '是否开启当前key对应的模型', required: true }) + status: boolean; + + @ApiProperty({ example: 'gpt-3.5', description: '当前key绑定的模型是多少 需要调用的模型', required: true }) + model: string; + + @ApiProperty({ example: 1, description: 'key的权重' }) + keyWeight: number; + + @ApiProperty({ example: 1, description: '模型排序' }) + modelOrder: number; + + @ApiProperty({ example: 4096, description: '模型支持的最大TOken数量', required: true }) + maxModelTokens: number; + + @ApiProperty({ example: 1000, description: '模型支持的最大回复TOken数量', required: true }) + maxResponseTokens: number; + + @ApiProperty({ example: true, description: '模型的代理地址', required: false }) + proxyUrl: string; + + @ApiProperty({ example: true, description: '模型超时时间', required: false }) + timeout: number; + + @ApiProperty({ example: true, description: 'key状态', required: false }) + keyStatus: number; + + @ApiProperty({ example: true, description: '扣费类型 1: 普通 2: 高级余额', required: false }) + deductType: number; + + @ApiProperty({ example: true, description: '单次扣除金额', required: false }) + deduct: number; + + @ApiProperty({ example: true, description: '最大上下文轮次', required: false }) + maxRounds: number; + + @ApiProperty({ example: true, description: '是否设置为绘画Key', required: false }) + isDraw: boolean; + + @ApiProperty({ example: true, description: '是否使用token计费', required: false }) + isTokenBased: boolean; + + @ApiProperty({ example: true, description: 'token计费比例', required: false }) + tokenFeeRatio: number; +} diff --git a/service/src/modules/models/dto/setModelType.dto.ts b/service/src/modules/models/dto/setModelType.dto.ts new file mode 100644 index 0000000..0cfaca5 --- /dev/null +++ b/service/src/modules/models/dto/setModelType.dto.ts @@ -0,0 +1,45 @@ +import { ApiProperty } from '@nestjs/swagger'; + +export class SetModelTypeDto { + @ApiProperty({ example: 1, description: 'model id', required: false }) + id: number; + + @ApiProperty({ example: 1, description: '模型类型', required: true }) + keyType: number; + + @ApiProperty({ example: '文心一言普通模型', description: '模型中文名称', required: true }) + modelName: string; + + @ApiProperty({ example: true, description: '是否开启当前key对应的模型', required: true }) + status: boolean; + + @ApiProperty({ example: 'gpt-3.5', description: '当前key绑定的模型是多少 需要调用的模型', required: true }) + model: string; + + @ApiProperty({ example: 1, description: '温度' }) + temperature: number; + + @ApiProperty({ example: true, description: '扣费类型 1: 普通 2: 高级余额', required: false }) + deductType: number; + + @ApiProperty({ example: true, description: '单次扣除金额', required: false }) + deduct: number; + + @ApiProperty({ example: true, description: '排序id 越大越靠前', default : 100 }) + order: number; + + @ApiProperty({ example: 4000, description: '模型允许用户使用的最大token设置过高意味着单次的上下文会很高控制模型上下文控制使用token数量', required: true }) + maxTokens: number; + + @ApiProperty({ example: 1000, description: '模型支持的最大回复TOken数量', required: true }) + maxResponseTokens: number; + + @ApiProperty({ example: true, description: '最大上下文轮次', required: false }) + maxRounds: number; + + @ApiProperty({ example: true, description: '是否设置为Dall-E3绘画Key', required: false }) + isDallE3: boolean; + + @ApiProperty({ example: true, description: '是否设置为工具key', required: false }) + isUseTool: boolean; +} diff --git a/service/src/modules/models/modelType.entity.ts b/service/src/modules/models/modelType.entity.ts new file mode 100644 index 0000000..747bcf8 --- /dev/null +++ b/service/src/modules/models/modelType.entity.ts @@ -0,0 +1,48 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'models_type' }) +export class ModelsTypeEntity extends BaseEntity { + @Column({ comment: 'key模型类型 1: openai 2: 文心一言 3:清华智谱' }) + keyType: number; + + @Column({ comment: '模型名称[给用户看的]' }) + modelName: string; + + @Column({ comment: '是否开放模型: 0:禁用 1:启用', default: 1 }) + status: boolean; + + @Column({ comment: '绑定使用的模型是?最终调用的' }) + model: string; + + @Column({ comment: '模型温度0-2直接', default: 0.6 }) + temperature: number; + + @Column({ comment: '模型的使用次数', default: 0 }) + useCount: number; + + @Column({ comment: '模型总计使用的token数量', default: 0 }) + useToken: number; + + @Column({ comment: '单次调用扣除的次数', default: 1 }) + deduct: number; + + @Column({ comment: '扣除余额类型 1: 普通模型 2:高级模型', default: 1 }) + deductType: number; + + @Column({ comment: '模型设置允许用户使用的最大回复Token', default: 2048 }) + maxResponseTokens: number; + + @Column({ comment: '限制用户上下文可选最大轮次数', nullable: true }) + maxRounds: number; + + @Column({ comment: '是否为绘画模型Dall-E3', default: 0 }) + isDallE3: boolean; + + @Column({ comment: '是否为特殊模型、可以提供联想翻译、思维导图等特殊操作', default: 0 }) + isUseTool: boolean; + + @Column({ comment: '模型排序', default: 1 }) + modelOrder: number; +} diff --git a/service/src/modules/models/models.controller.ts b/service/src/modules/models/models.controller.ts new file mode 100644 index 0000000..0bba500 --- /dev/null +++ b/service/src/modules/models/models.controller.ts @@ -0,0 +1,74 @@ +import { ApiBearerAuth, ApiOperation } from '@nestjs/swagger'; +import { ModelsService } from './models.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { SetModelDto } from './dto/setModel.dto'; +import { QueryModelDto } from './dto/queryModel.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { SetModelTypeDto } from './dto/setModelType.dto'; +import { QueryModelTypeDto } from './dto/queryModelType.dto'; + +@Controller('models') +export class ModelsController { + constructor( + private readonly modelsService: ModelsService + ){} + + @Post('setModel') + @ApiOperation({ summary: '设置模型' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + setModel(@Body() params: SetModelDto){ + return this.modelsService.setModel(params) + } + + @Post('delModel') + @ApiOperation({ summary: '删除模型' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delModel(@Body() params: { id: number }){ + return this.modelsService.delModel(params) + } + + @Get('query') + @ApiOperation({ summary: '管理端查询模型列表' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + queryModels(@Req() req: Request, @Query() params: QueryModelDto){ + return this.modelsService.queryModels(req, params) + } + + @Get('list') + @ApiOperation({ summary: '客户端查询当前所有可以使用的模型' }) + modelsList(){ + return this.modelsService.modelsList() + } + + @Get('baseConfig') + @ApiOperation({ summary: '客户端查询当前已经配置模型的基础配置' }) + baseConfig(){ + return this.modelsService.getBaseConfig() + } + + @Get('queryModelType') + @ApiOperation({ summary: '查询模型类型' }) + queryModelType(@Query() params: QueryModelTypeDto){ + return this.modelsService.queryModelType(params) + } + + @Post('setModelType') + @ApiOperation({ summary: '创建修改模型类型' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + setModelType(@Body() params: SetModelTypeDto){ + return this.modelsService.setModelType(params) + } + + @Post('delModelType') + @ApiOperation({ summary: '删除模型类型' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + delModelType(@Body() params: { id: number }){ + return this.modelsService.delModelType(params) + } +} diff --git a/service/src/modules/models/models.entity.ts b/service/src/modules/models/models.entity.ts new file mode 100644 index 0000000..6fb2b12 --- /dev/null +++ b/service/src/modules/models/models.entity.ts @@ -0,0 +1,76 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'models' }) +export class ModelsEntity extends BaseEntity { + @Column({ comment: 'key模型类型 1: openai 2: 文心一言 3:清华智谱' }) + keyType: number; + + @Column({ comment: '模型名称' }) + modelName: string; + + @Column({ comment: '模型的key' }) + key: string; + + @Column({ comment: '模型的secret', default: null }) + secret: string; + + @Column({ comment: '部分模型的调用token', default: null }) + accessToken: string; + + @Column({ comment: '使用的状态: 0:禁用 1:启用', default: 1 }) + status: boolean; + + @Column({ comment: '绑定的模型是?' }) + model: string; + + @Column({ comment: 'key的状态: 1:有效 -1:被封号 -2: 错误的秘钥 -3: 余额使用完了', default: 1 }) + keyStatus: number; + + @Column({ comment: 'key权重', default: 1 }) + keyWeight: number; + + @Column({ comment: 'key的使用次数', default: 0 }) + useCount: number; + + @Column({ comment: 'key的已经使用的token数量', default: 0 }) + useToken: number; + + @Column({ comment: '模型支持的最大Token', default: 1000 }) + maxModelTokens: number; + + @Column({ comment: '模型设置的最大回复Token', default: 4096 }) + maxResponseTokens: number; + + @Column({ comment: '当前模型的代理地址', nullable: true }) + proxyUrl: string; + + @Column({ comment: '当前模型的超时时间单位s', default: 200 }) + timeout: number; + + @Column({ comment: '单次调用扣除的次数', default: 1 }) + deduct: number; + + @Column({ comment: '扣除余额类型 1: 普通模型 2:高级模型', default: 1 }) + deductType: number; + + @Column({ comment: '备注信息', nullable: true }) + remark: string; + + @Column({ comment: '限制用户上下文最大次数', nullable: true }) + maxRounds: number; + + @Column({ comment: '是否是绘画key: 0:不是 1:是', default: 0 }) + isDraw: boolean; + + @Column({ comment: '是否使用token计费: 0:不是 1:是', default: 0 }) + isTokenBased: boolean; + + @Column({ comment: 'token计费比例', default: 0 }) + tokenFeeRatio: number; + + @Column({ comment: 'key权重', default: 1 }) + modelOrder: number; + +} diff --git a/service/src/modules/models/models.module.ts b/service/src/modules/models/models.module.ts new file mode 100644 index 0000000..a7d5a42 --- /dev/null +++ b/service/src/modules/models/models.module.ts @@ -0,0 +1,15 @@ +import { Global, Module } from '@nestjs/common'; +import { ModelsController } from './models.controller'; +import { ModelsService } from './models.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { ModelsEntity } from './models.entity'; +import { ModelsTypeEntity } from './modelType.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([ModelsEntity, ModelsTypeEntity])], + controllers: [ModelsController], + providers: [ModelsService], + exports: [ModelsService] +}) +export class ModelsModule {} diff --git a/service/src/modules/models/models.service.ts b/service/src/modules/models/models.service.ts new file mode 100644 index 0000000..b6ed4ea --- /dev/null +++ b/service/src/modules/models/models.service.ts @@ -0,0 +1,239 @@ +import { HttpException, HttpStatus, Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Like, Repository } from 'typeorm'; +import { ModelsEntity } from './models.entity'; +import { SetModelDto } from './dto/setModel.dto'; +import { QueryModelDto } from './dto/queryModel.dto'; +import { ModelsMapCn } from '@/common/constants/status.constant'; +// import { getAccessToken } from '../chatgpt/baidu'; +import { getRandomItemFromArray, hideString } from '@/common/utils'; +import { ModelsTypeEntity } from './modelType.entity'; +import { SetModelTypeDto } from './dto/setModelType.dto'; +import { QueryModelTypeDto } from './dto/queryModelType.dto'; + + +@Injectable() +export class ModelsService { + constructor( + @InjectRepository(ModelsEntity) + private readonly modelsEntity: Repository, + @InjectRepository(ModelsTypeEntity) + private readonly modelsTypeEntity: Repository, + ) { } + + private modelTypes = [] + private modelMaps = {} + private keyList = {} + + private keyPoolMap = {} // 记录每个模型的所有key 并且记录顺序 + private keyPoolIndexMap = {} // 记录每个模型的当前调用的下标 + + async onModuleInit() { + await this.initCalcKey() + } + + /* 初始化整理所有key 进行分类并且默认一个初始模型配置 默认是配置的第一个分类的第一个key为准 */ + async initCalcKey() { + this.keyPoolMap = {} + this.keyPoolIndexMap = {} + this.keyList = {} + this.modelMaps = {} + this.modelTypes = [] + const allKeys = await this.modelsEntity.find({ where: { status: true } }) + const keyTypes = allKeys.reduce((pre: any, cur) => { + if (!pre[cur.keyType]) { + pre[cur.keyType] = [cur] + } else { + pre[cur.keyType].push(cur) + } + return pre + }, {}) + this.modelTypes = Object.keys(keyTypes).map(keyType => { + return { label: ModelsMapCn[keyType], val: keyType } + }) + this.modelMaps = keyTypes + this.keyList = {} + + allKeys.forEach(keyDetail => { + const { keyType, model, keyWeight } = keyDetail + if (!this.keyPoolMap[model]) this.keyPoolMap[model] = [] + for (let index = 0; index < keyWeight; index++) { + this.keyPoolMap[model].push(keyDetail) + } + if (!this.keyPoolIndexMap[model]) this.keyPoolIndexMap[model] = 0 + if (!this.keyList[keyType]) this.keyList[keyType] = {} + if (!this.keyList[keyType][model]) this.keyList[keyType][model] = [] + this.keyList[keyType][model].push(keyDetail) + }) + } + + /* lock key 自动锁定key */ + async lockKey(keyId, remark, keyStatus = -1) { + const res = await this.modelsEntity.update({ id: keyId }, { status: false, keyStatus, remark }); + Logger.error(`key: ${keyId} 欠费或被官方封禁导致不可用,已被系统自动锁定`); + this.initCalcKey() + } + + /* 获取本次调用key的详细信息 */ + async getCurrentModelKeyInfo(model) { + if (!this.keyPoolMap[model]) { + throw new HttpException('当前调用模型已经被移除、请重新选择模型!', HttpStatus.BAD_REQUEST) + } + /* 调用下标+1 */ + this.keyPoolIndexMap[model]++ + /* 判断下标超出边界没有 */ + const index = this.keyPoolIndexMap[model] + if (index >= this.keyPoolMap[model].length) this.keyPoolIndexMap[model] = 0 + const key = this.keyPoolMap[model][this.keyPoolIndexMap[model]] + return key + } + + /* 通过现有配置的key和分类给到默认的配置信息 默认给到第一个分类的第一个key的配置 */ + async getBaseConfig(appId?: number): Promise { + if (!this.modelTypes.length || !Object.keys(this.modelMaps).length) return; + /* 有appid只可以使用openai 的 模型 */ + const modelTypeInfo = appId ? this.modelTypes.find(item => Number(item.val) === 1) : this.modelTypes[0] + // TODO 第0个会有问题 先添加的4默认就是模型4了 后面优化下 + if (!modelTypeInfo) return; + const { keyType, modelName, model, maxModelTokens, maxResponseTokens, deductType, deduct, maxRounds } = this.modelMaps[modelTypeInfo.val][0] // 取到第一个默认的配置项信息 + return { + modelTypeInfo, + modelInfo: { keyType, modelName, model, maxModelTokens, maxResponseTokens, topN: 0.8, systemMessage: '', deductType, deduct, maxRounds, rounds: 8 } + } + } + + async setModel(params: SetModelDto) { + try { + const { id } = params + params.status && (params.keyStatus = 1) + if (id) { + const res = await this.modelsEntity.update({ id }, params) + await this.initCalcKey() + return res.affected > 0 + } else { + const { keyType, key } = params + if (Number(keyType !== 1)) { + const res = await this.modelsEntity.save(params) + await this.initCalcKey() + return res + } else { + const data = key.map(k => { + try { + const data = JSON.parse(JSON.stringify(params)) + data.key = k + return data + } catch (error) { + console.log('parse error: ', error); + } + }) + const res = await this.modelsEntity.save(data) + await this.initCalcKey() + return res + } + } + } catch (error) { + console.log('error: ', error); + } + } + + async delModel({ id }) { + if (!id) { + throw new HttpException('缺失必要参数!', HttpStatus.BAD_REQUEST) + } + const m = await this.modelsEntity.findOne({ where: { id } }) + if (!m) { + throw new HttpException('当前账号不存在!', HttpStatus.BAD_REQUEST) + } + const res = await this.modelsEntity.delete({ id }) + await this.initCalcKey() + return res; + } + + async queryModels(req, params: QueryModelDto) { + const { role } = req.user + const { keyType, key, status, model, page = 1, size = 10 } = params + let where: any = {} + keyType && (where.keyType = keyType) + model && (where.model = model) + status && (where.status = Number(status) === 1 ? true : false) + key && (where.key = Like(`%${key}%`)) + const [rows, count] = await this.modelsEntity.findAndCount({ + where: where, + order: { + modelOrder: 'ASC' + }, + skip: (page - 1) * size, + take: size, + }) + if (role !== 'super') { + rows.forEach(item => { + item.key && (item.key = hideString(item.key)) + item.secret && (item.secret = hideString(item.secret)) + }) + } + + return { rows, count } + } + + /* 客户端查询到的所有的配置的模型类别 以及类别下自定义的多少中文模型名称 */ + async modelsList() { + const cloneModelMaps = JSON.parse(JSON.stringify(this.modelMaps)); + Object.keys(cloneModelMaps).forEach(key => { + // 对每个模型进行排序 + cloneModelMaps[key] = cloneModelMaps[key].sort((a, b) => a.modelOrder - b.modelOrder); + cloneModelMaps[key] = Array.from( + cloneModelMaps[key] + .map(t => { + const { modelName, model, deduct, deductType, maxRounds } = t; + return { modelName, model, deduct, deductType, maxRounds }; + }) + .reduce((map, obj) => map.set(obj.modelName, obj), new Map()).values() + ); + }); + + return { + modelTypeList: this.modelTypes, + modelMaps: cloneModelMaps + }; + } + + /* 记录使用次数和使用的token数量 */ + async saveUseLog(id, useToken) { + await this.modelsEntity + .createQueryBuilder() + .update(ModelsEntity) + .set({ useCount: () => 'useCount + 1', useToken: () => `useToken + ${useToken}` }) + .where('id = :id', { id }) + .execute(); + } + + /* 获取一张绘画key */ + async getRandomDrawKey() { + const drawkeys = await this.modelsEntity.find({ where: { isDraw: true, status: true } }) + if (!drawkeys.length) { + throw new HttpException('当前未指定特殊模型KEY、前往后台模型池设置吧!', HttpStatus.BAD_REQUEST) + } + return getRandomItemFromArray(drawkeys) + } + + /* 获取所有key */ + async getAllKey() { + return await this.modelsEntity.find() + } + + /* 查询模型类型 */ + async queryModelType(params: QueryModelTypeDto) { + return 1 + } + + /* 创建修改模型类型 */ + async setModelType(params: SetModelTypeDto) { + return 1 + } + + /* 删除模型类型 */ + async delModelType(params) { + return 1 + } + +} diff --git a/service/src/modules/official/dto/getQrCode.dto.ts b/service/src/modules/official/dto/getQrCode.dto.ts new file mode 100644 index 0000000..9055230 --- /dev/null +++ b/service/src/modules/official/dto/getQrCode.dto.ts @@ -0,0 +1,9 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class GetQrCodeDto { + @ApiProperty({ example: 'dasdasg2441lk1o24bk', description: '1-64位的字符参数', required: true }) + @IsDefined({ message: 'sceneStr是必传参数' }) + sceneStr: string; +} diff --git a/service/src/modules/official/dto/getQrSceneStr.dto.ts b/service/src/modules/official/dto/getQrSceneStr.dto.ts new file mode 100644 index 0000000..47d39bf --- /dev/null +++ b/service/src/modules/official/dto/getQrSceneStr.dto.ts @@ -0,0 +1,9 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class GetQrSceneStrDto { + @ApiProperty({ example: 'SNINE', description: '用户邀请码', required: true }) + @IsOptional() + invitedBy?: string; +} diff --git a/service/src/modules/official/official.controller.ts b/service/src/modules/official/official.controller.ts new file mode 100644 index 0000000..387db2e --- /dev/null +++ b/service/src/modules/official/official.controller.ts @@ -0,0 +1,135 @@ +import { Body, Controller, Get, Post, Query, Req, Res, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { OfficialService } from './official.service'; +import { Request } from 'express'; +import axios from 'axios'; +import { GetQrCodeDto } from './dto/getQrCode.dto'; +import { GetQrSceneStrDto } from './dto/getQrSceneStr.dto'; + +@ApiTags('official') +@Controller('official') +export class OfficialController { + constructor(private readonly officialService: OfficialService) {} + + @Get('notify') + @ApiOperation({ summary: '公众号通知接口GET' }) + async notify(@Req() req, @Query() query, @Body() body) { + console.log('get 通知>>>', query, body); + const result = await this.officialService.verify(query.signature, query.nonce, query.timestamp); + return result ? query.echostr : ''; + } + + @Post('notify') + @ApiOperation({ summary: '公众号通知接口POST' }) + async notifyPost(@Req() req, @Query() query, @Body() xmlData, @Res() res) { + const { xml } = xmlData; + console.log('xml: ', xml); + /* 扫码 */ + if (xml.msgtype[0] == 'event') { + if (xml.event[0] == 'VIEW' || xml.event[0] == 'CLICK') { + return res.status(200).send(''); + } + /* 扫码 */ + if (xml.event[0] == 'SCAN') { + console.log('扫码'); + const sceneStr = xml.eventkey[0]; + /* 绑定微信以/区分 */ + if (sceneStr.includes('/')) { + this.officialService.scanBindWx(xml.fromusername[0], sceneStr); + const xmlMsg = await this.officialService.genXmlMsgByConfig(xml, 'officialBindAccountText'); + return res.status(200).send(xmlMsg); + } + this.officialService.scan(xml.fromusername[0], sceneStr); + const xmlMsg = await this.officialService.genXmlMsgByConfig(xml, 'officialScanLoginText'); + return res.status(200).send(xmlMsg); + } + + /* 订阅 */ + if (xml.event[0] == 'subscribe') { + console.log('订阅', xml.eventkey[0]); + const sceneStr = xml.eventkey[0].split('qrscene_')[1]; + console.log('sceneStr: ', sceneStr); + /* 没有场景str则是单纯关注了直接返回 */ + if (!sceneStr) { + const xmlMsg = await this.officialService.genXmlMsgByConfig(xml, 'officialSubscribeText'); + return res.status(200).send(xmlMsg); + } + /* 绑定微信以/区分 */ + if (sceneStr.includes('/')) { + this.officialService.scanBindWx(xml.fromusername[0], sceneStr); + const xmlMsg = await this.officialService.genXmlMsgByConfig(xml, 'officialBindAccountText'); + return res.status(200).send(xmlMsg); + } + this.officialService.scan(xml.fromusername[0], sceneStr); + const xmlMsg = await this.officialService.genXmlMsgByConfig(xml, 'officialSubscribeText'); + return res.status(200).send(xmlMsg); + } + + /* 取消订阅 */ + if (xml.event[0] == 'unsubscribe') { + return res.status(200).send(''); + } + } + + /* 客户端发送了文字消息 */ + if (xml.msgtype[0] == 'text') { + const aotoPlayMsg = await this.officialService.aotoPlay(xml.content[0]); + const xmlMsg = await this.officialService.genXmlMsg(xml, aotoPlayMsg); + return res.status(200).send(xmlMsg); + } + return 'success'; + } + + @Post('getQRSceneStr') + @ApiOperation({ summary: '获取登录二维码sceneStr' }) + async getQRSceneStr(@Body() body: GetQrSceneStrDto) { + return this.officialService.getQRSceneStr(body); + } + + @Post('getQRSceneStrByBind') + @ApiOperation({ summary: '获取绑定二维码的sceneStr' }) + @UseGuards(JwtAuthGuard) + async getQRSceneStrByBind(@Req() req: Request) { + return this.officialService.getQRSceneStrByBind(req); + } + + @Get('getQRCode') + @ApiOperation({ summary: '获取二维码' }) + async getQRCode(@Query() query: GetQrCodeDto) { + if (process.env.ISDEV === 'TRUE') return ''; + const ticket = await this.officialService.getQRCodeTicket(query.sceneStr); + return `https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=${encodeURIComponent(ticket)}`; + } + + @Post('loginBySceneStr') + @ApiOperation({ summary: '扫码登录轮询查询' }) + async loginBySceneStr(@Req() req: Request, @Body() body: GetQrCodeDto) { + return this.officialService.loginBySceneStr(req, body.sceneStr); + } + + @Post('bindWxBySceneStr') + @ApiOperation({ summary: '扫码绑定轮询查询' }) + @UseGuards(JwtAuthGuard) + async bindWxBySceneStr(@Req() req: Request, @Body() body: GetQrCodeDto) { + return this.officialService.bindWxBySceneStr(req, body.sceneStr); + } + + @Post('getRedirectUrl') + @ApiOperation({ summary: '获取登录跳转地址' }) + async getRedirectUrl(@Body() body: { url: string }) { + return this.officialService.getRedirectUrl(body.url); + } + + @Post('getJsapiTicket') + @ApiOperation({ summary: '获取注册配置' }) + async getJsapiTicket(@Body() body: { url: string }) { + return this.officialService.getJsapiTicket(body.url); + } + + @Post('loginByCode') + @ApiOperation({ summary: '公众号静默登录' }) + async loginByCode(@Req() req: Request, @Body() body: { code: string }) { + return this.officialService.loginByCode(req, body.code); + } +} diff --git a/service/src/modules/official/official.module.ts b/service/src/modules/official/official.module.ts new file mode 100644 index 0000000..56e7c08 --- /dev/null +++ b/service/src/modules/official/official.module.ts @@ -0,0 +1,11 @@ +import { Global, Module } from '@nestjs/common'; +import { OfficialController } from './official.controller'; +import { OfficialService } from './official.service'; + +@Global() +@Module({ + controllers: [OfficialController], + providers: [OfficialService], + exports: [OfficialService], +}) +export class OfficialModule {} diff --git a/service/src/modules/official/official.service.ts b/service/src/modules/official/official.service.ts new file mode 100644 index 0000000..c4ebda5 --- /dev/null +++ b/service/src/modules/official/official.service.ts @@ -0,0 +1,176 @@ +import { ChatgptService } from '../chatgpt/chatgpt.service'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { AuthService } from '../auth/auth.service'; +import { UserService } from '../user/user.service'; +import { AutoreplyService } from '../autoreply/autoreply.service'; +import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'; +import * as crypto from 'crypto'; +import axios from 'axios'; +import { createRandomNonceStr } from '@/common/utils'; +import { GetQrSceneStrDto } from './dto/getQrSceneStr.dto'; + +@Injectable() +export class OfficialService { + constructor( + private readonly autoreplyService: AutoreplyService, + private readonly userService: UserService, + private readonly authService: AuthService, + private readonly globalConfigService: GlobalConfigService, + private readonly chatgptService: ChatgptService + ) {} + private sceneStrMap = {}; + private scanedSceneStrMap = {}; + + async onModuleInit() { + await this.globalConfigService.getWechatAccessToken(true); + } + + async getQRSceneStr(body: GetQrSceneStrDto) { + const { invitedBy } = body; + let sceneStr = createRandomNonceStr(32); + invitedBy && (sceneStr += `:${invitedBy}`); + this.sceneStrMap[sceneStr] = true; + return sceneStr; + } + + /* 下发绑定微信的sceneStr */ + async getQRSceneStrByBind(req) { + const { id } = req.user; + const sceneStr = `${createRandomNonceStr(32)}/${id}`; + this.sceneStrMap[sceneStr] = true; + return sceneStr; + } + + async getQRCodeTicket(sceneStr: string) { + return this.fetchQRCodeTicket(sceneStr); + } + + async getRedirectUrl(url: string) { + const appId = await this.globalConfigService.getConfigs(['wechatOfficialAppId']); + const res = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent( + url, + )}&response_type=code&scope=snsapi_base&state=weChatLogin#wechat_redirect`; + console.log('回跳跳转地址: ', res); + return res; + } + + async getJsapiTicket(url: string) { + const nonceStr = createRandomNonceStr(32); + const timestamp = (Date.now() / 1000).toFixed(0); + const jsapiTicket = await this.globalConfigService.getConfigs(['wechatJsapiTicket']); + console.log('jsapiTicket: ', jsapiTicket); + const appId = await this.globalConfigService.getConfigs(['wechatOfficialAppId']); + console.log('appId: ', appId); + const str = `jsapi_ticket=${jsapiTicket}&noncestr=${nonceStr}×tamp=${timestamp}&url=${url}`; + console.log('str: ', str); + const signature = this.sha1(str); + return { appId, nonceStr, timestamp, signature }; + } + + async fetchQRCodeTicket(sceneStr: string) { + const accessToken = await this.globalConfigService.getConfigs(['wechatAccessToken']); + const params = { action_name: 'QR_STR_SCENE', action_info: { scene: { scene_str: sceneStr } } }; + const res = await axios.post(`https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=${accessToken}`, params); + const { + data: { errmsg, ticket }, + } = res; + if (errmsg) throw new HttpException(errmsg, HttpStatus.BAD_REQUEST); + return ticket; + } + + async loginByCode(req, code: string) { + const appId = await this.globalConfigService.getConfigs(['wechatOfficialAppId']); + const secret = await this.globalConfigService.getConfigs(['wechatOfficialAppSecret']); + const res = await axios.get( + `https://api.weixin.qq.com/sns/oauth2/access_token?appid=${appId}&secret=${secret}&code=${code}&grant_type=authorization_code`, + ); + const { + data: { errmsg, openid }, + } = res; + if (errmsg) throw new HttpException(errmsg, HttpStatus.BAD_REQUEST); + let user; + user = await this.userService.getUserOpenId(openid); + if (!user) { + user = await this.userService.getUserFromOpenId(openid); + } + return this.authService.loginByOpenId(user, req); + } + + /* 扫码事件 初次扫码关注 或者二次扫码都一样 */ + async scan(openID: string, sceneStr: string) { + if (!this.sceneStrMap[sceneStr]) throw new HttpException('非法参数', HttpStatus.BAD_REQUEST); + const user = await this.userService.getUserFromOpenId(openID, sceneStr); + this.scanedSceneStrMap[sceneStr] = user.id; + } + + /* 轮询扫码登录响应 */ + async loginBySceneStr(req, sceneStr: string) { + if (!this.sceneStrMap[sceneStr]) return; + const userId = this.scanedSceneStrMap[sceneStr]; + if (!userId) return ''; + const user = await this.userService.getUserById(userId); + delete this.scanedSceneStrMap[sceneStr]; + return this.authService.loginByOpenId(user, req); + } + + /* 扫码事件 绑定微信 */ + async scanBindWx(openId: string, sceneStr) { + if (!this.sceneStrMap[sceneStr]) throw new HttpException('非法参数', HttpStatus.BAD_REQUEST); + const userId = sceneStr.split('/')[1]; + const bindRes = await this.userService.bindWx(openId, userId); + this.scanedSceneStrMap[sceneStr] = bindRes; + } + + /* 轮询绑定结果 */ + async bindWxBySceneStr(req, sceneStr: string) { + if (!this.sceneStrMap[sceneStr]) throw new HttpException('非法参数', HttpStatus.BAD_REQUEST); + const { id } = req.user; + const res = this.scanedSceneStrMap[sceneStr]; + if (!res) return ''; + delete this.scanedSceneStrMap[sceneStr]; + return res; + } + + async verify(signature: string, nonce: string, timestamp: string) { + const token = (await this.globalConfigService.getConfigs(['wechatOfficialToken'])) || 'jiangly'; + return (await this.sha1([token, nonce, timestamp].sort().join(''))) == signature; + } + + sha1(data: string) { + return crypto.createHash('sha1').update(data).digest('hex'); + } + + async genXmlMsgByConfig(xmlData, msgKey) { + const msg = await this.globalConfigService.getConfigs([msgKey]); + return this.genXmlMsg(xmlData, msg); + } + + async genXmlMsg(xmlData, msg) { + return ` + + + + ${new Date().getTime()} + + + `; + } + + async aotoPlay(msg) { + const timeoutPromise = new Promise((resolve, reject) => { + setTimeout(() => { + reject(new Error('请求超时')); + }, 4800); + }); + let question: any = '' + try { + console.log('来自公众号的询问问题 =======> ', msg); + const response = await Promise.race([this.chatgptService.chatSyncFree(msg), timeoutPromise]); + question = response || await this.autoreplyService.checkAutoReply(msg); + } catch (error) { + console.log('来自公众号的回复问题 =======> 超时导致问题无法回答完整') + question = (await this.globalConfigService.getConfigs(['officialAutoReplyText'])) || '由于公众号的回复限制、过长的问题我们可能无法回复、您可以前往我们的官方站点享受更加完善的服务、如果您有更多问题、欢迎像我提问!' + } + return question; + } +} diff --git a/service/src/modules/order/dto/buy.dto.ts b/service/src/modules/order/dto/buy.dto.ts new file mode 100644 index 0000000..702cb8e --- /dev/null +++ b/service/src/modules/order/dto/buy.dto.ts @@ -0,0 +1,13 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { ArrayMinSize, IsArray, IsNumber } from 'class-validator'; + +export class BuyDto { + @ApiProperty({ example: 1, description: '要购买的套餐Id', required: true }) + goodsId: number; + + @ApiProperty({ example: 'wxpay', description: '付款方式', required: false }) + payType: string; + + @ApiProperty({ example: 1, description: '购买数量', required: false }) + count: number; +} diff --git a/service/src/modules/order/dto/queryAllOrder.dto.ts b/service/src/modules/order/dto/queryAllOrder.dto.ts new file mode 100644 index 0000000..fe3d2e5 --- /dev/null +++ b/service/src/modules/order/dto/queryAllOrder.dto.ts @@ -0,0 +1,26 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class QuerAllOrderDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 99, description: '支付的用户id', required: false }) + @IsOptional() + userId: number; + + @ApiProperty({ example: 'epay', description: '支付的平台', required: false }) + @IsOptional() + platform: string; + + @ApiProperty({ example: 1, description: '订单状态', required: false }) + @IsOptional() + status: number; +} diff --git a/service/src/modules/order/dto/queryByOrder.dto.ts b/service/src/modules/order/dto/queryByOrder.dto.ts new file mode 100644 index 0000000..229b9ef --- /dev/null +++ b/service/src/modules/order/dto/queryByOrder.dto.ts @@ -0,0 +1,7 @@ +import { ApiProperty } from '@nestjs/swagger'; +import { ArrayMinSize, IsArray, IsNumber } from 'class-validator'; + +export class QueryByOrderIdDto { + @ApiProperty({ example: 'qwdadadwe-qeqwfcadqw-gguytewj', description: '订单ID', required: false }) + orderId: string; +} diff --git a/service/src/modules/order/order.controller.spec.ts b/service/src/modules/order/order.controller.spec.ts new file mode 100644 index 0000000..af4777a --- /dev/null +++ b/service/src/modules/order/order.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { OrderController } from './order.controller'; + +describe('OrderController', () => { + let controller: OrderController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [OrderController], + }).compile(); + + controller = module.get(OrderController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/service/src/modules/order/order.controller.ts b/service/src/modules/order/order.controller.ts new file mode 100644 index 0000000..216c3e2 --- /dev/null +++ b/service/src/modules/order/order.controller.ts @@ -0,0 +1,59 @@ +import { SuperAuthGuard } from '../../common/auth/superAuth.guard'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { OrderService } from './order.service'; +import { Request } from 'express'; +import { BuyDto } from './dto/buy.dto'; +import { QueryByOrderIdDto } from './dto/queryByOrder.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { QuerAllOrderDto } from './dto/queryAllOrder.dto'; + +@ApiTags('Order') +@Controller('order') +export class OrderController { + constructor(private readonly orderService: OrderService) {} + + /* 购买商品 */ + @Post('buy') + @ApiOperation({ summary: '购买商品' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async buy(@Body() body: BuyDto, @Req() req: Request) { + return this.orderService.buy(body, req); + } + + /* 查询订单状态 */ + @Get('queryByOrderId') + @ApiOperation({ summary: '查询订单' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async queryByOrderId(@Req() req: Request, @Query() query: QueryByOrderIdDto) { + const { id: userId } = req.user; + return this.orderService.queryByOrderId(req, query); + } + + /* 查询所有订单 */ + @Get('queryAll') + @ApiOperation({ summary: '查询所有订单' }) + @UseGuards(AdminAuthGuard) + async queryAllOrder(@Query() query: QuerAllOrderDto) { + return this.orderService.queryAllOrder(query); + } + + /* 删除订单 */ + @Post('delete') + @ApiOperation({ summary: '删除订单' }) + @UseGuards(SuperAuthGuard) + async deleteOrder(@Body() body: QueryByOrderIdDto) { + return this.orderService.deleteOrder(body); + } + + /* 删除订单 */ + @Post('deleteNotPay') + @ApiOperation({ summary: '删除未支付订单' }) + @UseGuards(SuperAuthGuard) + async deleteNotPay() { + return this.orderService.deleteNotPay(); + } +} diff --git a/service/src/modules/order/order.entity.ts b/service/src/modules/order/order.entity.ts new file mode 100644 index 0000000..62c6b61 --- /dev/null +++ b/service/src/modules/order/order.entity.ts @@ -0,0 +1,39 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'order' }) +export class OrderEntity extends BaseEntity { + @Column({ unique: true, comment: '订单ID', length: 64 }) + orderId: string; + + @Column({ unique: true, comment: '交易ID(服务商)', length: 32, nullable: true }) + tradeId: string; + + @Column({ comment: '支付平台【epay|hupi】)', length: 32, nullable: true }) + payPlatform: string; + + @Column({ comment: '用户ID', nullable: true }) + userId: number; + + @Column({ comment: '商品ID', nullable: true }) + goodsId: number; + + @Column({ comment: '数量', default: 1 }) + count: number; + + @Column({ comment: '套餐价格¥', type: 'decimal', scale: 2, precision: 10 }) + price: number; + + @Column({ comment: '订单总金额', type: 'decimal', scale: 2, precision: 10 }) + total: number; + + @Column({ comment: '订单状态(0:未支付、1:已支付、2、支付失败、3:支付超时)', default: 0 }) + status: number; + + @Column({ type: 'datetime', length: 0, nullable: true, comment: '支付时间' }) + paydAt: Date; + + @Column({ comment: '支付渠道)', length: 32, nullable: true }) + channel: string; +} diff --git a/service/src/modules/order/order.module.ts b/service/src/modules/order/order.module.ts new file mode 100644 index 0000000..a24e4d2 --- /dev/null +++ b/service/src/modules/order/order.module.ts @@ -0,0 +1,15 @@ +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { Module } from '@nestjs/common'; +import { OrderController } from './order.controller'; +import { OrderService } from './order.service'; +import { OrderEntity } from './order.entity'; +import { Type } from 'class-transformer'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { UserEntity } from '../user/user.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([OrderEntity, CramiPackageEntity, UserEntity])], + controllers: [OrderController], + providers: [OrderService], +}) +export class OrderModule {} diff --git a/service/src/modules/order/order.service.spec.ts b/service/src/modules/order/order.service.spec.ts new file mode 100644 index 0000000..31a8118 --- /dev/null +++ b/service/src/modules/order/order.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { OrderService } from './order.service'; + +describe('OrderService', () => { + let service: OrderService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [OrderService], + }).compile(); + + service = module.get(OrderService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/service/src/modules/order/order.service.ts b/service/src/modules/order/order.service.ts new file mode 100644 index 0000000..3cd9846 --- /dev/null +++ b/service/src/modules/order/order.service.ts @@ -0,0 +1,130 @@ +import { UserEntity } from '../user/user.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { In, Repository } from 'typeorm'; +import { OrderEntity } from './order.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { createOrderId } from '@/common/utils'; +import { BuyDto } from './dto/buy.dto'; +import { Request } from 'express'; +import { PayService } from '../pay/pay.service'; +import { QueryByOrderIdDto } from './dto/queryByOrder.dto'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { QuerAllOrderDto } from './dto/queryAllOrder.dto'; +import { Query } from 'cos-nodejs-sdk-v5'; + +@Injectable() +export class OrderService { + constructor( + @InjectRepository(OrderEntity) + private readonly orderEntity: Repository, + @InjectRepository(CramiPackageEntity) + private readonly cramiPackageEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + private readonly payService: PayService, + private readonly globalConfigService: GlobalConfigService, + ) {} + + /* 购买商品 */ + async buy(params: BuyDto, req: Request) { + try { + const { goodsId, count = 1, payType } = params; + const { id: userId } = req.user; + if(userId > 1000000){ + throw new HttpException('请先注册账号后购买商品!', HttpStatus.UNAUTHORIZED) + } + const order = await this.create(userId, goodsId, count, payType); + const res = await this.payService.pay(userId, order.orderId, payType); + return { + ...res, + orderId: order.orderId, + platform: order.payPlatform, + total: order.total, + }; + } catch (error) { + if( error.status === 401){ + throw new HttpException(error.message, HttpStatus.UNAUTHORIZED) + } + + throw new HttpException(error.message || '购买失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 查询订单状态 */ + async queryByOrderId(req: Request, params: QueryByOrderIdDto) { + const { id: userId } = req.user; + const { orderId } = params; + const order = await this.orderEntity.findOne({ where: { userId, orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + return order; + } + + /* 创建工单 */ + async create(userId: number, goodsId: number, count: number, payType: string) { + const payPlatform = await this.globalConfigService.queryPayType(); + // query goods + const goods = await this.cramiPackageEntity.findOne({ where: { id: goodsId } }); + if (!goods) throw new HttpException('套餐不存在!', HttpStatus.BAD_REQUEST); + // assemble order + const doc = {}; + doc['orderId'] = createOrderId(); + doc['userId'] = userId; + doc['goodsId'] = goodsId; + doc['price'] = Number(goods.price); + doc['count'] = count; + doc['total'] = Number(goods.price) * count; + doc['payPlatform'] = payPlatform; + doc['channel'] = payType; + // create order + const order = await this.orderEntity.save(doc); + console.log('order: ', order); + return order; + } + + async query(userId: number, page: number, size: number) { + // query goods + return await this.orderEntity.findAndCount({ where: { userId }, order: { id: 'DESC' }, skip: (page - 1) * size, take: size }); + } + + /* 查询所有订单 */ + async queryAllOrder(params: QuerAllOrderDto) { + const { page, size, userId, platform, status } = params; + const where = {}; + if (userId) where['userId'] = userId; + if (platform) where['payPlatform'] = platform; + if (status) where['status'] = status; + const [rows, count] = await this.orderEntity.findAndCount({ order: { id: 'DESC' }, where, skip: (page - 1) * size, take: size }); + const userIds = rows.map((item) => item.userId); + const goodsIds = rows.map((item) => item.goodsId); + const userInfos = await this.userEntity.find({ where: { id: In(userIds) }, select: ['id', 'username', 'email'] }); + const goodsInfos = await this.cramiPackageEntity.find({ where: { id: In(goodsIds) }, select: ['id', 'name', 'coverImg', 'des'] }); + rows.forEach((item: any) => { + item.userInfo = userInfos.find((user) => user.id === item.userId); + item.goodsInfo = goodsInfos.find((goods) => goods.id === item.goodsId); + }); + + const totalPrice = await this.orderEntity + .createQueryBuilder("order") + .where("order.status = :status", { status: 1 }) + .select("SUM(order.price)", "total_price") + .getRawOne(); + + return { rows, count, ...totalPrice }; + } + + /* 删除订单 */ + async deleteOrder(body: QueryByOrderIdDto) { + const { orderId } = body; + const o = await this.orderEntity.findOne({ where: { orderId } }); + if (!o) { + throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + } + return await this.orderEntity.delete({ orderId }); + } + + /* 删除未支付订单 */ + async deleteNotPay(){ + return await this.orderEntity.delete({ status: 0 }); + } +} diff --git a/service/src/modules/pay/dto/pay.dto.ts b/service/src/modules/pay/dto/pay.dto.ts new file mode 100644 index 0000000..3b8e0df --- /dev/null +++ b/service/src/modules/pay/dto/pay.dto.ts @@ -0,0 +1,10 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class PayDto { + @ApiProperty({ example: 1, description: '订单号', required: true }) + @IsOptional() + orderId: string; +} diff --git a/service/src/modules/pay/pay.controller.spec.ts b/service/src/modules/pay/pay.controller.spec.ts new file mode 100644 index 0000000..1386fca --- /dev/null +++ b/service/src/modules/pay/pay.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { PayController } from './pay.controller'; + +describe('PayController', () => { + let controller: PayController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [PayController], + }).compile(); + + controller = module.get(PayController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/service/src/modules/pay/pay.controller.ts b/service/src/modules/pay/pay.controller.ts new file mode 100644 index 0000000..67ef837 --- /dev/null +++ b/service/src/modules/pay/pay.controller.ts @@ -0,0 +1,26 @@ +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { PayService } from './pay.service'; +import { PayDto } from './dto/pay.dto'; +import { Request } from 'express'; + +@Controller('pay') +@ApiTags('pay') +export class PayController { + constructor(private readonly payService: PayService) {} + + @Post('notify') + @ApiOperation({ summary: 'hupi支付结果通知' }) + notifyHupi(@Body() body) { + console.log('hupi ->body: ', body); + return this.payService.notify(body); + } + + @Get('notify') + @ApiOperation({ summary: 'Epay支付结果通知' }) + notifyEpay(@Query() query) { + console.log('epay ->query: ', query); + return this.payService.notify(query); + } +} diff --git a/service/src/modules/pay/pay.module.ts b/service/src/modules/pay/pay.module.ts new file mode 100644 index 0000000..0be6ec1 --- /dev/null +++ b/service/src/modules/pay/pay.module.ts @@ -0,0 +1,15 @@ +import { Global, Module } from '@nestjs/common'; +import { PayController } from './pay.controller'; +import { PayService } from './pay.service'; +import { OrderEntity } from '../order/order.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { TypeOrmModule } from '@nestjs/typeorm'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([OrderEntity, CramiPackageEntity])], + controllers: [PayController], + providers: [PayService], + exports: [PayService], +}) +export class PayModule {} diff --git a/service/src/modules/pay/pay.service.spec.ts b/service/src/modules/pay/pay.service.spec.ts new file mode 100644 index 0000000..f2eea0b --- /dev/null +++ b/service/src/modules/pay/pay.service.spec.ts @@ -0,0 +1,42 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { PayService } from './pay.service'; + +describe('PayService', () => { + let service: PayService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [PayService], + }).compile(); + + service = module.get(PayService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); + + it('should be string', () => { + const params = { val: 123456 }; + const sign = service.sign(params, 'secret'); + expect(sign).toBeDefined; + }); + + // it('should be pay result', async () => { + // const val = await service.pay(4); + // console.log(val) + // expect(val).toBeDefined; + // }); + + it('should be query result', async () => { + const val = await service.query('3'); + console.log(val) + expect(val).toBeDefined; + }); + + it('should be pay result', async () => { + const val = await service.payEpay_('20230520001'); + console.log(val) + expect(val).toBeDefined; + }); +}); diff --git a/service/src/modules/pay/pay.service.ts b/service/src/modules/pay/pay.service.ts new file mode 100644 index 0000000..ec5cda5 --- /dev/null +++ b/service/src/modules/pay/pay.service.ts @@ -0,0 +1,459 @@ +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { HttpException, HttpStatus, Injectable, OnModuleInit } from '@nestjs/common'; +import * as crypto from 'crypto'; +import axios from 'axios'; +import fs from 'fs'; +import { OrderEntity } from '../order/order.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { createRandomNonceStr, importDynamic } from '@/common/utils'; +import { UserService } from '../user/user.service'; + +@Injectable() +export class PayService { + constructor( + @InjectRepository(CramiPackageEntity) + private readonly cramiPackageEntity: Repository, + @InjectRepository(OrderEntity) + private readonly orderEntity: Repository, + private readonly userBalanceService: UserBalanceService, + private readonly globalConfigService: GlobalConfigService, + private readonly userService: UserService, + ) {} + + private WxPay; + + async onModuleInit() { + const wpay = await importDynamic('wechatpay-node-v3'); + this.WxPay = wpay?.default ? wpay.default : wpay; + } + + /* 支付通知 */ + async notify(params: object) { + if (params['param'] == 'epay') { + return this.notifyEpay(params); + } + if (params['attach'] == 'hupi') { + return this.notifyHupi(params); + } + if (typeof params['resource'] == 'object') { + return this.notifyWeChat(params); + } + return this.notifyMpay(params); + } + + /* 分平台支付请求 */ + async pay(userId: number, orderId: string, payType = 'wxpay') { + // query order + const order = await this.orderEntity.findOne({ where: { userId, orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + // query goods + const goods = await this.cramiPackageEntity.findOne({ where: { id: order.goodsId } }); + if (!goods) throw new HttpException('套餐不存在!', HttpStatus.BAD_REQUEST); + console.log('本次支付类型: ', order.payPlatform); + try { + if (order.payPlatform == 'wechat') { + return this.payWeChat(userId, orderId, payType); + } + if (order.payPlatform == 'epay') { + return this.payEpay(userId, orderId, payType); + } + if (order.payPlatform == 'mpay') { + return this.payMpay(userId, orderId, payType); + } + if (order.payPlatform == 'hupi') { + return this.payHupi(userId, orderId, payType); + } + } catch (error) { + console.log('支付请求失败: ', error); + throw new HttpException('支付请求失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 支付订单状态查询 */ + async query(orderId: string) { + const order = await this.orderEntity.findOne({ where: { orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + return order; + } + + /* 虎皮椒支付通知 */ + async notifyHupi(params: object) { + const payHupiSecret = await this.globalConfigService.getConfigs(['payHupiSecret']); + const hash = params['hash']; + delete params['hash']; + if (this.sign(params, payHupiSecret) != hash) return 'failed'; + const order = await this.orderEntity.findOne({ where: { orderId: params['trade_order_id'], status: 0 } }); + if (!order) return 'failed'; + /* add balance log */ + await this.userBalanceService.addBalanceToOrder(order); + const result = await this.orderEntity.update({ orderId: params['trade_order_id'] }, { status: 1, paydAt: new Date() }); + if (result.affected != 1) return 'failed'; + return 'success'; + } + + /* 虎皮椒支付 */ + async payHupi(userId: number, orderId: string, payType = 'wxpay') { + const order = await this.orderEntity.findOne({ where: { userId, orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + const goods = await this.cramiPackageEntity.findOne({ where: { id: order.goodsId } }); + if (!goods) throw new HttpException('套餐不存在!', HttpStatus.BAD_REQUEST); + const { payHupiAppId, payHupiSecret, payHupiNotifyUrl, payHupiReturnUrl, payHupiGatewayUrl } = await this.globalConfigService.getConfigs([ + 'payHupiAppId', + 'payHupiSecret', + 'payHupiNotifyUrl', + 'payHupiReturnUrl', + 'payHupiGatewayUrl' + ]); + const params = {}; + params['version'] = '1.1'; + params['appid'] = payHupiAppId; + params['time'] = (Date.now() / 1000).toFixed(0); + params['nonce_str'] = createRandomNonceStr(32); + params['trade_order_id'] = orderId; + params['title'] = goods.name; + params['total_fee'] = order.total; + params['notify_url'] = payHupiNotifyUrl; + params['return_url'] = payHupiReturnUrl; + params['attach'] = 'hupi'; + params['hash'] = this.sign(params, payHupiSecret); + const { + data: { errcode, errmsg, url_qrcode, url }, + } = await axios.post(payHupiGatewayUrl || 'https://api.xunhupay.com/payment/do.html', params); + if (errcode != 0) throw new HttpException(errmsg, HttpStatus.BAD_REQUEST); + return { url_qrcode, url }; + } + + /* 虎皮椒商户查询 */ + async queryHupi(orderId: string) { + const { payHupiAppId, payHupiSecret } = await this.globalConfigService.getConfigs(['payHupiAppId', 'payHupiSecret']); + const params = {}; + params['version'] = '1.1'; + params['appid'] = payHupiAppId; + params['time'] = (Date.now() / 1000).toFixed(0); + params['nonce_str'] = createRandomNonceStr(32); + params['out_trade_order'] = orderId; + params['hash'] = this.sign(params, payHupiSecret); + const { + data: { errcode, errmsg, data: result }, + } = await axios.post('https://api.xunhupay.com/payment/query.html', params); + if (errcode != 0) throw new HttpException(errmsg, HttpStatus.BAD_REQUEST); + return result; + } + + /* 易支付支付结果通知 */ + async notifyEpay(params: object) { + const sign = params['sign']; + delete params['sign']; + delete params['sign_type']; + const payEpaySecret = await this.globalConfigService.getConfigs(['payEpaySecret']); + if (this.sign(params, payEpaySecret) != sign) return 'failed'; + console.log('校验签名通过'); + const order = await this.orderEntity.findOne({ where: { orderId: params['out_trade_no'], status: 0 } }); + if (!order) return 'failed'; + // update order status + const status = params['trade_status'] == 'TRADE_SUCCESS' ? 1 : 2; + const result = await this.orderEntity.update({ orderId: params['out_trade_no'] }, { status, paydAt: new Date() }); + if (status === 1) { + await this.userBalanceService.addBalanceToOrder(order); + } + if (result.affected != 1) return 'failed'; + return 'success'; + } + + /* 易支付支付 */ + async payEpay(userId: number, orderId: string, payType = 'alipay') { + // query order + const order = await this.orderEntity.findOne({ where: { userId, orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + // query goods + const goods = await this.cramiPackageEntity.findOne({ where: { id: order.goodsId } }); + if (!goods) throw new HttpException('套餐不存在!', HttpStatus.BAD_REQUEST); + // assemble params + const { payEpayPid, payEpaySecret, payEpayNotifyUrl, payEpayReturnUrl, payEpayApiPayUrl } = await this.globalConfigService.getConfigs([ + 'payEpayPid', + 'payEpaySecret', + 'payEpayNotifyUrl', + 'payEpayReturnUrl', + 'payEpayApiPayUrl', + ]); + + let convertedNumber; + + if (payEpayPid.length <= 16) { + convertedNumber = Number(payEpayPid); + } else { + convertedNumber = BigInt(payEpayPid); + } + const params = {}; + params['pid'] = convertedNumber; + params['type'] = payType; + params['out_trade_no'] = orderId; + params['name'] = goods.name; + params['money'] = order.total; + params['clientip'] = '192.168.1.100'; + params['device'] = 'pc'; + params['notify_url'] = payEpayNotifyUrl; + params['return_url'] = payEpayReturnUrl; + params['param'] = 'epay'; + params['sign'] = this.sign(params, payEpaySecret); + params['sign_type'] = 'MD5'; + const queryParams = new URLSearchParams(params).toString(); + const apiUrl = `${payEpayApiPayUrl}?${queryParams}`; + if (payEpayApiPayUrl.includes('submit.php')) { + return { url_qrcode: null, redirectUrl: apiUrl, channel: payType, isRedirect: true }; + } else { + const res = await axios.get(payEpayApiPayUrl, { params }); + console.log('epay ---> res: ', res.data); + const { + data: { code, msg, qrcode: url_qrcode }, + } = res; + if (code != 1) throw new HttpException(msg, HttpStatus.BAD_REQUEST); + return { url_qrcode, redirectUrl: null, channel: payType, isRedirect: false }; + } + } + + /* 易支付商户信息查询 */ + async queryEpay(orderId: string) { + const { payEpayPid, payEpaySecret, payEpayApiQueryUrl } = await this.globalConfigService.getConfigs([ + 'payEpayPid', + 'payEpaySecret', + 'payEpayApiQueryUrl', + ]); + const params = {}; + params['act'] = 'order'; + params['out_trade_no'] = orderId; + params['pid'] = payEpayPid; + params['key'] = payEpaySecret; + const { + data: { code, msg, data: result }, + } = await axios.get(payEpayApiQueryUrl, { params }); + if (code != 1) throw new HttpException(msg, HttpStatus.BAD_REQUEST); + return result; + } + + /* 码支付支付结果通知 */ + async notifyMpay(params: object) { + const sign = params['sign']; + delete params['sign']; + delete params['sign_type']; + const payMpaySecret = await this.globalConfigService.getConfigs(['payMpaySecret']); + console.log('校验签名'); + if (this.sign(params, payMpaySecret) != sign) return 'failed'; + console.log('校验签名通过'); + const order = await this.orderEntity.findOne({ where: { orderId: params['out_trade_no'], status: 0 } }); + if (!order) return 'failed'; + // update order status + const status = params['trade_status'] == 'TRADE_SUCCESS' ? 1 : 2; + console.log('status: ', status); + const result = await this.orderEntity.update({ orderId: params['out_trade_no'] }, { status, paydAt: new Date() }); + if (status === 1) { + await this.userBalanceService.addBalanceToOrder(order); + } + if (result.affected != 1) return 'failed'; + return 'success'; + } + + /* 码支付支付 */ + async payMpay(userId: number, orderId: string, payType = 'wxpay') { + // query order + const order = await this.orderEntity.findOne({ where: { userId, orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + // query goods + const goods = await this.cramiPackageEntity.findOne({ where: { id: order.goodsId } }); + if (!goods) throw new HttpException('套餐不存在!', HttpStatus.BAD_REQUEST); + // assemble params + const { payMpayPid, payMpaySecret, payMpayNotifyUrl, payMpayReturnUrl, payMpayApiPayUrl } = await this.globalConfigService.getConfigs([ + 'payMpayPid', + 'payMpaySecret', + 'payMpayNotifyUrl', + 'payMpayReturnUrl', + 'payMpayApiPayUrl', + ]); + const params = {}; + params['pid'] = Number(payMpayPid); + params['type'] = payType; + params['out_trade_no'] = orderId; + params['name'] = goods.name; + params['money'] = order.total; + params['notify_url'] = payMpayNotifyUrl; + params['return_url'] = payMpayReturnUrl; + // params['param'] = 'Mpay'; + params['sign'] = this.sign(params, payMpaySecret); + params['sign_type'] = 'MD5'; + const queryParams = new URLSearchParams(params).toString(); + const apiUrl = `${payMpayApiPayUrl}?${queryParams}`; + return { url_qrcode: null, redirectUrl: apiUrl, channel: payType, isRedirect: true }; + const res = await axios.get(payMpayApiPayUrl, { params }); + } + + /* 码支付商户信息查询 */ + async queryMpay(orderId: string) { + const { payMpayApiQueryUrl } = await this.globalConfigService.getConfigs(['payMpayPid', 'payMpaySecret', 'payMpayApiQueryUrl']); + const params = {}; + params['type'] = 2; + params['order_no'] = orderId; + const { + data: { code, msg, data: result }, + } = await axios.get(payMpayApiQueryUrl, { params }); + if (code != 1) throw new HttpException(msg, HttpStatus.BAD_REQUEST); + return result; + } + + /* 微信支付结果通知 */ + async notifyWeChat(params: object) { + console.log('微信支付通知params: ', params); + // assemble params + const { payWeChatAppId, payWeChatMchId, payWeChatSecret, payWeChatPublicKey, payWeChatPrivateKey } = await this.globalConfigService.getConfigs([ + 'payWeChatAppId', + 'payWeChatMchId', + 'payWeChatSecret', + 'payWeChatPublicKey', + 'payWeChatPrivateKey', + ]); + const pay = new this.WxPay({ + appid: payWeChatAppId, + mchid: payWeChatMchId, + publicKey: payWeChatPublicKey, + privateKey: payWeChatPrivateKey, + }); + try { + if (params['event_type'] == 'TRANSACTION.SUCCESS') { + const { ciphertext, associated_data, nonce } = params['resource']; + const resource = pay.decipher_gcm(ciphertext, associated_data, nonce, payWeChatSecret); + const order = await this.orderEntity.findOne({ where: { orderId: resource['out_trade_no'], status: 0 } }); + if (!order) return 'failed'; + // update order status + const status = resource['trade_state'] == 'SUCCESS' ? 1 : 2; + const result = await this.orderEntity.update({ orderId: resource['out_trade_no'] }, { status, paydAt: new Date() }); + if (status === 1) { + await this.userBalanceService.addBalanceToOrder(order); + } + if (result.affected != 1) return 'failed'; + } + return 'success'; + } catch (error) { + console.log('error: ', error); + console.log('支付通知验证失败: ', error); + return 'failed'; + } + } + + /* 微信支付支付 */ + async payWeChat(userId: number, orderId: string, payType = 'native') { + console.log('payType: ', payType); + const order = await this.orderEntity.findOne({ where: { userId, orderId } }); + if (!order) throw new HttpException('订单不存在!', HttpStatus.BAD_REQUEST); + const goods = await this.cramiPackageEntity.findOne({ where: { id: order.goodsId } }); + if (!goods) throw new HttpException('套餐不存在!', HttpStatus.BAD_REQUEST); + const { payWeChatAppId, payWeChatMchId, payWeChatPublicKey, payWeChatPrivateKey, payWeChatNotifyUrl, payWeChatH5Name, payWeChatH5Url } = + await this.globalConfigService.getConfigs([ + 'payWeChatAppId', + 'payWeChatMchId', + 'payWeChatPublicKey', + 'payWeChatPrivateKey', + 'payWeChatNotifyUrl', + 'payWeChatH5Name', + 'payWeChatH5Url', + ]); + const pay = new this.WxPay({ + appid: payWeChatAppId, + mchid: payWeChatMchId, + publicKey: payWeChatPublicKey, + privateKey: payWeChatPrivateKey, + }); + const params: any = { + appid: payWeChatAppId, + mchid: payWeChatMchId, + description: goods.name, + out_trade_no: orderId, + notify_url: payWeChatNotifyUrl, + amount: { + total: Number(order.total * 100), + }, + // payer: null, + scene_info: { + payer_client_ip: '192.168.1.100', + // h5_info: { + // type: 'Wap', + // app_name: payWeChatH5Name, + // app_url: payWeChatH5Url, + // }, + }, + }; + console.log('wechat-pay: ', params); + + if (payType == 'h5') { + params.scene_info.h5_info = { + type: 'Wap', + app_name: payWeChatH5Name, + app_url: payWeChatH5Url, + }; + const res = await pay.transactions_h5(params); + if (res.status === 403) { + const errmsg = res?.errRaw?.response?.text?.message; + throw new HttpException(res?.message || '微信H5支付失败!', HttpStatus.BAD_REQUEST); + } + const { h5_url } = res; + return { url: h5_url }; + } + if (payType == 'jsapi') { + // query openid + const openid = await this.userService.getOpenIdByUserId(userId); + console.log('用户openId: ', openid); + params['payer'] = { + openid: openid, + }; + const result = await pay.transactions_jsapi(params); + console.log('jsapi支付结果返回值: ', result); + /* + # { + # appId: 'appid', + # timeStamp: '1609918952', + # nonceStr: 'y8aw9vrmx8c', + # package: 'prepay_id=wx0615423208772665709493edbb4b330000', + # signType: 'RSA', + # paySign: 'JnFXsT4VNzlcamtmgOHhziw7JqdnUS9qJ5W6vmAluk3Q2nska7rxYB4hvcl0BTFAB1PBEnHEhCsUbs5zKPEig==' + # } + */ + return result; + } + if (payType == 'native') { + const res = await pay.transactions_native(params); + const { code_url: url_qrcode } = res; + if (!url_qrcode) { + console.log('wx-native', res); + } + + return { url_qrcode, isRedirect: false }; + } + throw new HttpException('unsupported pay type', HttpStatus.BAD_REQUEST); + } + + /* 微信支付商户信息查询 */ + async queryWeChat(orderId: string) { + // assemble params + const { payWeChatAppId, payWeChatMchId, payWeChatPublicKey, payWeChatPrivateKey, payWeChatNotifyUrl, payWeChatH5Name, payWeChatH5Url } = + await this.globalConfigService.getConfigs(['payWeChatAppId', 'payWeChatMchId', 'payWeChatPublicKey', 'payWeChatPrivateKey']); + const pay = new this.WxPay({ + appid: payWeChatAppId, + mchid: payWeChatMchId, + publicKey: payWeChatPublicKey, + privateKey: payWeChatPrivateKey, + }); + const result = await pay.query({ out_trade_no: orderId }); + return result; + } + + /* 加密签名 */ + sign(params: object, secret: string) { + const str = + Object.keys(params) + .sort() + .map((key) => `${key}=${params[key]}`) + .join('&') + secret; + return crypto.createHash('md5').update(str).digest('hex'); + } +} diff --git a/service/src/modules/queue/dto/mjDraw.dto.ts b/service/src/modules/queue/dto/mjDraw.dto.ts new file mode 100644 index 0000000..508eb74 --- /dev/null +++ b/service/src/modules/queue/dto/mjDraw.dto.ts @@ -0,0 +1,38 @@ +import { IsDefined, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class MjDrawDto { + @ApiProperty({ + example: + 'close-up polaroid photo, of a little joyful cute panda, in the forest, sun rays coming, photographic, sharp focus, depth of field, soft lighting, heigh quality, 24mm, Nikon Z FX', + description: '绘画提示词!', + required: true, + }) + @IsOptional() + prompt: string; + + @ApiProperty({ example: '--ar 16:9 --c 0', description: '除了prompt的额外参数' }) + @IsOptional() + extraParam?: string; + + @ApiProperty({ example: 'https://xsdasdasd.com', description: '垫图图片地址' }) + @IsOptional() + imgUrl?: string; + + @ApiProperty({ example: 'IMAGINE', description: '任务类型,可用值:IMAGINE,UPSCALE,VARIATION,ZOOM,PAN,DESCRIBE,BLEND,SHORTEN,SWAP_FACE' }) + @IsOptional() + action: string; + + @ApiProperty({ example: 1, description: '变体或者放大的序号' }) + @IsOptional() + orderId: number; + + @ApiProperty({ example: 1, description: '绘画的DBID' }) + @IsOptional() + drawId: number; + + @ApiProperty({ example: 1, description: '任务ID' }) + @IsOptional() + taskId: number; +} diff --git a/service/src/modules/queue/queue.controller.ts b/service/src/modules/queue/queue.controller.ts new file mode 100644 index 0000000..185ebd1 --- /dev/null +++ b/service/src/modules/queue/queue.controller.ts @@ -0,0 +1,27 @@ +import { QueueService } from './queue.service'; +import { Body, Controller, Get, Post, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { MjDrawDto } from './dto/mjDraw.dto'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { Request } from 'express'; + +@ApiTags('Queue') +@Controller('queue') +export class QueueController { + constructor(private readonly queueService: QueueService) {} + + @Post('addMjDrawQueue') + @ApiOperation({ summary: '提交绘制图片任务' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async mjDraw(@Body() body: MjDrawDto, @Req() req: Request) { + return await this.queueService.addMjDrawQueue(body, req); + } + + // 查询任务队列 + @Get('getQueue') + @ApiOperation({ summary: '查询任务队列' }) + async getQueue() { + return await this.queueService.getQueue(); + } +} diff --git a/service/src/modules/queue/queue.module.ts b/service/src/modules/queue/queue.module.ts new file mode 100644 index 0000000..3ad7950 --- /dev/null +++ b/service/src/modules/queue/queue.module.ts @@ -0,0 +1,26 @@ +import { Module } from '@nestjs/common'; +import { QueueController } from './queue.controller'; +import { QueueService } from './queue.service'; +import { BullModule } from '@nestjs/bull'; +import { QueueProcessor } from './queue.process'; + +@Module({ + imports: [ + BullModule.registerQueueAsync({ + name: 'MJDRAW', + useFactory: () => { + const config: any = { + port: +process.env.REDIS_PORT, + host: process.env.REDIS_HOST, + }; + process.env.REDIS_PASSWORD && (config.password = process.env.REDIS_PASSWORD); + return { + redis: config, + }; + }, + }), + ], + controllers: [QueueController], + providers: [QueueService, QueueProcessor], +}) +export class QueueModule {} diff --git a/service/src/modules/queue/queue.process.ts b/service/src/modules/queue/queue.process.ts new file mode 100644 index 0000000..ba464b4 --- /dev/null +++ b/service/src/modules/queue/queue.process.ts @@ -0,0 +1,87 @@ +import { + InjectQueue, + OnQueueActive, + OnQueueCleaned, + OnQueueCompleted, + OnQueueDrained, + OnQueueError, + OnQueueFailed, + OnQueuePaused, + OnQueueProgress, + OnQueueResumed, + Process, + Processor, +} from '@nestjs/bull'; +import { Logger } from '@nestjs/common'; +import { Job } from 'bull'; +import { MidjourneyService } from '../midjourney/midjourney.service'; + +@Processor('MJDRAW') +export class QueueProcessor { + constructor(private readonly midjourneyService: MidjourneyService) {} + private readonly logger = new Logger(QueueProcessor.name); + + @Process({ + name: 'mjDraw', + concurrency: process.env.CONCURRENCY ? +process.env.CONCURRENCY : 3, + }) + async handleJob(job: Job) { + const res = await this.midjourneyService.draw(job.data, job.id); + return res; + } + + /* 将在队列中的任务变为活动状态时被调用 */ + @OnQueueActive() + onQueueActive(job: Job) { + // console.log('将在队列中的任务变为活动状态时被调用', job.id); + } + + /* 它在队列中发生错误时触发 */ + @OnQueueError() + onQueueError(error: Error) { + console.log('队列发生错误', error); + } + + /* 队列任务的一个回调用于通知当前进度 */ + @OnQueueProgress() + onQueueProgress(job: Job, progress: number) { + console.log('队列任务的一个回调用于通知当前进度', job.id, progress); + } + + /* 队列任务完成的时候调用 */ + @OnQueueCompleted() + onQueueCompleted(job: Job, result: any) { + // console.log('队列任务完成的时候调用', job.id, result); + } + + /* 任务失败时调用 */ + @OnQueueFailed() + onQueueFailed(job: Job, err: Error) { + Logger.error(`Queue failed: ${err.message}: 绘画失败 ${job.id}`, 'QueueProcessor'); + this.midjourneyService.drawFailed(job.data); + } + + /* 队列暂停的时候调用 */ + @OnQueuePaused() + onQueuePaused() { + console.log('队列暂停的时候调用'); + } + + /* 队列恢复工作时候调用 */ + @OnQueueResumed() + onQueueResumed() { + console.log('队列恢复的时候调用'); + } + + /* 队列被清空的时候调用的 */ + @OnQueueCleaned() + onQueueCleaned(jobs: Job[], type: string) { + Logger.log(`Queue cleaned: ${jobs.length} jobs of type ${type} were cleaned.`, 'QueueProcessor'); + } + + /* 队列为空的时候调用的 */ + @OnQueueDrained() + onQueueDrained() { + // console.log('OnQueueDrained 当前队列已经空了'); + } +} diff --git a/service/src/modules/queue/queue.service.ts b/service/src/modules/queue/queue.service.ts new file mode 100644 index 0000000..cee55f7 --- /dev/null +++ b/service/src/modules/queue/queue.service.ts @@ -0,0 +1,74 @@ +import { HttpException, HttpStatus, Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common'; +import { Process, Processor, InjectQueue } from '@nestjs/bull'; +import { Queue, Job } from 'bull'; +import { MjDrawDto } from './dto/mjDraw.dto'; +import { createRandomUid } from '@/common/utils'; +import { MidjourneyService } from '../midjourney/midjourney.service'; +import { MidjourneyActionEnum } from '@/common/constants/midjourney.constant'; +import { Request } from 'express'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; + +export class QueueService implements OnApplicationBootstrap { + constructor( + @InjectQueue('MJDRAW') private readonly mjDrawQueue: Queue, + private readonly midjourneyService: MidjourneyService, + private readonly userBalanceService: UserBalanceService, + private readonly globalConfigService: GlobalConfigService, + ) { } + private readonly jobIds: any[] = []; + + async onApplicationBootstrap() { + // Logger.debug('服务启动时清除所有之前未执行完毕的队列任务!', 'QueueService'); + await this.mjDrawQueue.clean(0, 'active'); + /* 改变所有数据库状态不对的值 */ + await this.midjourneyService.cleanQueue(); + } + + /* 提交绘画任务 */ + async addMjDrawQueue(body: MjDrawDto, req: Request) { + const { imgUrl, orderId, action, drawId } = body; + /* 限制普通用户队列最多可以有两个任务在排队或者等待中 */ + await this.midjourneyService.checkLimit(req); + /* 检测余额 */ + await this.userBalanceService.validateBalance(req, 'mjDraw', action === 'UPSCALE' ? 1 : 4); + /* 绘图或者图生图 */ + if (action === 'IMAGINE') { + /* 绘图或者图生图是相同的 区分一个action即可 */ + const randomDrawId = `${createRandomUid()}`; + const params = { ...body, userId: req.user.id, randomDrawId }; + /* 添加绘制任务进入到db */ + const res = await this.midjourneyService.addDrawQueue(params); + const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000; + /* 添加任务到队列 通过imgUrl判断是不是图生图 */ + const job = await this.mjDrawQueue.add( + 'mjDraw', + { id: res.id, action: action, userId: req.user.id }, + { delay: 1000, timeout: +timeout }, + ); + /* 绘图和图生图扣除余额4 */ + this.jobIds.push(job.id); + return true; + } else { + const { orderId, action, drawId } = body; + const actionDetail = await this.midjourneyService.getDrawActionDetail(action, drawId, orderId); + const params = { ...body, userId: req.user.id, ...actionDetail }; + const res = await this.midjourneyService.addDrawQueue(params); + const timeout = (await this.globalConfigService.getConfigs(['mjTimeoutMs'])) || 200000; + const job = await this.mjDrawQueue.add('mjDraw', { id: res.id, action, userId: req.user.id }, { delay: 1000, timeout: +timeout }); + this.jobIds.push(job.id); + return; + } + + if (!drawId || !orderId) { + throw new HttpException('缺少必要参数!', HttpStatus.BAD_REQUEST); + } + /* 图片操作 */ + + } + + /* 查询队列 */ + async getQueue() { + return { jobIds: this.jobIds }; + } +} diff --git a/service/src/modules/redisCache/dto/redis.dto.ts b/service/src/modules/redisCache/dto/redis.dto.ts new file mode 100644 index 0000000..7220069 --- /dev/null +++ b/service/src/modules/redisCache/dto/redis.dto.ts @@ -0,0 +1,12 @@ +import { IsNotEmpty, MinLength, MaxLength } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class RedisDto { + @ApiProperty({ example: 'name', description: '邮箱' }) + key: string; + + @ApiProperty({ example: '123456', description: '密码' }) + @IsNotEmpty({ message: '用户密码不能为空!' }) + val: string; +} diff --git a/service/src/modules/redisCache/redisCache.controller.ts b/service/src/modules/redisCache/redisCache.controller.ts new file mode 100644 index 0000000..515c481 --- /dev/null +++ b/service/src/modules/redisCache/redisCache.controller.ts @@ -0,0 +1,18 @@ +import { RedisDto } from './dto/redis.dto'; +import { RedisCacheService } from './redisCache.service'; +import { Body, Controller, Get, Post, Query } from '@nestjs/common'; + +@Controller('redisCache') +export class RedisCacheController { + constructor(private readonly redisCacheService: RedisCacheService) {} + + @Post('set') + set(@Body() body: RedisDto) { + return this.redisCacheService.set(body); + } + + @Get('get') + get(@Query() body: RedisDto) { + return this.redisCacheService.get(body); + } +} diff --git a/service/src/modules/redisCache/redisCache.module.ts b/service/src/modules/redisCache/redisCache.module.ts new file mode 100644 index 0000000..f95c112 --- /dev/null +++ b/service/src/modules/redisCache/redisCache.module.ts @@ -0,0 +1,48 @@ +import { Module, Global, Logger } from '@nestjs/common'; +import { RedisCacheService } from './redisCache.service'; +import { RedisCacheController } from './redisCache.controller'; +import { ConfigModule, ConfigService } from 'nestjs-config'; + +import { createClient } from 'redis'; + +@Global() +@Module({ + imports: [ConfigModule], + controllers: [RedisCacheController], + providers: [ + { + provide: 'REDIS_CLIENT', + useFactory: async (redisConfig: ConfigService) => { + const port = +process.env.REDIS_PORT; + const host = process.env.REDIS_HOST; + const password = process.env.REDIS_PASSWORD; + const username = process.env.REDIS_USER; + + if (!host || !port) { + Logger.error(`Please config Redis config | 未配置 Redis 配置信息 请确认配置redis服务以获得更好的体验`, 'RedistCacheModule'); + return; + } + + const client = createClient({ + socket: { host, port }, + username, + password, + }); + + const res = await client.connect(); + + client.on('ready', () => { + Logger.debug(`Your Redis connection successful`, 'RedistCacheModule'); + }); + client.on('error', () => { + Logger.error(`Your Redis connection failed | 您的 Redist 连接失败`, 'RedistCacheModule'); + }); + return client; + }, + inject: [ConfigService], + }, + RedisCacheService, + ], + exports: ['REDIS_CLIENT'], +}) +export class RedisCacheModule {} diff --git a/service/src/modules/redisCache/redisCache.service.ts b/service/src/modules/redisCache/redisCache.service.ts new file mode 100644 index 0000000..89315fa --- /dev/null +++ b/service/src/modules/redisCache/redisCache.service.ts @@ -0,0 +1,79 @@ +import { Inject, Injectable, CACHE_MANAGER, OnModuleInit, Scope, HttpException, HttpStatus } from '@nestjs/common'; +import { RedisClientType } from 'redis'; + +@Injectable() +export class RedisCacheService implements OnModuleInit { + constructor(@Inject('REDIS_CLIENT') private redisClient: RedisClientType) {} + + async onModuleInit() { + // 设置配置参数 + } + + test() { + this.redisClient.set('aaa', 111); + return 1; + } + + async get(body) { + const { key } = body; + const res = await this.redisClient.get(key); + return await this.redisClient.get(key); + } + + async set(body, time?: number) { + try { + const { key, val } = body; + await this.redisClient.set(key, val); + time && (await this.redisClient.expire(key, time)); + return; + } catch (error) { + throw new HttpException(error, HttpStatus.BAD_REQUEST); + } + } + + async ttl(key) { + return await this.redisClient.ttl(key); + } + + async del(body) { + const { key } = body; + await this.redisClient.del(key); + return; + } + + /* 登录记录token */ + async saveToken(userId, token) { + const tokens = await this.redisClient.zRange(`tokens:${userId}`, 0, -1); + await this.invalidateTokens(userId, tokens); + this.redisClient.set(`token:${userId}`, token); + } + + /* 移除老的token */ + async invalidateTokens(userId, tokens) { + tokens.forEach((token) => { + this.redisClient.del(`token:${userId}:${token}`); + }); + } + + /* 检测token是否有效 */ + async checkTokenAuth(token, req) { + const {id: userId, role} = req.user + if(role === 'visitor') return true + const storedToken = await this.redisClient.get(`token:${userId}`); + + /* first set token */ + if (storedToken === null) { + await this.redisClient.set(`token:${userId}`, token); + return true; + } + + /* token invalid */ + if (storedToken !== token) { + /* 管理员属于白名单 */ + if (['super', 'admin'].includes(role)) return true; + // 如果 Token 不存在或者不匹配,则认为验证失败 + throw new HttpException('您已在其他设备覆盖登录、请您重新登录!', HttpStatus.UNAUTHORIZED); + // return true; + } + } +} diff --git a/service/src/modules/sales/dto/appForMoney.dto.ts b/service/src/modules/sales/dto/appForMoney.dto.ts new file mode 100644 index 0000000..0100409 --- /dev/null +++ b/service/src/modules/sales/dto/appForMoney.dto.ts @@ -0,0 +1,22 @@ +import { IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined, isNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class AppForMoneyDto { + @ApiProperty({ example: 10, description: '提现金额', required: true }) + @IsNumber({}, { message: '提现金额必须为数字' }) + @Min(0, { message: '提现金额必须大于0' }) + withdrawalAmount: number; + + @ApiProperty({ example: 1, description: '提现渠道', required: true }) + @IsIn([1, 2], { message: '提现渠道非法' }) + withdrawalChannels: number; + + @ApiProperty({ example: 10, description: '提款联系方式', required: true }) + contactInformation: string; + + @ApiProperty({ example: 10, description: '提款备注', required: false }) + @IsOptional() + remark: string; +} diff --git a/service/src/modules/sales/dto/auditOrder.dto.ts b/service/src/modules/sales/dto/auditOrder.dto.ts new file mode 100644 index 0000000..8a311c0 --- /dev/null +++ b/service/src/modules/sales/dto/auditOrder.dto.ts @@ -0,0 +1,14 @@ +import { IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined, isNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class AuditOrderDto { + @ApiProperty({ example: 1, description: '审核工单状态', required: true }) + @IsIn([1, -1], { message: '非法工单状态' }) + status: number; + + @ApiProperty({ example: 1, description: '工单id', required: true }) + @IsNumber({}, { message: '工单id必须为数字' }) + id: number; +} diff --git a/service/src/modules/sales/dto/drawMoneyOrder.dto.ts b/service/src/modules/sales/dto/drawMoneyOrder.dto.ts new file mode 100644 index 0000000..71bfed1 --- /dev/null +++ b/service/src/modules/sales/dto/drawMoneyOrder.dto.ts @@ -0,0 +1,18 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class drawMoneyOrderDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 10, description: '工单状态', required: false }) + @IsOptional() + orderStatus: number; +} diff --git a/service/src/modules/sales/dto/recordsQuery.dto.ts b/service/src/modules/sales/dto/recordsQuery.dto.ts new file mode 100644 index 0000000..d3bc073 --- /dev/null +++ b/service/src/modules/sales/dto/recordsQuery.dto.ts @@ -0,0 +1,22 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class RecordsQueryDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 'c8c479601c1e11eea4c49fad2cbd3ccd', description: '订单ID', required: false }) + @IsOptional() + orderId: string; + + @ApiProperty({ example: 10, description: '订单价格', required: false }) + @IsOptional() + orderPrice: number; +} diff --git a/service/src/modules/sales/dto/salesOrder.dto.ts b/service/src/modules/sales/dto/salesOrder.dto.ts new file mode 100644 index 0000000..55e84bd --- /dev/null +++ b/service/src/modules/sales/dto/salesOrder.dto.ts @@ -0,0 +1,22 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class salesOrderDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 10, description: '工单状态', required: false }) + @IsOptional() + orderStatus: number | string; + + @ApiProperty({ example: 1, description: '提现渠道', required: false }) + @IsOptional() + withdrawalChannels: number; +} diff --git a/service/src/modules/sales/dto/salesUserList.dto.ts b/service/src/modules/sales/dto/salesUserList.dto.ts new file mode 100644 index 0000000..6f14844 --- /dev/null +++ b/service/src/modules/sales/dto/salesUserList.dto.ts @@ -0,0 +1,34 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class SalesUserListDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: 99, description: '支付的用户id', required: false }) + @IsOptional() + userId: number; + + @ApiProperty({ example: 'epay', description: '支付的平台', required: false }) + @IsOptional() + platform: string; + + @ApiProperty({ example: 1, description: '订单状态', required: false }) + @IsOptional() + status: number; + + @ApiProperty({ example: 1, description: '分销人称号', required: false }) + @IsOptional() + salesOutletName: string; + + @ApiProperty({ example: 1, description: '返佣比例', required: false }) + @IsOptional() + performanceRatio: number; +} diff --git a/service/src/modules/sales/dto/updateUserSales.dto.ts b/service/src/modules/sales/dto/updateUserSales.dto.ts new file mode 100644 index 0000000..d9bfef8 --- /dev/null +++ b/service/src/modules/sales/dto/updateUserSales.dto.ts @@ -0,0 +1,19 @@ +import { IsNotEmpty, MinLength, MaxLength, IsString, IsIn, IsOptional, Max, Min, ValidateNested, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; +import { BaseEntity } from 'typeorm'; + +export class UpdateUserSalesDto { + @ApiProperty({ example: 10, description: '佣金比例', required: false }) + @IsOptional() + @IsNumber({}, { message: '佣金比例必须是数字' }) + performanceRatio: number; + + @ApiProperty({ example: '超级合伙人', description: '自定义分销商名称', required: false }) + @IsOptional() + salesOutletName: string; + + @ApiProperty({ example: 1, description: '用户ID' }) + @IsNumber({}, { message: '用户ID必须是数字' }) + userId: number; +} diff --git a/service/src/modules/sales/sales.controller.ts b/service/src/modules/sales/sales.controller.ts new file mode 100644 index 0000000..bd84f33 --- /dev/null +++ b/service/src/modules/sales/sales.controller.ts @@ -0,0 +1,93 @@ +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { SalesService } from './sales.service'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { RecordsQueryDto } from './dto/recordsQuery.dto'; +import { AppForMoneyDto } from './dto/appForMoney.dto'; +import { Request } from 'express'; +import { drawMoneyOrderDto } from './dto/drawMoneyOrder.dto'; +import { salesOrderDto } from './dto/salesOrder.dto'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { AuditOrderDto } from './dto/auditOrder.dto'; +import { SalesUserListDto } from './dto/salesUserList.dto'; +import { UpdateUserSalesDto } from './dto/updateUserSales.dto'; + +@ApiTags('sales') +@Controller('sales') +export class SalesController { + constructor(private readonly salesService: SalesService) {} + + @Get('mineAccount') + @ApiOperation({ summary: '获取个人分销账户' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getMineAccount(@Req() req: Request) { + return this.salesService.getMineAccount(req); + } + + @Get('mineRecords') + @ApiOperation({ summary: '获取个人推介记录' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getMineRecords(@Req() req: Request, @Query() query: RecordsQueryDto) { + return this.salesService.getMineRecords(req, query); + } + + @Get('inviteRecords') + @ApiOperation({ summary: '管理端获取个人推介记录' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async inviteRecords(@Req() req: Request, @Query() query: RecordsQueryDto) { + return this.salesService.inviteRecords(req, query); + } + + @Post('appForMoney') + @ApiOperation({ summary: '申请提现' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async appForMoney(@Req() req: Request, @Body() body: AppForMoneyDto) { + return this.salesService.appForMoney(req, body); + } + + @Get('drawMoneyOrder') + @ApiOperation({ summary: '获取个人提款工单列表' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async drawMoneyOrder(@Req() req: Request, @Query() query: drawMoneyOrderDto) { + return this.salesService.drawMoneyOrder(req, query); + } + + @Get('salesOrder') + @ApiOperation({ summary: '管理端获取工单列表' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async salesOrder(@Req() req: Request, @Query() query: salesOrderDto) { + return this.salesService.salesOrder(req, query); + } + + @Post('auditOrder') + @ApiOperation({ summary: '审核工单' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async auditOrder(@Req() req: Request, @Body() body: AuditOrderDto) { + return this.salesService.auditOrder(req, body); + } + + /* 查询所有用户账户 */ + @Get('salesUserList') + @ApiOperation({ summary: '查询用户佣金账户' }) + @UseGuards(AdminAuthGuard) + async salesUserList(@Req() req: Request, @Query() query: SalesUserListDto) { + return this.salesService.salesUserList(req, query); + } + + /* 修改用户佣金账户 */ + @Post('updateUserSales') + @ApiOperation({ summary: '修改用户佣金账户' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async updateUserSales(@Req() req: Request, @Body() body: UpdateUserSalesDto) { + return this.salesService.updateUserSales(req, body); + } +} diff --git a/service/src/modules/sales/sales.module.ts b/service/src/modules/sales/sales.module.ts new file mode 100644 index 0000000..5becb9c --- /dev/null +++ b/service/src/modules/sales/sales.module.ts @@ -0,0 +1,18 @@ +import { Global, Module } from '@nestjs/common'; +import { SalesController } from './sales.controller'; +import { SalesService } from './sales.service'; +import { Type } from 'class-transformer'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { SalesUsersEntity } from './salesUsers.entity'; +import { SalesRecordsEntity } from './salesRecords.entity'; +import { UserEntity } from '../user/user.entity'; +import { SalesOrderEntity } from './salesOrder.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([SalesUsersEntity, SalesRecordsEntity, UserEntity, SalesOrderEntity])], + controllers: [SalesController], + providers: [SalesService], + exports: [SalesService], +}) +export class SalesModule {} diff --git a/service/src/modules/sales/sales.service.ts b/service/src/modules/sales/sales.service.ts new file mode 100644 index 0000000..522f116 --- /dev/null +++ b/service/src/modules/sales/sales.service.ts @@ -0,0 +1,317 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { SalesUsersEntity } from './salesUsers.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { In, Like, Repository } from 'typeorm'; +import { SalesRecordsEntity } from './salesRecords.entity'; +import { formatCreateOrUpdateDate, hideString } from '@/common/utils'; +import { RecordsQueryDto } from './dto/recordsQuery.dto'; +import { UserEntity } from '../user/user.entity'; +import Decimal from 'decimal.js'; +import { AppForMoneyDto } from './dto/appForMoney.dto'; +import { Request } from 'express'; +import { SalesOrderEntity } from './salesOrder.entity'; +import { drawMoneyOrderDto } from './dto/drawMoneyOrder.dto'; +import { AuditOrderDto } from './dto/auditOrder.dto'; +import { salesOrderDto } from './dto/salesOrder.dto'; +import { SalesUserListDto } from './dto/salesUserList.dto'; +import { UpdateUserSalesDto } from './dto/updateUserSales.dto'; + +@Injectable() +export class SalesService { + constructor( + @InjectRepository(SalesUsersEntity) + private readonly salesUsersEntity: Repository, + @InjectRepository(SalesRecordsEntity) + private readonly salesRecordsEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + @InjectRepository(SalesOrderEntity) + private readonly salesOrderEntity: Repository, + private readonly globalConfigService: GlobalConfigService, + ) {} + + /* 获取个人账户信息 */ + async getMineAccount(req) { + try { + const { id: userId } = req.user; + let u = await this.salesUsersEntity.findOne({ where: { userId } }); + if (!u) { + const { salesBaseRatio = 10, salesBaseTitle = '新秀分销商' } = await this.globalConfigService.getConfigs([ + 'salesBaseRatio', + 'salesBaseTitle', + ]); + u = await this.creaetUserBaseSalesInfo({ userId, performanceRatio: Number(salesBaseRatio), salesOutletName: salesBaseTitle }); + } + const account = formatCreateOrUpdateDate(u); + const orderCount = await this.salesRecordsEntity.count({ where: { inviterUserId: userId } }); + const userInfo = (await this.userEntity.findOne({ where: { id: userId } })) || { inviteLinkCount: 0, inviteCode: 'xxxxxxx' }; + const { inviteLinkCount, inviteCode } = userInfo; + const inviteCount = await this.userEntity.count({ where: { invitedBy: inviteCode } }); + return { + ...account, + orderCount, + inviteCount, + inviteLinkCount, + }; + } catch (error) { + console.log('error: ', error); + } + } + + /* 获取我得推介记录 */ + async getMineRecords(req, query: RecordsQueryDto) { + try { + const { id: inviterUserId } = req.user; + const { page, size } = query; + const [rows, count] = await this.salesRecordsEntity.findAndCount({ + where: { inviterUserId }, + order: { createdAt: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + return { + rows: formatCreateOrUpdateDate(rows), + count, + }; + } catch (error) { + console.log('error: ', error); + } + } + + /* 管理端获取推介记录 */ + async inviteRecords(req, query: RecordsQueryDto) { + try { + const { page, size, orderId, orderPrice } = query; + let where = {}; + orderId && (where = { orderId }); + orderPrice && (where = { orderPrice }); + const [rows, count] = await this.salesRecordsEntity.findAndCount({ + where, + order: { createdAt: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const userIds = []; + rows.map((item) => { + userIds.push(item.inviterUserId); + userIds.push(item.inviteeUserId); + }); + const userInfo = await this.userEntity.find({ where: { id: In(userIds) } }); + rows.forEach((item: any) => { + const inviterUser = userInfo.find((u) => u.id === item.inviterUserId); + const inviteeUser = userInfo.find((u) => u.id === item.inviteeUserId); + const { username, email, avatar } = userInfo.find((u) => u.id === item.inviterUserId); + item.inviterUsername = inviterUser?.username; + item.inviterEmail = inviterUser?.email; + item.inviterAvatar = inviterUser?.avatar; + item.inviteeUsername = inviteeUser?.username; + item.inviteeEmail = inviteeUser?.email; + item.inviteeAvatar = inviteeUser?.avatar; + }); + if (req.user.role !== 'super') { + rows.forEach((item: any) => { + item.inviterEmail = item.inviterEmail ? hideString(item.inviterEmail) : ''; + item.inviteeEmail = item.inviteeEmail ? hideString(item.inviteeEmail) : ''; + }); + } + return { + rows: formatCreateOrUpdateDate(rows), + count, + }; + } catch (error) { + console.log('error: ', error); + } + } + + /* 创建一个基础的邀人人账户 */ + async creaetUserBaseSalesInfo(salesInfo) { + const { userId, performanceRatio, salesOutletName } = salesInfo; + return await this.salesUsersEntity.save({ userId, performanceRatio, salesOutletName }); + } + + /* 变更账户信息 */ + async changeUserBaseSalesInfo(salesInfo) { + return await this.salesUsersEntity.save(salesInfo); + } + + /* 创建推介记录 */ + async createSalesRecords(salesRecords) { + return await this.salesRecordsEntity.save(salesRecords); + } + + /* 存储邀请人的佣金信息 总余额和充值余额同时增加 */ + async saveCommissionAmount(userId, amount) { + const inviteUserInfo = await this.salesUsersEntity.findOne({ where: { userId } }); + if (!inviteUserInfo) return; + const { totalAmount, distributionBalance } = inviteUserInfo; + console.log('totalAmount, distributionBalance: ', totalAmount, distributionBalance); + return await this.salesUsersEntity.update( + { userId }, + { + totalAmount: new Decimal(totalAmount).plus(amount).toNumber(), + distributionBalance: new Decimal(distributionBalance).plus(amount).toNumber(), + }, + ); + } + + /* 提交提现申请 */ + async appForMoney(req: Request, body: AppForMoneyDto) { + const { id: userId } = req.user; + const { withdrawalAmount, withdrawalChannels, contactInformation, remark } = body; + const salesAllowDrawMoney = (await this.globalConfigService.getConfigs(['salesAllowDrawMoney'])) || 10; + if (typeof withdrawalAmount !== 'number' || withdrawalAmount <= 0) { + throw new HttpException('提现金额必须为数字且大于0', HttpStatus.BAD_REQUEST); + } + if (Number(withdrawalAmount) < Number(salesAllowDrawMoney)) { + throw new HttpException(`提现金额最低必须为${salesAllowDrawMoney}元`, HttpStatus.BAD_REQUEST); + } + + const salesBalanceInfo = await this.salesUsersEntity.findOne({ where: { userId } }); + const { distributionBalance, drawMoneyIn } = salesBalanceInfo; + if (Number(distributionBalance) < Number(withdrawalAmount)) { + throw new HttpException('提现金额不足', HttpStatus.BAD_REQUEST); + } + + /* 扣完之后还剩多少 */ + const newDistributionBalance = new Decimal(distributionBalance).minus(withdrawalAmount).toNumber(); + + /* 记录工单 */ + const orderInfo = { userId, withdrawalAmount, orderStatus: 0, auditStatus: 0, withdrawalChannels, contactInformation, remark }; + await this.createOrder(orderInfo); + + /* 修改账户信息 */ + const res = await this.salesUsersEntity.update( + { userId }, + { distributionBalance: newDistributionBalance, drawMoneyIn: new Decimal(drawMoneyIn).plus(withdrawalAmount).toNumber() }, + ); + } + + /* 获取我的工单 */ + async drawMoneyOrder(req: Request, query: drawMoneyOrderDto) { + const { id: userId } = req.user; + const { page, size } = query; + const [rows, count] = await this.salesOrderEntity.findAndCount({ + where: { userId }, + order: { createdAt: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const auditUserIds = rows.map((item) => item.auditUserId); + const userInfos = await this.userEntity.find({ where: { id: In(auditUserIds) } }); + rows.forEach((item: any) => { + const curUserInfo = userInfos.find((user) => user.id === item.auditUserId); + item.auditUserName = curUserInfo ? curUserInfo.username : ''; + }); + + return { + rows: formatCreateOrUpdateDate(rows), + count, + }; + } + + /* 管理员获取工单 */ + async salesOrder(req: Request, query: salesOrderDto) { + const { page, size } = query; + const where: any = {}; + query.orderStatus !== undefined && query.orderStatus !== '' && (where.orderStatus = query.orderStatus); + query.withdrawalChannels && (where.withdrawalChannels = query.withdrawalChannels); + const [rows, count] = await this.salesOrderEntity.findAndCount({ + where, + order: { createdAt: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const userIds = rows.map((item) => item.userId); + const userInfo = await this.userEntity.find({ where: { id: In(userIds) } }); + rows.forEach((item: any) => { + const curUser = userInfo.find((user) => user.id === item.userId); + if (curUser) { + const { username, email, avatar } = curUser; + item.userInfo = { username, avatar, email: hideString(email) }; + } + }); + return { + rows: formatCreateOrUpdateDate(rows), + count, + }; + } + + /* 创建工单 */ + async createOrder(orderInfo) { + try { + return await this.salesOrderEntity.save(orderInfo); + } catch (error) { + console.log('error: ', error); + throw new HttpException('创建提现工单失败', HttpStatus.BAD_REQUEST); + } + } + + /* 审核工单 */ + async auditOrder(req: Request, body: AuditOrderDto) { + try { + const { id: userId } = req.user; + const { id, status } = body; + if (![1, -1].includes(status)) { + throw new HttpException('审核状态错误', HttpStatus.BAD_REQUEST); + } + const orderInfo = await this.salesOrderEntity.findOne({ where: { id } }); + if (orderInfo.orderStatus !== 0) { + throw new HttpException('该工单已审核过', HttpStatus.BAD_REQUEST); + } + const userBalanceInfo = await this.salesUsersEntity.findOne({ where: { userId: orderInfo.userId } }); + const { withdrawalAmount, drawMoneyIn } = userBalanceInfo; + /* 修改用户账户金额 本次提现金额+ 已经提现的金额 = 已提现金额 审核过不过都需要修改用户的 只是工单状态不同 */ + const newWithdrawalAmount = new Decimal(withdrawalAmount).plus(orderInfo.withdrawalAmount).toNumber(); // 已提现金额 + const newDrawMoneyIn = new Decimal(drawMoneyIn).minus(orderInfo.withdrawalAmount).toNumber(); // 提现中金额 + await this.salesUsersEntity.update({ userId: orderInfo.userId }, { withdrawalAmount: newWithdrawalAmount, drawMoneyIn: newDrawMoneyIn }); + /* 修改工单信息 */ + await this.salesOrderEntity.update({ id }, { orderStatus: status, auditStatus: status, auditUserId: userId, paymentStatus: status }); + return '审核完成'; + } catch (error) { + console.log('error: ', error); + throw new HttpException('审核失败', HttpStatus.BAD_REQUEST); + } + } + + /* 查询用户佣金账户 */ + async salesUserList(req: Request, query: SalesUserListDto) { + const { page, size, salesOutletName, performanceRatio } = query; + const where: any = {}; + salesOutletName && (where.salesOutletName = Like(`%${salesOutletName}%`)); + performanceRatio && (where.performanceRatio = performanceRatio); + const [rows, count] = await this.salesUsersEntity.findAndCount({ + where, + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const userIds = rows.map((item) => item.userId); + const userInfos = await this.userEntity.find({ where: { id: In(userIds) } }); + rows.forEach((item: any) => { + const curUserInfo = userInfos.find((user) => user.id === item.userId); + item.userInfo = curUserInfo ? curUserInfo : {}; + }); + if (req.user.role !== 'super') { + rows.forEach((item: any) => { + item.userInfo.email = item.userInfo?.email ? hideString(item.userInfo?.email) : ''; + }); + } + return { rows, count }; + } + + /* 修改用户佣金账户 */ + async updateUserSales(req, body: UpdateUserSalesDto) { + const { performanceRatio, salesOutletName, userId } = body; + const salesU = await this.salesUsersEntity.findOne({ where: { userId } }); + if (!salesU) { + throw new HttpException('用户不存在', HttpStatus.BAD_REQUEST); + } + const res = await this.salesUsersEntity.update({ userId }, { performanceRatio, salesOutletName }); + if (res.affected > 0) { + return '修改成功'; + } else { + throw new HttpException('修改失败', HttpStatus.BAD_REQUEST); + } + } +} diff --git a/service/src/modules/sales/salesOrder.entity.ts b/service/src/modules/sales/salesOrder.entity.ts new file mode 100644 index 0000000..52177cf --- /dev/null +++ b/service/src/modules/sales/salesOrder.entity.ts @@ -0,0 +1,33 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'sales_order' }) +export class SalesOrderEntity extends BaseEntity { + @Column({ comment: '申请提现人用户Id' }) + userId: number; + + @Column({ comment: '申请提现的金额' }) + withdrawalAmount: number; + + @Column({ comment: '工单状态' }) + orderStatus: number; + + @Column({ comment: '审核状态' }) + auditStatus: number; + + @Column({ comment: '审核人', nullable: true }) + auditUserId: number; + + @Column({ comment: '打款状态', nullable: true }) + paymentStatus: number; + + @Column({ comment: '提现渠道 1: 支付宝 2: 微信', nullable: true }) + withdrawalChannels: number; + + @Column({ comment: '提现联系信息、备注即可', nullable: true }) + contactInformation: string; + + @Column({ comment: '提现备注留言', nullable: true }) + remark: string; +} diff --git a/service/src/modules/sales/salesRecords.entity.ts b/service/src/modules/sales/salesRecords.entity.ts new file mode 100644 index 0000000..2837b57 --- /dev/null +++ b/service/src/modules/sales/salesRecords.entity.ts @@ -0,0 +1,24 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'sales_records' }) +export class SalesRecordsEntity extends BaseEntity { + @Column({ comment: '邀请人ID' }) + inviterUserId: number; + + @Column({ comment: '被邀请人ID' }) + inviteeUserId: number; + + @Column({ comment: '订单ID' }) + orderId: string; + + @Column({ comment: '订单价格', type: 'decimal', scale: 2, precision: 10 }) + orderPrice: number; + + @Column({ comment: '佣金金额', type: 'decimal', scale: 2, precision: 10 }) + commissionAmount: number; + + @Column({ comment: '佣金比例', type: 'decimal', scale: 2, precision: 10 }) + commissionPercentage: number; +} diff --git a/service/src/modules/sales/salesUsers.entity.ts b/service/src/modules/sales/salesUsers.entity.ts new file mode 100644 index 0000000..1583738 --- /dev/null +++ b/service/src/modules/sales/salesUsers.entity.ts @@ -0,0 +1,30 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'sales_users' }) +export class SalesUsersEntity extends BaseEntity { + @Column({ comment: '分销人用户Id' }) + userId: number; + + @Column({ comment: '分销人的提成比例' }) + performanceRatio: number; + + @Column({ comment: '分销人的自定义称号等级', nullable: true }) + salesOutletName: string; + + @Column({ comment: '分销人账户总金额', type: 'decimal', scale: 2, precision: 10, default: 0 }) + totalAmount: number; + + @Column({ comment: '分销人账户已经提现金额', type: 'decimal', scale: 2, precision: 10, default: 0 }) + withdrawalAmount: number; + + @Column({ comment: '分销人账户可提现金额', type: 'decimal', scale: 2, precision: 10, default: 0 }) + distributionBalance: number; + + @Column({ comment: '分销人账户正在提现的金额', type: 'decimal', scale: 2, precision: 10, default: 0 }) + drawMoneyIn: number; + + @Column({ comment: '累计成功提成的订单量', default: 0 }) + orderCount: number; +} diff --git a/service/src/modules/signin/signIn.entity.ts b/service/src/modules/signin/signIn.entity.ts new file mode 100644 index 0000000..cae6f56 --- /dev/null +++ b/service/src/modules/signin/signIn.entity.ts @@ -0,0 +1,18 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'signin' }) +export class SigninEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '签到日期' }) + signInDate: string; + + @Column({ comment: '签到时间' }) + signInTime: Date; + + @Column({ default: false }) + isSigned: boolean; +} diff --git a/service/src/modules/signin/signin.controller.ts b/service/src/modules/signin/signin.controller.ts new file mode 100644 index 0000000..9046b56 --- /dev/null +++ b/service/src/modules/signin/signin.controller.ts @@ -0,0 +1,27 @@ +import { Controller, Get, Post, UseGuards, Req } from '@nestjs/common'; +import { SigninService } from './signin.service'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { Request } from 'express'; + +@ApiTags('signIn') +@Controller('signin') +export class SigninController { + constructor(private readonly signinService: SigninService) {} + + @Post('sign') + @ApiOperation({ summary: '用户签到' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async sign(@Req() req: Request) { + return await this.signinService.sign(req); + } + + @Get('signinLog') + @ApiOperation({ summary: '获取用户签到信息' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getSigninLog(@Req() req: Request) { + return await this.signinService.getSigninLog(req); + } +} diff --git a/service/src/modules/signin/signin.module.ts b/service/src/modules/signin/signin.module.ts new file mode 100644 index 0000000..66398f9 --- /dev/null +++ b/service/src/modules/signin/signin.module.ts @@ -0,0 +1,16 @@ +import { Global, Module } from '@nestjs/common'; +import { SigninController } from './signin.controller'; +import { SigninService } from './signin.service'; +import { Type } from 'class-transformer'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { SigninEntity } from './signIn.entity'; +import { UserEntity } from '../user/user.entity'; + +@Global() +@Module({ + imports: [TypeOrmModule.forFeature([SigninEntity, UserEntity])], + controllers: [SigninController], + providers: [SigninService], + exports: [SigninService], +}) +export class SigninModule {} diff --git a/service/src/modules/signin/signin.service.ts b/service/src/modules/signin/signin.service.ts new file mode 100644 index 0000000..c3a956f --- /dev/null +++ b/service/src/modules/signin/signin.service.ts @@ -0,0 +1,109 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { HttpException, HttpStatus, Injectable, Logger, Global } from '@nestjs/common'; +import { Request } from 'express'; +import { SigninEntity } from './signIn.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import dayjs from '@/common/utils/date'; +import { UserEntity } from '../user/user.entity'; +import { RechargeType } from '@/common/constants/balance.constant'; + +@Injectable() +export class SigninService { + constructor( + @InjectRepository(SigninEntity) + private readonly signinEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + private readonly userBalanceService: UserBalanceService, + private readonly globalConfigService: GlobalConfigService, + ) {} + + async sign(req: Request) { + const { id: userId } = req.user; + /* 使用格式化时间记录 */ + const formattedDate = dayjs(new Date()).format('YYYY-MM-DD'); + // 查询用户今天的签到记录 + const existingSignin = await this.signinEntity.findOne({ + where: { userId, signInDate: formattedDate }, + }); + /* 今日已签到 */ + if (existingSignin) { + throw new HttpException('今日已签到、改天再来吧!.', HttpStatus.BAD_REQUEST); + } + /* 查询签到赠送奖励 并优先检测是否开启了赠送状态 */ + const { model3Count, model4Count, drawMjCount } = await this.globalConfigService.getSignatureGiftConfig(); + + /* 创建新的签到记录 */ + await this.signinEntity.save({ + userId: userId, + signInTime: new Date(), + signInDate: formattedDate, + isSigned: true, + }); + + await this.userBalanceService.addBalanceToUser(userId, { model3Count, model4Count, drawMjCount }); + /* 记录日志 */ + await this.userBalanceService.saveRecordRechargeLog({ userId, rechargeType: RechargeType.SIGN_IN, model3Count, model4Count, drawMjCount }); + /* 判断是否连续签到 */ + const yesterday = dayjs(new Date()).subtract(1, 'day').format('YYYY-MM-DD'); + const previousSignin = await this.signinEntity.findOne({ + where: { userId: userId, signInDate: yesterday }, + }); + /* 昨天签到了 连续签到 增加连续签到日期 */ + if (previousSignin) { + Logger.debug(`用户${userId}昨天签到了、今天是连续签到!`, 'SigninService'); + const userInfo = await this.userEntity.findOne({ where: { id: userId } }); + if (!userInfo) { + throw new HttpException('用户不存在', HttpStatus.BAD_REQUEST); + } + const { consecutiveDays = 0 } = userInfo; + await this.userEntity.update({ id: userId }, { consecutiveDays: consecutiveDays + 1 }); + } else { + Logger.debug(`用户${userId}昨天没签到、今天重置天数!`, 'SigninService'); + await this.userEntity.update({ id: userId }, { consecutiveDays: 1 }); + } + + return 'Sign in successful.'; + } + + async getSigninLog(req: Request) { + try { + const { id: userId } = req.user; + const firstDay = dayjs().startOf('month').format('YYYY-MM-DD HH:mm:ss'); + const lastDay = dayjs().endOf('month').format('YYYY-MM-DD HH:mm:ss'); + const queryBuilder = this.signinEntity.createQueryBuilder('signin'); + const signInData = await queryBuilder + .select('signin.signInDate as signInDate, signin.isSigned as isSigned') + .andWhere('signin.userId = :userId', { userId: req.user.id }) + .andWhere('signin.signInTime >= :firstDay', { firstDay }) + .andWhere('signin.signInTime <= :lastDay', { lastDay }) + .getRawMany(); + const startDate = new Date(firstDay); + const endDate = new Date(lastDay); + const dateRange = []; + const currentDate = new Date(startDate); + /* 组装最近三十天结构 */ + while (currentDate <= endDate) { + dateRange.push(dayjs(new Date(currentDate)).format('YYYY-MM-DD')); + currentDate.setDate(currentDate.getDate() + 1); + } + const res = []; + // 检查每一天是否有数据,若无则添加默认数据 + for (const date of dateRange) { + const existingData = signInData.find((item) => item.signInDate === date); + if (!existingData) { + res.push({ signInDate: date, isSigned: false }); + } else { + existingData.isSigned = true; + res.push(existingData); + } + } + return res; + } catch (error) { + console.log('error: ', error); + throw new HttpException('获取签到数据失败!', HttpStatus.BAD_REQUEST); + } + } +} diff --git a/service/src/modules/statistic/dto/queryStatisticDto.dto.ts b/service/src/modules/statistic/dto/queryStatisticDto.dto.ts new file mode 100644 index 0000000..f80cf78 --- /dev/null +++ b/service/src/modules/statistic/dto/queryStatisticDto.dto.ts @@ -0,0 +1,8 @@ +import { IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class QueryStatisticDto { + @ApiProperty({ example: 7, description: '查询最近N天的数据', required: true }) + days: number; +} diff --git a/service/src/modules/statistic/statistic.controller.ts b/service/src/modules/statistic/statistic.controller.ts new file mode 100644 index 0000000..e4560a5 --- /dev/null +++ b/service/src/modules/statistic/statistic.controller.ts @@ -0,0 +1,36 @@ +import { StatisticService } from './statistic.service'; +import { Controller, Get, Query, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { QueryStatisticDto } from './dto/queryStatisticDto.dto'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; + +@ApiTags('statistic') +@Controller('statistic') +export class StatisticController { + constructor(private readonly statisticService: StatisticService) {} + + @Get('base') + @ApiOperation({ summary: '获取基础统计数据' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + getBaseStatistic() { + return this.statisticService.getBaseStatistic(); + } + + @Get('chatStatistic') + @ApiOperation({ summary: '获取聊天绘画统计数据' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + getChatStatistic(@Query() params: QueryStatisticDto) { + return this.statisticService.getChatStatistic(params); + } + + @Get('baiduVisit') + @ApiOperation({ summary: '获取百度统计数据' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + getBaiduStatistics(@Query() params: QueryStatisticDto) { + return this.statisticService.getBaiduVisit(params); + } +} diff --git a/service/src/modules/statistic/statistic.module.ts b/service/src/modules/statistic/statistic.module.ts new file mode 100644 index 0000000..db623cb --- /dev/null +++ b/service/src/modules/statistic/statistic.module.ts @@ -0,0 +1,16 @@ +import { Module } from '@nestjs/common'; +import { StatisticController } from './statistic.controller'; +import { StatisticService } from './statistic.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { UserEntity } from '../user/user.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { OrderEntity } from '../order/order.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; + +@Module({ + imports: [TypeOrmModule.forFeature([UserEntity, ChatLogEntity, ConfigEntity, OrderEntity, MidjourneyEntity])], + controllers: [StatisticController], + providers: [StatisticService], +}) +export class StatisticModule {} diff --git a/service/src/modules/statistic/statistic.service.ts b/service/src/modules/statistic/statistic.service.ts new file mode 100644 index 0000000..9a70447 --- /dev/null +++ b/service/src/modules/statistic/statistic.service.ts @@ -0,0 +1,276 @@ +import { HttpException, HttpStatus, Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { UserEntity } from '../user/user.entity'; +import { In, Repository } from 'typeorm'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { DeductionKey } from '@/common/constants/balance.constant'; +import { formatDate } from '@/common/utils/date'; +import axios from 'axios'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { OrderEntity } from '../order/order.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; +import { MidjourneyActionEnum, MidjourneyStatusEnum } from '@/common/constants/midjourney.constant'; + +@Injectable() +export class StatisticService { + constructor( + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + @InjectRepository(ChatLogEntity) + private readonly chatLogEntity: Repository, + @InjectRepository(ConfigEntity) + private readonly configEntity: Repository, + @InjectRepository(OrderEntity) + private readonly orderEntity: Repository, + @InjectRepository(MidjourneyEntity) + private readonly midjourneyEntity: Repository, + ) {} + + /* 基础数据统计 */ + async getBaseStatistic() { + const userCount = await this.countUsers(); + const newUserCount = await this.countNewUsersToday(); + const chatCount = await this.countChats(); + const newChatCount = await this.countNewChatsToday(); + const drawCount = await this.countDraws(); + const dellDrawCount = await this.countNewDrawsToday(); + const mjDrawCount = await this.countNewMidhourneysToday(); + const orderCount = await this.countOrders(); + const newOrderCount = await this.countNewOrdersToday(); + return { + userCount, + newUserCount, + chatCount, + newChatCount, + drawCount, + newDrawCount: mjDrawCount + dellDrawCount, + orderCount, + newOrderCount, + }; + } + + /* 聊天记录统计 */ + async getChatStatistic({ days = 7 }) { + const chatData = await this.countChatsByTimeRange(days); + const drawData = await this.countDrawsByTimeRange(days); + const mjDrawData: any = await this.countMjDrawsByTimeRange(days); + return { + date: chatData.map((item) => item.date), + chat: chatData.map((item: any) => item.value), + draw: drawData.map((item: any, index) => { + return item.value + mjDrawData[index].value; + }), + }; + } + + /* 查询百度统计数据 */ + async getBaiduVisit({ days = 7 }) { + const data = await this.getBaiduStatistics(days); + return data; + } + + /* 查询用户总数 */ + async countUsers(): Promise { + const userCount = await this.userEntity.count(); + return userCount; + } + + /* 当天新增用户 */ + async countNewUsersToday(): Promise { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); + const queryBuilder = this.userEntity.createQueryBuilder('user'); + const userCount = await queryBuilder.where('user.createdAt >= :today', { today }).andWhere('user.createdAt < :tomorrow', { tomorrow }).getCount(); + return userCount; + } + + /* 聊天次数总数 */ + async countChats(): Promise { + const chatCount = await this.chatLogEntity.count({ where: { type: DeductionKey.CHAT_TYPE } }); + return chatCount; + } + + /* 当日聊天新增次数 */ + async countNewChatsToday(): Promise { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); + const queryBuilder = this.chatLogEntity.createQueryBuilder('chatLog'); + const chatCount = await queryBuilder + .where('chatLog.type = :type', { type: DeductionKey.CHAT_TYPE }) + .andWhere('chatLog.createdAt >= :today', { today }) + .andWhere('chatLog.createdAt < :tomorrow', { tomorrow }) + .getCount(); + return chatCount; + } + + /* 绘画次数总数 */ + async countDraws(): Promise { + const drawCount = await this.chatLogEntity.count({ where: { type: DeductionKey.PAINT_TYPE } }); + return drawCount; + } + + /* 当日新增绘画次数 */ + async countNewDrawsToday(): Promise { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); + const queryBuilder = this.chatLogEntity.createQueryBuilder('chatLog'); + const drawCount = await queryBuilder + .where('chatLog.type = :type', { type: DeductionKey.PAINT_TYPE }) + .andWhere('chatLog.createdAt >= :today', { today }) + .andWhere('chatLog.createdAt < :tomorrow', { tomorrow }) + .getCount(); + return drawCount; + } + + /* 统计midjourney表今日新增数量 */ + async countNewMidhourneysToday(): Promise { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); + const queryBuilder = this.midjourneyEntity.createQueryBuilder('midjourney'); + const midjourneyCount = await queryBuilder + .where('midjourney.createdAt >= :today', { today }) + .andWhere('midjourney.createdAt < :tomorrow', { tomorrow }) + .getCount(); + return midjourneyCount; + } + + /* 统计一段时间内的聊天数据 */ + async countChatsByTimeRange(days: number): Promise<{ date: string; count: number }[]> { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const startDate = new Date(today.getTime() - (days - 1) * 24 * 60 * 60 * 1000); + const queryBuilder = this.chatLogEntity.createQueryBuilder('chatlog'); + const result = await queryBuilder + .select(`DATE(chatlog.createdAt) as date, COUNT(*) as count`) + .where(`chatlog.type = :type`, { type: DeductionKey.CHAT_TYPE }) + .andWhere('chatlog.createdAt >= :startDate', { startDate }) + .groupBy('date') + .orderBy('date') + .getRawMany<{ date: string; count: number }>(); + const dailyData = []; + const currentDate = startDate; + for (let i = 0; i < days; i++) { + const dateString = formatDate(new Date(currentDate), 'M.DD'); + const count = result.find((r: any) => formatDate(new Date(r.date), 'M.DD') === dateString)?.count ?? 0; + if (count > 0) { + dailyData.push({ date: dateString, value: Number(count) }); + } else { + dailyData.push({ date: dateString, value: 0 }); + } + currentDate.setDate(currentDate.getDate() + 1); + } + return dailyData; + } + + /* 统计一段时间内的绘画次数 */ + async countDrawsByTimeRange(days: number): Promise<{ date: string; count: number }[]> { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const startDate = new Date(today.getTime() - (days - 1) * 24 * 60 * 60 * 1000); + const queryBuilder = this.chatLogEntity.createQueryBuilder('chatlog'); + const result = await queryBuilder + .select(`DATE(chatlog.createdAt) as date, COUNT(*) as count`) + .where(`chatlog.type = :type`, { type: DeductionKey.PAINT_TYPE }) + .andWhere('chatlog.createdAt >= :startDate', { startDate }) + .groupBy('date') + .orderBy('date') + .getRawMany<{ date: string; count: number }>(); + const dailyData = []; + const currentDate = startDate; + for (let i = 0; i < days; i++) { + const dateString = formatDate(new Date(currentDate), 'M.DD'); + const count = result.find((r: any) => formatDate(new Date(r.date), 'M.DD') === dateString)?.count ?? 0; + if (count > 0) { + dailyData.push({ date: dateString, value: Number(count) }); + } else { + dailyData.push({ date: dateString, value: 0 }); + } + currentDate.setDate(currentDate.getDate() + 1); + } + return dailyData; + } + + /* 统计一段时间内的mj的绘画次数 */ + async countMjDrawsByTimeRange(days: number): Promise<{ date: string; count: number }[]> { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const startDate = new Date(today.getTime() - (days - 1) * 24 * 60 * 60 * 1000); + const queryBuilder = this.midjourneyEntity.createQueryBuilder('midjourney'); + const result = await queryBuilder + .select(`DATE(midjourney.createdAt) as date, COUNT(*) as count`) + .where(`midjourney.status = :status`, { status: MidjourneyStatusEnum.DRAWED }) + .andWhere('midjourney.createdAt >= :startDate', { startDate }) + .groupBy('date') + .orderBy('date') + .getRawMany<{ date: string; count: number }>(); + const dailyData = []; + const currentDate = startDate; + for (let i = 0; i < days; i++) { + const dateString = formatDate(new Date(currentDate), 'M.DD'); + const count = result.find((r: any) => formatDate(new Date(r.date), 'M.DD') === dateString)?.count ?? 0; + if (count > 0) { + dailyData.push({ date: dateString, value: Number(count) }); + } else { + dailyData.push({ date: dateString, value: 0 }); + } + currentDate.setDate(currentDate.getDate() + 1); + } + return dailyData; + } + + /* 获取百度统计数据 */ + async getBaiduStatistics(days): Promise<{ date: string; count: number }[]> { + const end_date = formatDate(new Date(), 'YYYYMMDD'); + const start_date = formatDate(new Date(Date.now() - Number(days - 1) * 24 * 60 * 60 * 1000), 'YYYYMMDD'); + const metrics = 'pv_count,visitor_count,ip_count,bounce_ratio,avg_visit_time'; + const method = 'overview/getTimeTrendRpt'; + const configInfo = await this.configEntity.find({ where: { configKey: In(['baiduToken', 'baiduSiteId']) } }); + const siteId = configInfo.find((c) => c.configKey === 'baiduSiteId')?.configVal; + const accessToken = configInfo.find((c) => c.configKey === 'baiduToken')?.configVal; + if (!siteId || !accessToken) { + return []; + } + if (!siteId) { + throw new HttpException('请先配置百度统计siteId', HttpStatus.BAD_REQUEST); + } + if (!accessToken) { + throw new HttpException('请先配置百度统计accessToken', HttpStatus.BAD_REQUEST); + } + const url = `https://openapi.baidu.com/rest/2.0/tongji/report/getData?access_token=${accessToken}&site_id=${siteId}&method=${method}&start_date=${start_date}&end_date=${end_date}&metrics=${metrics}`; + const res = await axios.get(url); + const { error_code, message } = res.data; + if (error_code === 111) { + /* 自动刷新 */ + throw new HttpException(message || '百度授权码过期', HttpStatus.BAD_REQUEST); + } + /* 其他错误 */ + if (error_code && error_code !== 200) { + throw new HttpException(message || '获取百度统计数据失败', HttpStatus.BAD_REQUEST); + } + /* 格式化数据 */ + return res.data.result; + } + + /* 订单总次数 */ + async countOrders(): Promise { + const orderCount = await this.orderEntity.count(); + return orderCount; + } + + /* 今日新增订单 */ + async countNewOrdersToday(): Promise { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000); + const queryBuilder = this.orderEntity.createQueryBuilder('order'); + const orderCount = await queryBuilder + .where('order.createdAt >= :today', { today }) + .andWhere('order.createdAt < :tomorrow', { tomorrow }) + .getCount(); + return orderCount; + } +} diff --git a/service/src/modules/task/task.module.ts b/service/src/modules/task/task.module.ts new file mode 100644 index 0000000..80254be --- /dev/null +++ b/service/src/modules/task/task.module.ts @@ -0,0 +1,11 @@ +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Module } from '@nestjs/common'; +import { TaskService } from './task.service'; +import { ScheduleModule } from '@nestjs/schedule'; +import { UserBalanceEntity } from '../userBalance/userBalance.entity'; + +@Module({ + imports: [ScheduleModule.forRoot(), TypeOrmModule.forFeature([UserBalanceEntity])], + providers: [TaskService], +}) +export class TaskModule {} diff --git a/service/src/modules/task/task.service.ts b/service/src/modules/task/task.service.ts new file mode 100644 index 0000000..bdada2c --- /dev/null +++ b/service/src/modules/task/task.service.ts @@ -0,0 +1,47 @@ +import { GlobalConfigService } from './../globalConfig/globalConfig.service'; +import { Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import { Cron, CronExpression } from '@nestjs/schedule'; +import { UserBalanceEntity } from '../userBalance/userBalance.entity'; +import { InjectRepository } from '@nestjs/typeorm'; +import { In, LessThanOrEqual, MoreThan, Repository } from 'typeorm'; +import { ModelsService } from '../models/models.service'; + +@Injectable() +export class TaskService { + constructor( + @InjectRepository(UserBalanceEntity) + private readonly userBalanceEntity: Repository, + private readonly globalConfigService: GlobalConfigService, + private readonly modelsService: ModelsService, + ) { } + + /* 每小时刷新一次微信的token */ + @Cron(CronExpression.EVERY_HOUR) + handleCron() { + Logger.debug('Automatically refresh WeChat access every hour Token', 'TaskService'); + this.globalConfigService.getWechatAccessToken(); + } + + /* 每两钟执行一次检测会员过期任务 */ + // @Cron(CronExpression.EVERY_2_SECONDS) + @Cron(CronExpression.EVERY_5_MINUTES) + async checkUserMemerExpire() { + const expireUsers = await this.userBalanceEntity.find({ + where: { expirationTime: LessThanOrEqual(new Date()) }, + }); + if (!expireUsers || !expireUsers.length) return; + expireUsers.forEach((user: any) => { + this.userBalanceEntity + .update({ id: user.id }, { expirationTime: null, packageId: 0, memberModel3Count: 0, memberModel4Count: 0, memberDrawMjCount: 0 }) + .then((res) => { + Logger.debug(`${user.id}会员已到期、清空所有余额并移除会员身份!`, 'TaskService'); + }); + }); + } + + /* 每小时检测一次授权 */ + // @Cron('0 0 */5 * *') + // refreshBaiduAccesstoken() { + // this.modelsService.refreshBaiduAccesstoken(); + // } +} diff --git a/service/src/modules/upload/upload.controller.ts b/service/src/modules/upload/upload.controller.ts new file mode 100644 index 0000000..ab9c061 --- /dev/null +++ b/service/src/modules/upload/upload.controller.ts @@ -0,0 +1,23 @@ +import { UploadService } from './upload.service'; +import { Controller, Get, Post, UploadedFile, UseInterceptors } from '@nestjs/common'; +import { ApiOperation, ApiTags } from '@nestjs/swagger'; +import { FileInterceptor } from '@nestjs/platform-express'; + +@ApiTags('upload') +@Controller('upload') +export class UploadController { + constructor(private readonly uploadService: UploadService) {} + + @Post('file') + @ApiOperation({ summary: '上传文件' }) + @UseInterceptors(FileInterceptor('file')) + async uploadFile(@UploadedFile() file) { + return this.uploadService.uploadFile(file); + } + + @Get('test') + @ApiOperation({ summary: '测试' }) + async test() { + return this.uploadService.test(); + } +} diff --git a/service/src/modules/upload/upload.module.ts b/service/src/modules/upload/upload.module.ts new file mode 100644 index 0000000..402fc62 --- /dev/null +++ b/service/src/modules/upload/upload.module.ts @@ -0,0 +1,11 @@ +import { Global, Module } from '@nestjs/common'; +import { UploadService } from './upload.service'; +import { UploadController } from './upload.controller'; + +@Global() +@Module({ + providers: [UploadService], + controllers: [UploadController], + exports: [UploadService], +}) +export class UploadModule {} diff --git a/service/src/modules/upload/upload.service.ts b/service/src/modules/upload/upload.service.ts new file mode 100644 index 0000000..4f26169 --- /dev/null +++ b/service/src/modules/upload/upload.service.ts @@ -0,0 +1,291 @@ +import { HttpException, HttpStatus, Injectable, Logger, OnModuleInit } from '@nestjs/common'; +import * as TENCENTCOS from 'cos-nodejs-sdk-v5'; +import * as ALIOSS from 'ali-oss'; +import cosConfig from '@/config/cos'; +import axios from 'axios'; +import * as streamToBuffer from 'stream-to-buffer'; +import { createRandomUid, removeSpecialCharacters } from '@/common/utils'; +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import * as FormData from 'form-data'; + +@Injectable() +export class UploadService implements OnModuleInit { + constructor(private readonly globalConfigService: GlobalConfigService) { } + private tencentCos: any; + + onModuleInit() { } + + async uploadFile(file) { + const { filename: name, originalname, buffer, dir = 'ai', mimetype } = file; + const fileTyle = mimetype ? mimetype.split('/')[1] : ''; + const filename = originalname || name + Logger.debug(`准备上传文件: ${filename}, 类型: ${fileTyle}`, 'UploadService'); + + const { + tencentCosStatus = 0, + aliOssStatus = 0, + cheveretoStatus = 0, + } = await this.globalConfigService.getConfigs(['tencentCosStatus', 'aliOssStatus', 'cheveretoStatus']); + + + Logger.debug(`上传配置状态 - 腾讯云: ${tencentCosStatus}, 阿里云: ${aliOssStatus}, Chevereto: ${cheveretoStatus}`, 'UploadService'); + + if (!Number(tencentCosStatus) && !Number(aliOssStatus) && !Number(cheveretoStatus)) { + throw new HttpException('请先前往后台配置上传图片的方式', HttpStatus.BAD_REQUEST); + } + try { + if (Number(tencentCosStatus)) { + Logger.debug(`使用腾讯云COS上传`, 'UploadService'); + return await this.uploadFileByTencentCos({ filename, buffer, dir, fileTyle }); + } + if (Number(aliOssStatus)) { + Logger.debug(`使用阿里云OSS上传`, 'UploadService'); + return await this.uploadFileByAliOss({ filename, buffer, dir, fileTyle }); + } + if (Number(cheveretoStatus)) { + Logger.debug(`使用Chevereto上传`, 'UploadService'); + const { filename, buffer: fromBuffer, dir } = file; + return await this.uploadFileByChevereto({ filename, buffer: fromBuffer.toString('base64'), dir, fileTyle }); + } + } catch (error) { + Logger.error(`上传失败: ${error.message}`, 'UploadService'); + throw error; // 重新抛出异常,以便调用方可以处理 + } + } + + async getUploadType() { + const { + tencentCosStatus = 0, + aliOssStatus = 0, + cheveretoStatus = 0, + } = await this.globalConfigService.getConfigs(['tencentCosStatus', 'aliOssStatus', 'cheveretoStatus']); + if (Number(tencentCosStatus)) { + return 'tencent'; + } + if (Number(aliOssStatus)) { + return 'ali'; + } + if (Number(cheveretoStatus)) { + return 'chevereto'; + } + } + + async uploadFileFromUrl({ filename, url, dir = 'mj' }) { + dir = process.env.ISDEV ? 'mjdev' : dir; + const { + tencentCosStatus = 0, + aliOssStatus = 0, + cheveretoStatus = 0, + } = await this.globalConfigService.getConfigs(['tencentCosStatus', 'aliOssStatus', 'cheveretoStatus']); + + if (!Number(tencentCosStatus) && !Number(aliOssStatus) && !Number(cheveretoStatus)) { + throw new HttpException('请先前往后台配置上传图片的方式', HttpStatus.BAD_REQUEST); + } + if (Number(tencentCosStatus)) { + return this.uploadFileByTencentCosFromUrl({ filename, url, dir }); + } + if (Number(aliOssStatus)) { + const res = await this.uploadFileByAliOssFromUrl({ filename, url, dir }); + return res; + } + if (Number(cheveretoStatus)) { + return await this.uploadFileByCheveretoFromUrl({ filename, url, dir }); + } + } + + /* 通过腾讯云上传图片 */ + async uploadFileByTencentCos({ filename, buffer, dir, fileTyle }) { + const { Bucket, Region, SecretId, SecretKey } = await this.getUploadConfig('tencent'); + this.tencentCos = new TENCENTCOS({ SecretId, SecretKey, FileParallelLimit: 10 }); + try { + return new Promise(async (resolve, reject) => { + const type = fileTyle || 'png' + this.tencentCos.putObject( + { + Bucket: removeSpecialCharacters(Bucket), + Region: removeSpecialCharacters(Region), + Key: `${dir}/${filename || `${createRandomUid()}.${fileTyle}`}`, + StorageClass: 'STANDARD', + Body: buffer, + }, + async (err, data) => { + if (err) { + console.log('cos -> err: ', err); + return reject(err); + } + let locationUrl = data.Location.replace(/^(http:\/\/|https:\/\/|\/\/|)(.*)/, 'https://$2'); + const { acceleratedDomain } = await this.getUploadConfig('tencent'); + if (acceleratedDomain) { + locationUrl = locationUrl.replace(/^(https:\/\/[^/]+)(\/.*)$/, `https://${acceleratedDomain}$2`); + console.log('当前已开启全球加速----------------->', locationUrl); + } + return resolve(locationUrl); + }, + ); + }); + } catch (error) { + console.log('error: ', error); + throw new HttpException('上传图片失败[ten]', HttpStatus.BAD_REQUEST); + } + } + + /* 腾讯云通过url上传mj图片 */ + async uploadFileByTencentCosFromUrl({ filename, url, dir }) { + const { Bucket, Region, SecretId, SecretKey } = await this.getUploadConfig('tencent'); + this.tencentCos = new TENCENTCOS({ SecretId, SecretKey, FileParallelLimit: 10 }); + try { + const proxyMj = (await this.globalConfigService.getConfigs(['mjProxy'])) || 0; + + const buffer = await this.getBufferFromUrl(url); + return await this.uploadFileByTencentCos({ filename, buffer, dir, fileTyle: '' }); + + } catch (error) { + console.log('TODO->error: ', error); + throw new HttpException('上传图片失败[ten][url]', HttpStatus.BAD_REQUEST); + } + } + + /* 通过阿里云上传图片 */ + async uploadFileByAliOss({ filename, buffer, dir, fileTyle = 'png' }) { + const { region, bucket, accessKeyId, accessKeySecret } = await this.getUploadConfig('ali'); + const client = new ALIOSS({ region: removeSpecialCharacters(region), accessKeyId, accessKeySecret, bucket: removeSpecialCharacters(bucket) }); + try { + console.log('ali 开始上传'); + return new Promise((resolve, reject) => { + client + .put(`${dir}/${filename || `${createRandomUid()}.${fileTyle}`}`, buffer) + .then((result) => { + resolve(result.url); + }) + .catch((err) => { + reject(err); + }); + }); + } catch (error) { + throw new HttpException('上传图片失败[ali]', HttpStatus.BAD_REQUEST); + } + } + + /* 阿里云通过url上传mj图片 */ + async uploadFileByAliOssFromUrl({ filename, url, dir }) { + const { region, bucket, accessKeyId, accessKeySecret } = await this.getUploadConfig('ali'); + const client = new ALIOSS({ region, accessKeyId, accessKeySecret, bucket }); + try { + const proxyMj = (await this.globalConfigService.getConfigs(['mjProxy'])) || 0; + if (Number(proxyMj) === 1) { + const data = { url, cosParams: { region, bucket, accessKeyId, accessKeySecret }, cosType: 'aliyun' }; + const mjProxyUrl = (await this.globalConfigService.getConfigs(['mjProxyUrl'])) || 'http://172.247.48.137:8000'; + const res = await axios.post(`${mjProxyUrl}/mj/replaceUpload`, data); + if (!res?.data) throw new HttpException('上传图片失败[ALI][url]', HttpStatus.BAD_REQUEST); + return res.data; + } else { + const buffer = await this.getBufferFromUrl(url); + return await this.uploadFileByAliOss({ filename, buffer, dir }); + } + } catch (error) { + throw new HttpException('上传图片失败[ALI][url]', HttpStatus.BAD_REQUEST); + } + } + + /* 通过三方图床上传图片 */ + async uploadFileByChevereto({ filename = '', buffer, dir = 'ai', fileTyle = 'png' }) { + const { key, uploadPath } = await this.getUploadConfig('chevereto'); + let url = uploadPath.endsWith('/') ? uploadPath.slice(0, -1) : uploadPath; + const formData = new FormData(); + formData.append('source', buffer); + formData.append('key', key); + try { + const res = await axios.post(url, formData, { + headers: { 'X-API-Key': key }, + }); + if (res?.status === 200) { + return res.data.image.url; + } else { + console.log('Chevereto ---> res', res?.data.code, res?.data.error.message); + Logger.error('上传图片失败[Chevereto]', JSON.stringify(res.data)); + } + } catch (error) { + console.log('error: ', error); + throw new HttpException(`上传图片失败[Chevereto|buffer] --> ${error.response?.data.error.message}`, HttpStatus.BAD_REQUEST); + } + } + + /* 通过Url直接上传到图床 */ + async uploadFileByCheveretoFromUrl({ filename, url, dir }) { + try { + const proxyMj = (await this.globalConfigService.getConfigs(['mjProxy'])) || 0; + if (Number(proxyMj) === 1) { + const { key, uploadPath } = await this.getUploadConfig('chevereto'); + let formatUploadPath = uploadPath.endsWith('/') ? uploadPath.slice(0, -1) : uploadPath; + const data = { cosType: 'chevereto', url, cosParams: { key, uploadPath: formatUploadPath } }; + const mjProxyUrl = (await this.globalConfigService.getConfigs(['mjProxyUrl'])) || 'http://172.247.48.137:8000'; + const res = await axios.post(`${mjProxyUrl}/mj/replaceUpload`, data); + if (!res.data) throw new HttpException('上传图片失败[Chevereto][url]', HttpStatus.BAD_REQUEST); + return res.data; + } else { + const buffer = await this.getBufferFromUrl(url); + return await this.uploadFileByChevereto({ filename, buffer, dir }); + } + } catch (error) { + console.log('error: ', error); + throw new HttpException(error.response, HttpStatus.BAD_REQUEST); + } + } + + /* 获取cos上传配置 */ + async getUploadConfig(type) { + if (type === 'ali') { + const { + aliOssRegion: region, + aliOssBucket: bucket, + aliOssAccessKeyId: accessKeyId, + aliOssAccessKeySecret: accessKeySecret, + } = await this.globalConfigService.getConfigs(['aliOssRegion', 'aliOssBucket', 'aliOssAccessKeyId', 'aliOssAccessKeySecret']); + + return { region, bucket, accessKeyId, accessKeySecret }; + } + if (type === 'tencent') { + const { + cosBucket: Bucket, + cosRegion: Region, + cosSecretId: SecretId, + cosSecretKey: SecretKey, + tencentCosAcceleratedDomain: acceleratedDomain, + } = await this.globalConfigService.getConfigs(['cosBucket', 'cosRegion', 'cosSecretId', 'cosSecretKey', 'tencentCosAcceleratedDomain']); + return { Bucket, Region, SecretId, SecretKey, acceleratedDomain }; + } + if (type === 'chevereto') { + const { cheveretoKey: key, cheveretoUploadPath: uploadPath } = await this.globalConfigService.getConfigs([ + 'cheveretoKey', + 'cheveretoUploadPath', + ]); + return { key, uploadPath }; + } + } + + async test() { + const params = { + filename: 'mjtest.png', + dir: 'mj', + url: 'https://cdn.discordapp.com/attachments/1097409128491651135/1169910551275638855/snine_60b5c001b_A_young_girl_smiles_brightly_in_the_pure_blue_f_8a41fe5f-5101-4c1e-b948-a748a0583577.png?ex=65571f1b&is=6544aa1b&hm=b82f2d88224eb7942e24c63a8e519c7693de12a2b96daa0f327dfb8f691b1480&', + }; + const res = await this.uploadFileFromUrl(params); + console.log('res: ', res); + return res; + } + + /* 将MJ图片地址转为buffer */ + async getBufferFromUrl(url) { + const proxyMj = (await this.globalConfigService.getConfigs(['mjProxy'])) || 0; + const response = await axios.get(url, { responseType: 'stream' }); + return new Promise((resolve, reject) => { + streamToBuffer(response.data, (err, buffer) => { + if (err) { + throw new HttpException('获取图片资源失败、请重新试试吧!', HttpStatus.BAD_REQUEST); + } else { + resolve(buffer); + } + }); + }); + } +} diff --git a/service/src/modules/user/dto/queryAllUser.dto.ts b/service/src/modules/user/dto/queryAllUser.dto.ts new file mode 100644 index 0000000..c6256d1 --- /dev/null +++ b/service/src/modules/user/dto/queryAllUser.dto.ts @@ -0,0 +1,33 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class QueryAllUserDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; + + @ApiProperty({ example: '小九', description: '用户姓名', required: false }) + @IsOptional() + username: string; + + @ApiProperty({ example: 'J_longyan@163.com', description: '用户邮箱', required: false }) + @IsOptional() + email: string; + + @ApiProperty({ example: '18888888888', description: '用户手机号码', required: false }) + @IsOptional() + phone: string; + + @ApiProperty({ example: 2, description: '用户状态', required: false }) + @IsOptional() + status: number; + + @ApiProperty({ example: 'super', description: '关键字查询', required: false }) + @IsOptional() + keyword: string; +} diff --git a/service/src/modules/user/dto/queryInviteRecord.dto.ts b/service/src/modules/user/dto/queryInviteRecord.dto.ts new file mode 100644 index 0000000..0a3bbda --- /dev/null +++ b/service/src/modules/user/dto/queryInviteRecord.dto.ts @@ -0,0 +1,13 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class queryInviteRecordDto { + @ApiProperty({ example: 1, description: '查询页数', required: false }) + @IsOptional() + page: number; + + @ApiProperty({ example: 10, description: '每页数量', required: false }) + @IsOptional() + size: number; +} diff --git a/service/src/modules/user/dto/queryOne.dto.ts b/service/src/modules/user/dto/queryOne.dto.ts new file mode 100644 index 0000000..83e8d35 --- /dev/null +++ b/service/src/modules/user/dto/queryOne.dto.ts @@ -0,0 +1,9 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class QueryOneUserDto { + @ApiProperty({ example: 1, nullable: true, description: '查询用户的id', required: false }) + @IsDefined({ message: '用户id是必传参数' }) + id: number; +} diff --git a/service/src/modules/user/dto/resetUserPass.dto.ts b/service/src/modules/user/dto/resetUserPass.dto.ts new file mode 100644 index 0000000..2aed994 --- /dev/null +++ b/service/src/modules/user/dto/resetUserPass.dto.ts @@ -0,0 +1,9 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class ResetUserPassDto { + @ApiProperty({ example: 1, nullable: true, description: '用户id', required: false }) + @IsDefined({ message: '用户id是必传参数' }) + id: number; +} diff --git a/service/src/modules/user/dto/retrieve.dto.ts b/service/src/modules/user/dto/retrieve.dto.ts new file mode 100644 index 0000000..a9afc7e --- /dev/null +++ b/service/src/modules/user/dto/retrieve.dto.ts @@ -0,0 +1,14 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class RetrieveUserDto { + @ApiProperty({ example: 100, nullable: true, description: '查询用户的id', required: false }) + id: number; + + @ApiProperty({ example: 'sfas12', nullable: true, description: 'TODO待完善', required: false }) + secret: string + + @ApiProperty({ example: 100, nullable: true, description: 'TODO待完善', required: false }) + moreId: number +} diff --git a/service/src/modules/user/dto/updateUser.dto.ts b/service/src/modules/user/dto/updateUser.dto.ts new file mode 100644 index 0000000..31c6058 --- /dev/null +++ b/service/src/modules/user/dto/updateUser.dto.ts @@ -0,0 +1,26 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class UpdateUserDto { + @ApiProperty({ example: 'cooper', nullable: true, description: '用户名称', required: false }) + @MinLength(2, { message: '用户名最低需要大于2位数!' }) + @MaxLength(12, { message: '用户名不得超过12位!' }) + @IsNotEmpty({ message: '用户名不能为空!' }) + @IsOptional() + username?: string; + + @ApiProperty({ example: 'https://file.jiangly.com/images/93971628.jpeg', description: '用户头像', required: false }) + @IsNotEmpty({ message: '用户头像不能为空!' }) + @IsOptional() + avatar?: string; + + @ApiProperty({ + example: '我是一台基于深度学习和自然语言处理技术的 AI 机器人,旨在为用户提供高效、精准、个性化的智能服务。', + description: '用户签名', + required: false, + }) + @IsNotEmpty({ message: '用户签名不能为空!' }) + @IsOptional() + sign?: string; +} diff --git a/service/src/modules/user/dto/updateUserStatus.dto.ts b/service/src/modules/user/dto/updateUserStatus.dto.ts new file mode 100644 index 0000000..08d03e4 --- /dev/null +++ b/service/src/modules/user/dto/updateUserStatus.dto.ts @@ -0,0 +1,15 @@ +import { IsNotEmpty, IsDefined, IsIn } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class UpdateUserStatusDto { + @ApiProperty({ example: 2, description: '用户状态', required: false }) + @IsNotEmpty({ message: '用户状态不能为空!' }) + @IsDefined({ message: '用户状态是必传参数' }) + @IsIn([0, 1, 2, 3], { message: '非法参数、用户状态非法!' }) + status: number; + + @ApiProperty({ example: 1, description: '修改的用户id', required: false }) + @IsDefined({ message: '用户id是必传参数' }) + id: number; +} diff --git a/service/src/modules/user/dto/userRecharge.dto.ts b/service/src/modules/user/dto/userRecharge.dto.ts new file mode 100644 index 0000000..76b880f --- /dev/null +++ b/service/src/modules/user/dto/userRecharge.dto.ts @@ -0,0 +1,21 @@ +import { IsNotEmpty, MinLength, MaxLength, IsEmail, IsOptional, IsNumber, IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class UserRechargeDto { + @ApiProperty({ example: 1, description: '用户id', required: true }) + @IsDefined({ message: '用户id是必传参数' }) + userId: number; + + @ApiProperty({ example: 100, description: '用户对话模型3次数', required: false }) + @IsOptional() + model3Count?: number; + + @ApiProperty({ example: 5, description: '用户对话模型4次数', required: false }) + @IsOptional() + model4Count?: number; + + @ApiProperty({ example: 0, description: '用户MJ额度', required: false }) + @IsOptional() + drawMjCount?: number; +} diff --git a/service/src/modules/user/user.controller.ts b/service/src/modules/user/user.controller.ts new file mode 100644 index 0000000..b2381a5 --- /dev/null +++ b/service/src/modules/user/user.controller.ts @@ -0,0 +1,91 @@ +import { UserService } from './user.service'; +import { Body, Controller, Get, Post, Query, Req, UseGuards } from '@nestjs/common'; +import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger'; +import { UpdateUserDto } from './dto/updateUser.dto'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { Request } from 'express'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; +import { UserRechargeDto } from './dto/userRecharge.dto'; +import { QueryAllUserDto } from './dto/queryAllUser.dto'; +import { QueryOneUserDto } from './dto/queryOne.dto'; +import { UpdateUserStatusDto } from './dto/updateUserStatus.dto'; +import { ResetUserPassDto } from './dto/resetUserPass.dto'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { queryInviteRecordDto } from './dto/queryInviteRecord.dto'; +import { RetrieveUserDto } from './dto/retrieve.dto'; + +@Controller('user') +@ApiTags('user') +export class UserController { + constructor(private readonly userService: UserService) {} + + @Post('update') + @ApiOperation({ summary: '更新用户信息' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async update(@Body() body: UpdateUserDto, @Req() req: Request) { + return await this.userService.updateInfo(body, req); + } + + @Post('genInviteCode') + @ApiOperation({ summary: '生成邀请码' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async genInviteCode(@Req() req: Request) { + return await this.userService.genInviteCode(req); + } + + @Get('inviteRecord') + @ApiOperation({ summary: '获取我的邀请记录' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getInviteRecord(@Req() req: Request, @Query() query: queryInviteRecordDto) { + return await this.userService.getInviteRecord(req, query); + } + + @Get('inviteLink') + @ApiOperation({ summary: '邀请链接被点击' }) + async inviteLink(@Query('code') code: string) { + return await this.userService.inviteLink(code); + } + + @Post('recharge') + @ApiOperation({ summary: '用户充值' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async userRecharge(@Body() body: UserRechargeDto) { + return await this.userService.userRecharge(body); + } + + @Get('queryAll') + @ApiOperation({ summary: '查询所有用户' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async queryAll(@Query() query: QueryAllUserDto, @Req() req: Request) { + return await this.userService.queryAll(query, req); + } + + @Get('queryOne') + @ApiOperation({ summary: '查询单个用户' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async queryOne(@Query() params: QueryOneUserDto) { + return await this.userService.queryOne(params); + } + + @Post('updateStatus') + @ApiOperation({ summary: '更新用户状态' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async updateStatus(@Body() body: UpdateUserStatusDto) { + return await this.userService.updateStatus(body); + } + + @Post('resetUserPass') + @ApiOperation({ summary: '重置用户密码' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async resetUserPass(@Body() body: ResetUserPassDto) { + return await this.userService.resetUserPass(body); + } +} diff --git a/service/src/modules/user/user.entity.ts b/service/src/modules/user/user.entity.ts new file mode 100644 index 0000000..33592fb --- /dev/null +++ b/service/src/modules/user/user.entity.ts @@ -0,0 +1,69 @@ +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'users' }) +export class UserEntity extends BaseEntity { + @Column({ length: 12, comment: '用户昵称' }) + username: string; + + @Column({ length: 64, comment: '用户密码', nullable: true }) + password: string; + + @Column({ default: 0, comment: '用户状态' }) + status: number; + + @Column({ default: 1, comment: '用户性别' }) + sex: number; + + @Column({ length: 64, unique: true, comment: '用户邮箱' }) + email: string; + + @Column({ length: 64, nullable: true, comment: '用户手机号' }) + phone: string; + + @Column({ + length: 300, + nullable: true, + default: 'https://public-1300678944.cos.ap-shanghai.myqcloud.com/ai/7f042f63f.png', + comment: '用户头像', + }) + avatar: string; + + @Column({ + length: 300, + nullable: true, + default: '我是一台基于深度学习和自然语言处理技术的 AI 机器人,旨在为用户提供高效、精准、个性化的智能服务。', + comment: '用户签名', + }) + sign: string; + + @Column({ length: 64, default: '', comment: '注册IP', nullable: true }) + registerIp: string; + + @Column({ length: 64, default: '', comment: '最后一次登录IP', nullable: true }) + lastLoginIp: string; + + @Column({ length: 10, default: '', comment: '用户邀请码' }) + inviteCode: string; + + @Column({ length: 10, default: '', comment: '用户填写的别人的邀请码' }) + invitedBy: string; + + @Column({ length: 10, default: 'viewer', comment: '用户角色' }) + role: string; + + @Column({ length: 64, default: '', comment: '微信openId', nullable: true }) + openId: string; + + @Column({ length: 64, comment: '用户注册来源', nullable: true }) + client: string; + + @Column({ comment: '用户邀请链接被点击次数', default: 0 }) + inviteLinkCount: number; + + @Column({ comment: '用户连续签到天数', default: 0 }) + consecutiveDays: number; + + @Column({ comment: '用户违规记录次数', default: 0 }) + violationCount: number; +} diff --git a/service/src/modules/user/user.module.ts b/service/src/modules/user/user.module.ts new file mode 100644 index 0000000..2b03ea1 --- /dev/null +++ b/service/src/modules/user/user.module.ts @@ -0,0 +1,45 @@ +import { VerifycationEntity } from '../verification/verifycation.entity'; +import { VerificationService } from '../verification/verification.service'; +import { Global, Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { UserController } from './user.controller'; +import { UserService } from './user.service'; +import { UserEntity } from './user.entity'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { BalanceEntity } from '../userBalance/balance.entity'; +import { AccountLogEntity } from '../userBalance/accountLog.entity'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { WhiteListEntity } from '../chatgpt/whiteList.entity'; +import { UserBalanceEntity } from '../userBalance/userBalance.entity'; +import { SalesUsersEntity } from '../sales/salesUsers.entity'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { FingerprintLogEntity } from '../userBalance/fingerprint.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; + +@Global() +@Module({ + imports: [ + TypeOrmModule.forFeature([ + UserEntity, + VerifycationEntity, + BalanceEntity, + AccountLogEntity, + ConfigEntity, + CramiPackageEntity, + WhiteListEntity, + UserBalanceEntity, + SalesUsersEntity, + FingerprintLogEntity, + ChatLogEntity, + ChatGroupEntity, + MidjourneyEntity + ]), + ], + controllers: [UserController], + providers: [UserService, VerificationService, UserBalanceService, RedisCacheService], + exports: [UserService], +}) +export class UserModule {} diff --git a/service/src/modules/user/user.service.ts b/service/src/modules/user/user.service.ts new file mode 100644 index 0000000..d635e72 --- /dev/null +++ b/service/src/modules/user/user.service.ts @@ -0,0 +1,566 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { UserStatusEnum, UserStatusErrMsg } from '../../common/constants/user.constant'; +import { MailerService } from '@nestjs-modules/mailer'; +import { VerifycationEntity } from '../verification/verifycation.entity'; +import { VerificationService } from '../verification/verification.service'; +import { Injectable, HttpException, HttpStatus, Global } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository, Connection, UpdateResult, Not, Like, In, MoreThan } from 'typeorm'; +import { UserRegisterDto } from '../auth/dto/authRegister.dto'; +import { UserEntity } from './user.entity'; +import * as bcrypt from 'bcryptjs'; +import * as crypto from 'crypto'; + +import * as _ from 'lodash'; +import { UserLoginDto } from '../auth/dto/authLogin.dto'; +import { VerificationEnum } from '@/common/constants/verification.constant'; +import { UserBalanceService } from '../userBalance/userBalance.service'; +import { UpdateUserDto } from './dto/updateUser.dto'; +import { Request, Response } from 'express'; +import { + createRandomCode, + createRandomUid, + formatCreateOrUpdateDate, + generateRandomString, + getClientIp, + maskEmail, + maskIpAddress, +} from '@/common/utils'; +import { UserRechargeDto } from './dto/userRecharge.dto'; +import { RechargeType } from '@/common/constants/balance.constant'; +import { QueryAllUserDto } from './dto/queryAllUser.dto'; +import { UpdateUserStatusDto } from './dto/updateUserStatus.dto'; +import { ResetUserPassDto } from './dto/resetUserPass.dto'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { WhiteListEntity } from '../chatgpt/whiteList.entity'; +import { AuthService } from '../auth/auth.service'; +import { UserRegisterByPhoneDto } from '../auth/dto/userRegisterByPhone.dto'; +import { RetrieveUserDto } from './dto/retrieve.dto'; + +@Injectable() +export class UserService { + constructor( + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + @InjectRepository(WhiteListEntity) + private readonly whiteListEntity: Repository, + private readonly connection: Connection, + private readonly verificationService: VerificationService, + private readonly mailerService: MailerService, + private readonly userBalanceService: UserBalanceService, + private readonly globalConfigService: GlobalConfigService, + @InjectRepository(ConfigEntity) + private readonly configEntity: Repository, + ) {} + + /* create and verify */ + async createUserAndVerifycation(user: UserEntity | UserRegisterDto, req: Request): Promise { + const { username, email, password, invitedBy, client = 0 } = user; + if (invitedBy) { + const b = await this.userEntity.findOne({ where: { inviteCode: invitedBy } }); + if (!b) { + throw new HttpException('无效的邀请码!', HttpStatus.BAD_REQUEST); + } + } + + /* 用户是否已经在系统中 */ + const where = [{ username }, { email }]; + const u: UserEntity = await this.userEntity.findOne({ where: where }); + + if (u && u.status !== UserStatusEnum.PENDING) { + throw new HttpException('用户名或者邮箱已被注册!', HttpStatus.BAD_REQUEST); + } + + try { + const userInput: any = _.cloneDeep(user); + const hashedPassword = bcrypt.hashSync(password, 10); + const ip = getClientIp(req); + userInput.password = hashedPassword; + userInput.registerIp = ip; + userInput.client = client; + + let n: UserEntity; + /* 如果没有注册用户则首次注册记录 如果注册了覆盖发送验证码即可 无需记录用户 */ + if (!u) { + const userDefautlAvatar = await this.globalConfigService.getConfigs(['userDefautlAvatar']); + userInput.avatar = userDefautlAvatar; + n = await this.userEntity.save(userInput); + } else { + n = u; + } + const emailConfigs = await this.configEntity.find({ + where: { + configKey: In([ + 'isVerifyEmail', + 'registerBaseUrl', + 'registerVerifyEmailTitle', + 'registerVerifyEmailDesc', + 'registerVerifyEmailFrom', + 'registerVerifyExpir', + ]), + }, + }); + + const configMap: any = emailConfigs.reduce((pre, cur: any) => { + pre[cur.configKey] = cur.configVal; + return pre; + }, {}); + + const isVerifyEmail = configMap['isVerifyEmail'] ? Number(configMap['isVerifyEmail']) : 1; + if (isVerifyEmail) { + const expir = configMap['registerVerifyExpir'] ? Number(configMap['registerVerifyExpir']) : 30 * 60; + const v: VerifycationEntity = await this.verificationService.createVerification(n, VerificationEnum.Registration, expir); + const { code, email, id } = v; + const { registerVerifyEmailFrom } = configMap; + console.log('configMap: ', configMap); + /* 判断是否开启邮箱验证 */ + const res = await this.mailerService.sendMail({ + to: email, + subject: `来自${registerVerifyEmailFrom}的账号激活`, + template: 'register', + context: { baseUrl: configMap['registerBaseUrl'], code, id, ...configMap }, + }); + console.log('email response -> : ', res); + } else { + /* 如果没有邮箱验证则 则直接主动注册验证通过逻辑 */ + const { username, email, id, invitedBy } = n; + await this.updateUserStatus(id, UserStatusEnum.ACTIVE); + /* 如果用户填写了 invitedBy 邀请码 查到邀请人信息 */ + let inviteUser: UserEntity; + if (invitedBy) { + inviteUser = await this.qureyUserInfoByInviteCode(invitedBy); + } + await this.userBalanceService.addBalanceToNewUser(id, inviteUser?.id); + } + return n; + } catch (error) { + console.log('error: ', error); + throw error; + } + } + + async getSuper() { + const user = await this.userEntity.findOne({ where: { role: 'super' } }); + return user; + } + + /* 账号登录验证密码 扫码登录则不用 */ + async verifyUserCredentials(user): Promise { + const { username, password, uid = 0, phone } = user; + let u = null; + + /* 三方登录的 */ + if (uid > 0) { + u = await this.userEntity.findOne({ where: { id: uid } }); + if (!u) { + throw new HttpException('当前账户不存在!', HttpStatus.BAD_REQUEST); + } + if (u.password.startsWith('$2a$') || u.password.startsWith('$2b$') || u.password.startsWith('$2y$')) { + // 如果是默认 + if (!bcrypt.compareSync(password, u.password)) { + throw new HttpException('当前密码错误!', HttpStatus.BAD_REQUEST); + } + } else { + //如果是md5加密 + console.log('----,'); + + const md5 = crypto.createHash('md5').update(password).digest('hex'); + console.log('----,', md5); + if (md5 !== u.password) { + throw new HttpException('当前密码错误!', HttpStatus.BAD_REQUEST); + } + } + } + + /* 邮箱登录的 */ + if (username && password) { + const where: any = [{ username }, { email: username }]; + u = await this.userEntity.findOne({ where: where }); + if (!u) { + throw new HttpException('当前账户不存在!', HttpStatus.BAD_REQUEST); + } + if (u.password.startsWith('$2a$') || u.password.startsWith('$2b$') || u.password.startsWith('$2y$')) { + // 如果是默认 + if (!bcrypt.compareSync(password, u.password)) { + throw new HttpException('当前密码错误!', HttpStatus.BAD_REQUEST); + } + } else { + //如果是md5加密 + console.log('----,'); + + const md5 = crypto.createHash('md5').update(password).digest('hex'); + console.log('----,', md5); + + if (md5 !== u.password) { + throw new HttpException('当前密码错误!', HttpStatus.BAD_REQUEST); + } + } + } + + /* 手机号登录的 */ + if (phone && password) { + const where: any = [{ phone }]; + u = await this.userEntity.findOne({ where: where }); + if (!u) { + throw new HttpException('当前账户不存在!', HttpStatus.BAD_REQUEST); + } + if (u.password.startsWith('$2a$') || u.password.startsWith('$2b$') || u.password.startsWith('$2y$')) { + // 如果是默认 + if (!bcrypt.compareSync(password, u.password)) { + throw new HttpException('当前密码错误!', HttpStatus.BAD_REQUEST); + } + } else { + //如果是md5加密 + console.log('----,'); + + const md5 = crypto.createHash('md5').update(password).digest('hex'); + console.log('----,', md5); + + if (md5 !== u.password) { + throw new HttpException('当前密码错误!', HttpStatus.BAD_REQUEST); + } + } + } + + if (!u) { + throw new HttpException('当前账户不存在!', HttpStatus.BAD_REQUEST); + } + if (u.status !== UserStatusEnum.ACTIVE) { + throw new HttpException(UserStatusErrMsg[u.status], HttpStatus.BAD_REQUEST); + } + + return u; + } + + async verifyUserPassword(userId, password) { + const u = await this.userEntity.findOne({ where: { id: userId } }); + if (u.password.startsWith('$2a$') || u.password.startsWith('$2b$') || u.password.startsWith('$2y$')) { + //非MD5加密 + return bcrypt.compareSync(password, u.password); + } else { + // 如果是md5加密 + const md5 = crypto.createHash('md5').update(password).digest('hex'); + console.log('----,', md5); + + return md5 === u.password; + } + } + + async updateUserStatus(id: number, status: UserStatusEnum) { + const u: UpdateResult = await this.userEntity.update({ id }, { status }); + return u.affected > 0; + } + + async getUserStatus(id: number): Promise { + const u: UserEntity = await this.userEntity.findOne({ where: { id } }); + return u.status; + } + + async queryUserInfoById(id: number): Promise { + return await this.userEntity.findOne({ where: { id } }); + } + + async queryOneUserInfo(userId: number): Promise { + return await this.userEntity.findOne({ where: { id: userId } }); + } + + /* 检查用户状态 */ + async checkUserStatus(user) { + const { id: userId, role } = user; + if (role === 'visitor') return true; + const u = await this.userEntity.findOne({ where: { id: userId } }); + if (!u) { + throw new HttpException('当前用户信息失效、请重新登录!', HttpStatus.UNAUTHORIZED); + } + if (u.status === UserStatusEnum.BLACKLISTED) { + throw new HttpException('您的账户已被永久加入黑名单、如有疑问、请联系管理员!', HttpStatus.BAD_REQUEST); + } + if (u.status === UserStatusEnum.LOCKED) { + throw new HttpException('您的账户已被封禁、如有疑问、请联系管理员!', HttpStatus.BAD_REQUEST); + } + } + + /* 获取用户基础信息 */ + async getUserInfo(userId: number) { + const userInfo: any = await this.userEntity.findOne({ + where: { id: userId }, + select: ['username', 'avatar', 'role', 'email', 'sign', 'inviteCode', 'openId', 'consecutiveDays'], + }); + if (!userInfo) { + throw new HttpException('当前用户信息失效、请重新登录!', HttpStatus.UNAUTHORIZED); + } + userInfo.isBindWx = !!userInfo?.openId; + delete userInfo.openId; + const userBalance = await this.userBalanceService.queryUserBalance(userId); + return { userInfo, userBalance: { ...userBalance } }; + } + + /* 获取用户信息 */ + async getUserById(id: number) { + return await this.userEntity.findOne({ where: { id } }); + } + + /* 通过openId获取用户信息 */ + async getUserOpenId(openId: string) { + return await this.userEntity.findOne({ where: { openId } }); + } + + /* 修改用户信息 */ + async updateInfo(body: UpdateUserDto, req: Request) { + const { id } = req.user; + + const u = await this.userEntity.findOne({ where: { id } }); + if (!u) { + throw new HttpException('当前用户不存在!', HttpStatus.BAD_REQUEST); + } + if (body.username && u.username === body.username) { + throw new HttpException('没有变更,无需更改!', HttpStatus.BAD_REQUEST); + } + + if (body.username) { + const u = await this.userEntity.findOne({ where: { username: body.username, id: Not(id) } }); + if (u) { + throw new HttpException('用户名已存在!', HttpStatus.BAD_REQUEST); + } + } + const r = await this.userEntity.update({ id }, body); + if (r.affected <= 0) { + throw new HttpException('修改用户信息失败!', HttpStatus.BAD_REQUEST); + } + return '修改用户信息成功!'; + } + + /* 修改用户密码 */ + async updateUserPassword(userId: number, password: string) { + const hashedPassword = bcrypt.hashSync(password, 10); + const r = await this.userEntity.update({ id: userId }, { password: hashedPassword }); + if (r.affected <= 0) { + throw new HttpException('修改密码失败、请重新试试吧。', HttpStatus.BAD_REQUEST); + } + } + + /* 生成用户邀请码 */ + async genInviteCode(req: Request) { + const { id } = req.user; + const u = await this.userEntity.findOne({ where: { id } }); + if (!u || u.inviteCode) { + throw new HttpException('已生成过邀请码、请勿重复生成', HttpStatus.BAD_REQUEST); + } + const inviteCode = generateRandomString(); + const user = await this.userEntity.findOne({ where: { inviteCode } }); + if (user) { + throw new HttpException('生成邀请码失败,请重新试一次吧!', HttpStatus.BAD_REQUEST); + } + const r = await this.userEntity.update({ id }, { inviteCode }); + if (r.affected <= 0) { + throw new HttpException('生成邀请码失败,请重新试一次吧!', HttpStatus.BAD_REQUEST); + } + return inviteCode; + } + + /* 获取我得邀请记录 */ + async getInviteRecord(req, query) { + try { + const { id } = req.user; + const { page = 1, size = 10 } = query; + const u = await this.userEntity.findOne({ where: { id } }); + const { inviteCode } = u; + if (!inviteCode) return []; + const [rows, count] = await this.userEntity.findAndCount({ + where: { inviteCode }, + order: { id: 'DESC' }, + select: ['username', 'email', 'createdAt', 'status', 'avatar'], + take: size, + skip: (page - 1) * size, + }); + formatCreateOrUpdateDate(rows).map((t) => { + t.email = maskEmail(t.email); + return t; + }); + return { rows, count }; + } catch (error) { + console.log('error: ', error); + throw new HttpException('获取邀请记录失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 邀请链接被点击 */ + async inviteLink(code) { + const u = await this.userEntity.findOne({ where: { inviteCode: code } }); + if (!u) return 1; + const { inviteLinkCount = 0 } = u; + const res = await this.userEntity.update({ inviteCode: code }, { inviteLinkCount: inviteLinkCount + 1 }); + if (res.affected) { + return 1; + } else { + return 0; + } + } + + /* 通过邀请码查询邀请人信息 */ + async qureyUserInfoByInviteCode(inviteCode: string): Promise { + return await this.userEntity.findOne({ where: { inviteCode } }); + } + + /* 给用户充值 */ + async userRecharge(body: UserRechargeDto) { + const { userId, model3Count = 0, model4Count = 0, drawMjCount = 0 } = body; + await this.userBalanceService.addBalanceToUser(userId, { model3Count, model4Count, drawMjCount }); + const res = await this.userBalanceService.saveRecordRechargeLog({ + userId, + rechargeType: RechargeType.ADMIN_GIFT, + model3Count, + model4Count, + drawMjCount, + extent: '', + }); + return res; + } + + /* 查询所有用户 */ + async queryAll(query: QueryAllUserDto, req: Request) { + const { page = 1, size = 10, username, email, status, keyword, phone } = query; + let where = {}; + username && Object.assign(where, { username: Like(`%${username}%`) }); + email && Object.assign(where, { email: Like(`%${email}%`) }); + phone && Object.assign(where, { phone: Like(`%${phone}%`) }); + status && Object.assign(where, { status }); + if (keyword) { + where = [{ username: Like(`%${keyword}%`) }, { email: Like(`%${keyword}%`) }, { phone: Like(`%${keyword}%`) }]; + } + const [rows, count] = await this.userEntity.findAndCount({ + skip: (page - 1) * size, + where, + take: size, + order: { createdAt: 'DESC' }, + cache: true, + select: ['username', 'avatar', 'inviteCode', 'role', 'sign', 'status', 'id', 'email', 'createdAt', 'lastLoginIp', 'phone'], + }); + const ids = rows.map((t) => t.id); + const data = await this.userBalanceService.queryUserBalanceByIds(ids); + rows.forEach((user: any) => (user.balanceInfo = data.find((t) => t.userId === user.id))); + req.user.role !== 'super' && rows.forEach((t) => (t.email = maskEmail(t.email))); + req.user.role !== 'super' && rows.forEach((t) => (t.lastLoginIp = maskIpAddress(t.lastLoginIp))); + req.user.role !== 'super' && rows.forEach((t) => (t.phone = maskIpAddress(t.phone))); + return { rows, count }; + } + + /* 查询单个用户详情 */ + async queryOne({ id }) { + return await this.userEntity.findOne({ where: { id }, select: ['username', 'avatar', 'inviteCode', 'role', 'sign', 'status'] }); + } + + /* 修改用户状态 */ + async updateStatus(body: UpdateUserStatusDto) { + const { id, status } = body; + const n = await this.userEntity.findOne({ where: { id } }); + if (!n) { + throw new HttpException('用户不存在!', HttpStatus.BAD_REQUEST); + } + if (n.role === 'super') { + throw new HttpException('超级管理员不可被操作!', HttpStatus.BAD_REQUEST); + } + + if (n.status === UserStatusEnum.PENDING) { + throw new HttpException('未激活用户不可手动变更状态!', HttpStatus.BAD_REQUEST); + } + if (n.role === 'super') { + throw new HttpException('超级管理员不可被操作!', HttpStatus.BAD_REQUEST); + } + if (status === UserStatusEnum.PENDING) { + throw new HttpException('不可将用户置为未激活状态!', HttpStatus.BAD_REQUEST); + } + const r = await this.userEntity.update({ id }, { status }); + if (r.affected <= 0) { + throw new HttpException('修改用户状态失败!', HttpStatus.BAD_REQUEST); + } + return '修改用户状态成功!'; + } + + /* 重置用户密码 */ + async resetUserPass(body: ResetUserPassDto) { + const { id } = body; + const u = await this.userEntity.findOne({ where: { id } }); + if (!u) { + throw new HttpException('用户不存在!', HttpStatus.BAD_REQUEST); + } + const defaultPassword = '123456'; + const hashPassword = bcrypt.hashSync(defaultPassword, 10); + const raw = await this.userEntity.update({ id }, { password: hashPassword }); + if (raw.affected <= 0) { + throw new HttpException('重置密码失败!', HttpStatus.BAD_REQUEST); + } + return `密码重置为[${defaultPassword}]成功!`; + } + + /* 记录登录ip */ + async savaLoginIp(userId: number, ip: string) { + return await this.userEntity.update({ id: userId }, { lastLoginIp: ip }); + } + + /* 通过openId 拿到或创建 */ + async getUserFromOpenId(openId: string, sceneStr?: string) { + const user = await this.userEntity.findOne({ where: { openId } }); + if (!user) { + const inviteCode = sceneStr ? sceneStr.split(':')[1] : ''; + const inviteUser = await this.qureyUserInfoByInviteCode(inviteCode); + const user = await this.createUserFromOpenId(openId, inviteCode); + await this.userBalanceService.addBalanceToNewUser(user.id, inviteCode ? inviteUser?.id : null); + return user; + } + return user; + } + + /* 通过openId创建一个用户, 传入邀请码 是邀请人的不是自己的 */ + async createUserFromOpenId(openId: string, invitedBy: string) { + const userDefautlAvatar = await this.globalConfigService.getConfigs(['userDefautlAvatar']); + const userInfo = { + avatar: userDefautlAvatar, + username: `用户${createRandomUid()}`, + status: UserStatusEnum.ACTIVE, + sex: 0, + email: `${createRandomUid()}@default.com`, + invitedBy, + openId, + }; + const user = await this.userEntity.save(userInfo); + return user; + } + + async bindWx(openId, userId) { + try { + const user = await this.userEntity.findOne({ where: { id: userId } }); + if (!user) return { status: false, msg: '当前绑定用户不存在!' }; + const bindU = await this.userEntity.findOne({ where: { openId } }); + if (bindU) return { status: false, msg: '该微信已绑定其他账号!' }; + const res = await this.userEntity.update({ id: userId }, { openId }); + if (res.affected <= 0) return { status: false, msg: '绑定微信失败、请联系管理员!' }; + return { status: true, msg: '恭喜您绑定成功、后续可直接扫码登录了!' }; + } catch (error) { + return { status: false, msg: '绑定微信失败、请联系管理员!' }; + } + } + + /* 通过userId获取用户的openId */ + async getOpenIdByUserId(userId: number) { + const user = await this.userEntity.findOne({ where: { id: userId } }); + return user?.openId; + } + + /* 校验手机号注册 */ + async verifyUserRegisterByPhone(params: UserRegisterByPhoneDto) { + const { username, password, phone, phoneCode } = params; + const user = await this.userEntity.findOne({ where: [{ username }, { phone }] }); + if (user && user.username === username) { + throw new HttpException('用户名已存在、请更换用户名!', HttpStatus.BAD_REQUEST); + } + if (user && user.phone === phone) { + throw new HttpException('当前手机号已注册、请勿重复注册!', HttpStatus.BAD_REQUEST); + } + } + + /* 创建基础用户 */ + async createUser(userInfo) { + return await this.userEntity.save(userInfo); + } +} diff --git a/service/src/modules/userBalance/accountLog.entity.ts b/service/src/modules/userBalance/accountLog.entity.ts new file mode 100644 index 0000000..193a6b8 --- /dev/null +++ b/service/src/modules/userBalance/accountLog.entity.ts @@ -0,0 +1,42 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'account_log' }) +export class AccountLogEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '会员套餐名称', nullable: true }) + pkgName: string; + + @Column({ comment: '推荐人ID、返佣用户ID', nullable: true }) + rebateUserId: number; + + @Column({ comment: '充值套餐ID', nullable: true }) + packageId: number; + + @Column({ comment: '会员有效天数', nullable: true }) + memberDays: number; + + @Column({ comment: '账户充值类型' }) + rechargeType: number; + + @Column({ comment: '模型3对话次数' }) + model3Count: number; + + @Column({ comment: '模型4对话次数' }) + model4Count: number; + + @Column({ comment: 'MJ绘画次数' }) + drawMjCount: number; + + @Column({ comment: '套餐有效期' }) + days: number; + + @Column({ comment: '随机订单uid' }) + uid: string; + + @Column({ comment: '扩展字段', nullable: true }) + extent: string; +} diff --git a/service/src/modules/userBalance/balance.entity.ts b/service/src/modules/userBalance/balance.entity.ts new file mode 100644 index 0000000..7abc433 --- /dev/null +++ b/service/src/modules/userBalance/balance.entity.ts @@ -0,0 +1,27 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'balance' }) +export class BalanceEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '用户账户余额' }) + balance: number; + + @Column({ comment: '用户使用次数余额' }) + usesLeft: number; + + @Column({ comment: '绘画使用次数余额' }) + paintCount: number; + + @Column({ default: 0, comment: '用户总计使用的token数量' }) + useTokens: number; + + @Column({ default: 0, comment: '用户总计使用的对话次数' }) + useChats: number; + + @Column({ default: 0, comment: '用户总计使用的绘画次数' }) + usePaints: number; +} diff --git a/service/src/modules/userBalance/dto/test.dto.ts b/service/src/modules/userBalance/dto/test.dto.ts new file mode 100644 index 0000000..6ddb55d --- /dev/null +++ b/service/src/modules/userBalance/dto/test.dto.ts @@ -0,0 +1,9 @@ +import { IsDefined } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; +import { Type } from 'class-transformer'; + +export class TestDto { + @ApiProperty({ example: 1, nullable: true, description: '查询用户的id', required: false }) + @IsDefined({ message: '用户id是必传参数' }) + id: number; +} diff --git a/service/src/modules/userBalance/fingerprint.entity.ts b/service/src/modules/userBalance/fingerprint.entity.ts new file mode 100644 index 0000000..2ecaa74 --- /dev/null +++ b/service/src/modules/userBalance/fingerprint.entity.ts @@ -0,0 +1,18 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'fingerprint_log' }) +export class FingerprintLogEntity extends BaseEntity { + @Column({ comment: '指纹ID' }) + fingerprint: string; + + @Column({ comment: '模型3对话次数' }) + model3Count: number; + + @Column({ comment: '模型4对话次数' }) + model4Count: number; + + @Column({ comment: 'MJ绘画次数' }) + drawMjCount: number; +} diff --git a/service/src/modules/userBalance/userBalance.controller.ts b/service/src/modules/userBalance/userBalance.controller.ts new file mode 100644 index 0000000..c3ad3fe --- /dev/null +++ b/service/src/modules/userBalance/userBalance.controller.ts @@ -0,0 +1,69 @@ +import { Controller, Post, UseGuards, Body, Get, Query, Render, Res, Req } from '@nestjs/common'; +import { JwtAuthGuard } from '@/common/auth/jwtAuth.guard'; +import { ApiTags, ApiOperation, ApiBearerAuth } from '@nestjs/swagger'; +import { Request, Response } from 'express'; +import { UserBalanceService } from './userBalance.service'; +import { TestDto } from './dto/test.dto'; +import { SuperAuthGuard } from '@/common/auth/superAuth.guard'; +import { AdminAuthGuard } from '@/common/auth/adminAuth.guard'; + +@ApiTags('balance') +@Controller('balance') +export class UserBalanceController { + constructor(private userBalanceService: UserBalanceService) {} + + @Get('rechargeLog') + @ApiOperation({ summary: '获取个人充值记录' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getRechargeLog(@Req() req: Request, @Query() params: any) { + return this.userBalanceService.getRechargeLog(req, params); + } + + @Get('accountLog') + @ApiOperation({ summary: '获取所有人账户记录' }) + @UseGuards(AdminAuthGuard) + @ApiBearerAuth() + async getAccountLog(@Req() req: Request, @Query() params: any) { + return this.userBalanceService.getAccountLog(req, params); + } + + @Get('query') + @ApiOperation({ summary: '获取个人余额信息' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getBalance(@Req() req: Request) { + return this.userBalanceService.queryUserBalance(req.user.id); + } + + // @Post('test') + // @ApiOperation({ summary: '升级V1.5 数据迁移job' }) + // async test(@Body() body: TestDto) { + // return this.userBalanceService.addBalanceToOrder(body); + // } + + @Post('upgradeBalance') + @ApiOperation({ summary: '升级V1.5 数据迁移job' }) + @UseGuards(SuperAuthGuard) + @ApiBearerAuth() + async upgradeBalance() { + return this.userBalanceService.upgradeBalance(); + } + + @Post('inheritVisitorData') + @ApiOperation({ summary: '继承当前设备数据' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async inheritVisitorData(@Req() req: Request) { + return this.userBalanceService.inheritVisitorData(req); + } + + @Get('getVisitorCount') + @ApiOperation({ summary: '获取本机指纹数据' }) + @UseGuards(JwtAuthGuard) + @ApiBearerAuth() + async getVisitorCount(@Req() req: Request) { + return this.userBalanceService.getVisitorCount(req); + } + +} diff --git a/service/src/modules/userBalance/userBalance.entity.ts b/service/src/modules/userBalance/userBalance.entity.ts new file mode 100644 index 0000000..cbd478d --- /dev/null +++ b/service/src/modules/userBalance/userBalance.entity.ts @@ -0,0 +1,51 @@ +import { UserStatusEnum } from '../../common/constants/user.constant'; +import { Check, Column, Entity, JoinColumn, OneToMany, OneToOne } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'user_balances' }) +export class UserBalanceEntity extends BaseEntity { + @Column({ comment: '用户ID' }) + userId: number; + + @Column({ comment: '充值的套餐包含的模型3次数', nullable: true }) + model3Count: number; + + @Column({ comment: '充值的套餐包含的模型4次数', nullable: true }) + model4Count: number; + + @Column({ comment: '充值的套餐包含的MJ绘画次数', nullable: true }) + drawMjCount: number; + + @Column({ comment: '当前使用的套餐ID', default: 0, nullable: true }) + packageId: number; + + @Column({ comment: '会员模型3额度', default: 0, nullable: true }) + memberModel3Count: number; + + @Column({ comment: '会员模型4额度', default: 0, nullable: true }) + memberModel4Count: number; + + @Column({ comment: '会员MJ绘画额度', default: 0, nullable: true }) + memberDrawMjCount: number; + + @Column({ comment: '已经使用的对话3的模型次数', nullable: true }) + useModel3Count: number; + + @Column({ comment: '已经使用的对话4的模型次数', nullable: true }) + useModel4Count: number; + + @Column({ comment: '已经使用的对话3的模型Token', nullable: true }) + useModel3Token: number; + + @Column({ comment: '已经使用的对话4的模型Token', nullable: true }) + useModel4Token: number; + + @Column({ comment: '已经使用的MJ绘画Token', nullable: true }) + useDrawMjToken: number; + + @Column({ comment: '扩展字段', nullable: true }) + extent: string; + + @Column({ comment: '会员到期时间 0:不是 1:是', nullable: true }) + expirationTime: Date; +} diff --git a/service/src/modules/userBalance/userBalance.module.ts b/service/src/modules/userBalance/userBalance.module.ts new file mode 100644 index 0000000..4205d5c --- /dev/null +++ b/service/src/modules/userBalance/userBalance.module.ts @@ -0,0 +1,44 @@ +import { Global, Module } from '@nestjs/common'; +import { UserBalanceService } from './userBalance.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { BalanceEntity } from './balance.entity'; +import { VerificationService } from '../verification/verification.service'; +import { VerifycationEntity } from '../verification/verifycation.entity'; +import { AccountLogEntity } from './accountLog.entity'; +import { UserBalanceController } from './userBalance.controller'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { UserBalanceEntity } from './userBalance.entity'; +import { UserEntity } from '../user/user.entity'; +import { SalesUsersEntity } from '../sales/salesUsers.entity'; +import { WhiteListEntity } from '../chatgpt/whiteList.entity'; +import { RedisCacheService } from '../redisCache/redisCache.service'; +import { FingerprintLogEntity } from './fingerprint.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; + +@Global() +@Module({ + imports: [ + TypeOrmModule.forFeature([ + BalanceEntity, + UserBalanceEntity, + VerifycationEntity, + AccountLogEntity, + ConfigEntity, + CramiPackageEntity, + UserEntity, + SalesUsersEntity, + WhiteListEntity, + FingerprintLogEntity, + ChatLogEntity, + ChatGroupEntity, + MidjourneyEntity + ]), + ], + controllers: [UserBalanceController], + providers: [UserBalanceService, VerificationService, RedisCacheService], + exports: [UserBalanceService], +}) +export class UserBalanceModule {} diff --git a/service/src/modules/userBalance/userBalance.service.ts b/service/src/modules/userBalance/userBalance.service.ts new file mode 100644 index 0000000..2472a65 --- /dev/null +++ b/service/src/modules/userBalance/userBalance.service.ts @@ -0,0 +1,627 @@ +import { GlobalConfigService } from '../globalConfig/globalConfig.service'; +import { InjectRepository } from '@nestjs/typeorm'; +import { BalanceEntity } from './balance.entity'; +import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'; +import { In, LessThan, Repository } from 'typeorm'; +import { RechargeType } from '@/common/constants/balance.constant'; +import { AccountLogEntity } from './accountLog.entity'; +import { Request } from 'express'; +import { createRandomUid, hideString } from '@/common/utils'; +import { ConfigEntity } from '../globalConfig/config.entity'; +import { CramiPackageEntity } from '../crami/cramiPackage.entity'; +import { UserBalanceEntity } from './userBalance.entity'; +// import * as dayjs from 'dayjs'; +import dayjs, { formatCreateOrUpdateDate, formatDate } from '@/common/utils/date'; +import { UserEntity } from '../user/user.entity'; +import { SalesUsersEntity } from '../sales/salesUsers.entity'; +import { SalesService } from '../sales/sales.service'; +import { WhiteListEntity } from '../chatgpt/whiteList.entity'; +import { FingerprintLogEntity } from './fingerprint.entity'; +import { ChatLogEntity } from '../chatLog/chatLog.entity'; +import { ChatGroupEntity } from '../chatGroup/chatGroup.entity'; +import { MidjourneyEntity } from '../midjourney/midjourney.entity'; + +interface LogInfo { + userId: number; + rechargeType: number; + model3Count?: number; + model4Count?: number; + drawMjCount?: number; + days?: number; + pkgName?: string; + extent?: string; +} + +interface UserBalanceInfo { + model3Count?: number; + model4Count?: number; + drawMjCount?: number; +} + +@Injectable() +export class UserBalanceService { + constructor( + @InjectRepository(BalanceEntity) + private readonly balanceEntity: Repository, + @InjectRepository(UserBalanceEntity) + private readonly userBalanceEntity: Repository, + @InjectRepository(AccountLogEntity) + private readonly accountLogEntity: Repository, + @InjectRepository(CramiPackageEntity) + private readonly cramiPackageEntity: Repository, + @InjectRepository(ConfigEntity) + private readonly configEntity: Repository, + @InjectRepository(UserEntity) + private readonly userEntity: Repository, + @InjectRepository(SalesUsersEntity) + private readonly salesUsersEntity: Repository, + @InjectRepository(WhiteListEntity) + private readonly whiteListEntity: Repository, + @InjectRepository(FingerprintLogEntity) + private readonly fingerprintLogEntity: Repository, + @InjectRepository(ChatGroupEntity) + private readonly chatGroupEntity: Repository, + @InjectRepository(ChatLogEntity) + private readonly chatLogEntity: Repository, + @InjectRepository(MidjourneyEntity) + private readonly midjourneyEntity: Repository, + private readonly salesService: SalesService, + private readonly globalConfigService: GlobalConfigService, + ) {} + + /* 新注册用户赠送消费 */ + async addBalanceToNewUser(userId: number, invitedId: number) { + try { + // TODO 直接从globalConfig中获取配置 + const registerConfigs = await this.configEntity.find({ + where: { + configKey: In([ + 'registerSendStatus', // 开启注册赠送 + 'registerSendModel3Count', // 注册赠送模型3聊天次数 + 'registerSendModel4Count', // 注册赠送模型4聊天次数 + 'registerSendDrawMjCount', // 注册赠送MJ绘画次数 + 'firstRegisterSendStatus', // 开启优先注册赠送 + 'firstRegisterSendRank', // 优先注册赠送名次 + 'firstRregisterSendModel3Count', // 优先注册赠送模型3聊天次数 + 'firstRregisterSendModel4Count', // 优先注册赠送模型4聊天次数 + 'firstRregisterSendDrawMjCount', // 优先注册赠送MJ绘画次数 + 'inviteSendStatus', // 开启邀请赠送 + 'inviteGiveSendModel3Count', // 邀请赠送模型3聊天次数 + 'inviteGiveSendModel4Count', // 邀请赠送模型4聊天次数 + 'inviteGiveSendDrawMjCount', // 邀请赠送MJ绘画次数 + 'invitedGuestSendModel3Count', // 被邀请人赠送模型3聊天次数 + 'invitedGuestSendDrawMjCount', // 被邀请人赠送模型4聊天次数 + 'invitedGuestSendModel4Count', // 被邀请人赠送MJ绘画次数 + ]), + }, + }); + const configMap: any = registerConfigs.reduce((pre, cur: any) => { + const num = Number(cur.configVal); + const n = Number.isInteger(num) && num > 0 ? num : 0; + pre[cur.configKey] = n; + return pre; + }, {}); + let model3Count = 0; + let model4Count = 0; + let drawMjCount = 0; + + /* 开启注册增送 */ + if (configMap.registerSendStatus === 1) { + model3Count = model3Count + configMap.registerSendModel3Count; + model4Count = model4Count + configMap.registerSendModel4Count; + drawMjCount = drawMjCount + configMap.registerSendDrawMjCount; + } + + /* 开启优先注册赠送并且在赠送范围内 */ + if (configMap.registerSendStatus === 1 && configMap.firstRegisterSendStatus === 1 && userId <= configMap.firstRegisterSendRank) { + model3Count = model3Count + configMap.firstRregisterSendModel3Count; + model4Count = model4Count + configMap.firstRregisterSendModel4Count; + drawMjCount = drawMjCount + configMap.firstRregisterSendDrawMjCount; + } + + /* 受邀人注册赠送日志 */ + await this.saveRecordRechargeLog({ userId, rechargeType: RechargeType.REG_GIFT, model3Count, drawMjCount, model4Count }); + /* 如果有被邀请人 */ + if (invitedId) { + /* 如果开启邀请赠送 */ + if (Number(configMap.inviteSendStatus) === 1) { + /* 被邀请人赠送 10次余额+1次绘画 */ + model3Count = model3Count + Number(configMap.invitedGuestSendModel3Count); + model4Count = model4Count + Number(configMap.invitedGuestSendModel4Count); + drawMjCount = drawMjCount + Number(configMap.invitedGuestSendDrawMjCount); + /* 受邀人填写验证码的赠送 */ + await this.saveRecordRechargeLog({ + userId, + rechargeType: RechargeType.INVITE_GIFT, + model3Count: configMap.invitedGuestSendModel3Count, + model4Count: configMap.invitedGuestSendModel4Count, + drawMjCount: configMap.invitedGuestSendDrawMjCount, + }); + + /* 邀请人赠送30次余额加3次绘画 充值 */ + await this.addBalanceToUser(invitedId, { + model3Count: configMap.inviteGiveSendModel3Count, + model4Count: configMap.inviteGiveSendModel4Count, + drawMjCount: configMap.inviteGiveSendDrawMjCount, + }); + /* 邀请人充值日志 */ + await this.saveRecordRechargeLog({ + userId: invitedId, + rechargeType: RechargeType.REFER_GIFT, + model3Count: configMap.inviteGiveSendModel3Count, + model4Count: configMap.inviteGiveSendModel4Count, + drawMjCount: configMap.inviteGiveSendDrawMjCount, + }); + } + } + /* 受邀人初次注册 一次领取所有额度 */ + await this.userBalanceEntity.save({ userId, model3Count, model4Count, drawMjCount, useTokens: 0 }); + } catch (error) { + console.log('error: ', error); + throw new HttpException('注册赠送失败,请联系管理员!', HttpStatus.BAD_REQUEST); + } + } + + /* 检查余额 */ + async validateBalance(req, type, amount) { + const { id: userId, role } = req.user; + let b = await this.userBalanceEntity.findOne({ where: { userId } }); + if (!b) { + b = await this.createBaseUserBalance(userId); + } + if (role === 'visitor') { + return this.validateVisitorBalance(req, type, amount); + } + const res: ConfigEntity = await this.configEntity.findOne({ where: { configKey: 'vxNumber' } }); + const vxNumber = res ? res.configVal : '---'; + /* 会员扣费key */ + const memberKey = + type === 'model3' ? 'memberModel3Count' : type === 'model4' ? 'memberModel4Count' : type === 'mjDraw' ? 'memberDrawMjCount' : null; + /* 非会员扣费key */ + const baseKey = type === 'model3' ? 'model3Count' : type === 'model4' ? 'model4Count' : type === 'mjDraw' ? 'drawMjCount' : null; + /* 如果是会员 */ + if (b.packageId && b[memberKey] < amount) { + if (b[baseKey] < amount) { + throw new HttpException(`您的账户余额不足,如果想继续体验服务,请联系管理员 或购买专属套餐 !`, HttpStatus.PAYMENT_REQUIRED); + } + } + /* 如果不是会员 */ + if (!b.packageId && b[baseKey] < amount) { + throw new HttpException(`您的账户余额不足,如果想继续体验服务,请联系管理员 或购买专属套餐 !`, HttpStatus.PAYMENT_REQUIRED); + } + return b; + } + + /* 检查游客的余额 */ + async validateVisitorBalance(req, type, amount) { + const { id } = req.user; + const baseKey = type === 'model3' ? 'model3Count' : type === 'model4' ? 'model4Count' : type === 'mjDraw' ? 'drawMjCount' : null; + const now = new Date(); + const log = await this.fingerprintLogEntity.findOne({ where: { fingerprint: id } }); + /* 判断余额 */ + const { visitorModel3Num, visitorModel4Num, visitorMJNum } = await this.globalConfigService.getConfigs([ + 'visitorModel3Num', + 'visitorModel4Num', + 'visitorMJNum', + ]); + const settings = { + model3Count: visitorModel3Num ? Number(visitorModel3Num) : 0, + model4Count: visitorModel4Num ? Number(visitorModel4Num) : 0, + drawMjCount: visitorMJNum ? Number(visitorMJNum) : 0, + }; + /* 如果没有 */ + if (!log) { + const data = { + fingerprint: id, + model3Count: 0, + model4Count: 0, + drawMjCount: 0, + }; + data[baseKey] = data[baseKey] + amount; + /* 判断余额 */ + if (data[baseKey] > settings[baseKey]) { + throw new HttpException(`今日当前类型免费额度已经使用完毕、建议您注册账户体验更加完整的服务内容!`, HttpStatus.PAYMENT_REQUIRED); + } else { + await this.fingerprintLogEntity.save(data); + return true; + } + } else { + const { model3Count, model4Count, drawMjCount } = log; + let data = { + model3Count, + model4Count, + drawMjCount, + }; + /* 判断是否是昨天 */ + // const isUpdateLastDay = this.isUpdatedToday(log.updatedAt) + // const date = Number(new Date(log.updatedAt)) + 8 * 60 * 60 * 1000 + const date = Number(new Date(log.updatedAt)); + const isUpdateLastDay = this.isUpdatedToday(date); + if (isUpdateLastDay) { + data[baseKey] = data[baseKey] + amount; + } else { + data = { + model3Count: 0, + model4Count: 0, + drawMjCount: 0, + }; + data[baseKey] = data[baseKey] + amount; + } + if (data[baseKey] > settings[baseKey]) { + throw new HttpException(`今日当前类型免费额度已经使用完毕、建议您注册账户体验更加完整的服务内容!`, HttpStatus.PAYMENT_REQUIRED); + } else { + await this.fingerprintLogEntity.update({ fingerprint: id }, data); + return true; + } + } + } + + /* 判读上次更新是不是今天 */ + isUpdatedToday(date) { + const now = new Date(); + const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate()); + return date >= todayStart; + } + + /* 消费 UseAmount是使用的token */ + async deductFromBalance(userId, deductionType, amount, UseAmount = 0) { + const b = await this.userBalanceEntity.findOne({ where: { userId } }); + if (!b) { + throw new HttpException('缺失当前用户账户记录!', HttpStatus.BAD_REQUEST); + } + + /* 如果是会员 */ + const memberKey = + deductionType === 'model3' + ? 'memberModel3Count' + : deductionType === 'model4' + ? 'memberModel4Count' + : deductionType === 'mjDraw' + ? 'memberDrawMjCount' + : null; + + /* 如果不是会员 */ + const baseKey = + deductionType === 'model3' ? 'model3Count' : deductionType === 'model4' ? 'model4Count' : deductionType === 'mjDraw' ? 'drawMjCount' : null; + /* 记录需要扣费的key */ + const updateKey = b.packageId && b[memberKey] < amount ? baseKey : b.packageId ? memberKey : baseKey; + + /* 记录使用值的key */ + let useKey = null; + if (updateKey.includes('odel3')) { + useKey = 'useModel3Token'; + } + if (updateKey.includes('odel4')) { + useKey = 'useModel4Token'; + } + if (updateKey.includes('MjCount')) { + useKey = 'useDrawMjToken'; + } + /* 记录修改使用的token */ + const updateBalance = { [updateKey]: b[updateKey] - amount < 0 ? 0 : b[updateKey] - amount, [useKey]: b[useKey] + UseAmount }; + /* 记录修改使用的次数 mj不需要 */ + useKey === 'useModel3Token' && (updateBalance['useModel3Count'] = b['useModel3Count'] + amount); + useKey === 'useModel4Token' && (updateBalance['useModel4Count'] = b['useModel4Count'] + amount); + const result = await this.userBalanceEntity.update({ userId }, updateBalance); + if (result.affected === 0) { + throw new HttpException('消费余额失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 查询用户余额 */ + async queryUserBalance(userId: number) { + try { + const res: any = await this.userBalanceEntity.findOne({ + where: { userId }, + select: [ + 'packageId', + 'model3Count', + 'model4Count', + 'drawMjCount', + 'memberModel3Count', + 'memberModel4Count', + 'memberDrawMjCount', + 'useModel3Count', + 'useModel4Count', + 'useModel3Token', + 'useModel4Token', + 'useDrawMjToken', + 'expirationTime', + ], + }); + if (!res) { + const user = await this.createBaseUserBalance(userId); + if (user) { + return await this.queryUserBalance(userId); + } else { + throw new HttpException('查询当前用户余额失败!', HttpStatus.BAD_REQUEST); + } + } + res.sumModel3Count = res.packageId ? res.model3Count + res.memberModel3Count : res.model3Count; + res.sumModel4Count = res.packageId ? res.model4Count + res.memberModel4Count : res.model4Count; + res.sumDrawMjCount = res.packageId ? res.drawMjCount + res.memberDrawMjCount : res.drawMjCount; + res.expirationTime = res.expirationTime ? formatDate(res.expirationTime, 'YYYY-MM-DD') : null; + return res; + } catch (error) { + console.log('error: ', error); + } + } + + /* 记录充值日志 */ + async saveRecordRechargeLog(logInfo: LogInfo) { + const { userId, rechargeType, model3Count, model4Count, drawMjCount, days = -1, pkgName = '', extent = '' } = logInfo; + if (!userId) { + throw new HttpException('当前用户不存在,记录充值日志异常', HttpStatus.BAD_REQUEST); + } + const uid = createRandomUid(); + return await this.accountLogEntity.save({ userId, rechargeType, model3Count, model4Count, drawMjCount, days, extent, uid, pkgName }); + } + + /* 创建一条基础的用户余额记录 */ + async createBaseUserBalance(userId: number, userBalanceInfo: UserBalanceInfo = {}) { + const { model3Count = 0, model4Count = 0, drawMjCount = 0 } = userBalanceInfo; + const balance = await this.userBalanceEntity.findOne({ where: { userId } }); + if (balance) { + throw new HttpException('当前用户无需创建账户信息!', HttpStatus.BAD_REQUEST); + } + return await this.userBalanceEntity.save({ userId, model3Count, model4Count, drawMjCount }); + } + + /* 给用户增加固定次数额度 */ + async addBalanceToUser(userId, balance, days = -1) { + try { + const userBalanceInfo = (await this.userBalanceEntity.findOne({ where: { userId } })) || (await this.createBaseUserBalance(userId)); + if (!userBalanceInfo) { + throw new HttpException('查询用户账户信息失败!', HttpStatus.BAD_REQUEST); + } + const { model3Count, model4Count, drawMjCount, memberModel3Count, memberModel4Count, memberDrawMjCount } = userBalanceInfo; + let params = {}; + /* 是否充值会员套餐 大于0的时间天数都属于套餐 */ + if (days > 0) { + const { packageId } = balance; + if (!packageId) { + throw new HttpException('缺失当前套餐ID、充值失败!', HttpStatus.BAD_REQUEST); + } + const pkgInfo = await this.cramiPackageEntity.findOne({ where: { id: packageId } }); + if (!pkgInfo) { + throw new HttpException('当前套餐不存在!', HttpStatus.BAD_REQUEST); + } + const { weight } = pkgInfo; // 套餐的权重 = 会员等级 + /* 如果不是会员那么则直接充值进入并修改会员信息为会员身份 */ + if (!userBalanceInfo.packageId) { + params = { + memberModel3Count: model3Count + balance.model3Count, + memberModel4Count: model4Count + balance.model4Count, + memberDrawMjCount: drawMjCount + balance.drawMjCount, + expirationTime: dayjs() + .add(days > 0 ? days : 0, 'day') + .format('YYYY-MM-DD HH:mm:ss'), + packageId: packageId, + }; + } else { + /* 我当前使用的套餐信息 */ + const curPackageInfo = await this.cramiPackageEntity.findOne({ where: { id: userBalanceInfo.packageId } }); + /* 如果是会员则 充值更高或当前等级的套餐会进行时间覆盖充值余额叠加 充值低等级套餐只会叠加次数 不更新到期时间 */ + /* pkgLevel: 我当前的套餐等级 weight: 充值套餐的等级高于或等于当前套餐 则叠加时间并合并额度 */ + if (weight >= curPackageInfo.weight) { + params = { + memberModel3Count: memberModel3Count + balance.model3Count, + memberModel4Count: memberModel4Count + balance.model4Count, + memberDrawMjCount: memberDrawMjCount + balance.drawMjCount, + expirationTime: dayjs(userBalanceInfo.expirationTime) + .add(days > 0 ? days : 0, 'day') + .format('YYYY-MM-DD HH:mm:ss'), + packageId: packageId, + }; + } + /* 如果充值套餐小于当前套餐等级 只叠加次数 不延长时间 也不变更会员等级 */ + if (weight < curPackageInfo.weight) { + params = { + memberModel3Count: memberModel3Count + balance.model3Count, + memberModel4Count: memberModel4Count + balance.model4Count, + memberDrawMjCount: memberDrawMjCount + balance.drawMjCount, + }; + } + } + } + /* 充值不限时卡直接叠加 */ + if (days <= 0) { + params = { + model3Count: model3Count + balance.model3Count, + model4Count: model4Count + balance.model4Count, + drawMjCount: drawMjCount + balance.drawMjCount, + }; + } + const result = await this.userBalanceEntity.update({ userId }, params); + if (result.affected === 0) { + throw new HttpException(`${userId}充值失败`, HttpStatus.BAD_REQUEST); + } + } catch (error) { + console.log('error: ', error); + throw new HttpException('用户充值失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 支付成功给用户充值套餐 */ + async addBalanceToOrder(order) { + console.log('充值的工单信息:', order); + try { + const { userId, goodsId } = order; + const pkg = await this.cramiPackageEntity.findOne({ where: { id: order.goodsId, status: 1 } }); + if (!pkg) { + throw new HttpException('非法操作、当前充值套餐暂不存在!', HttpStatus.BAD_REQUEST); + } + const { model3Count, model4Count, drawMjCount, days, name: pkgName } = pkg; + const money = { + model3Count, + model4Count, + drawMjCount, + days, + packageId: order.goodsId, + }; + /* 充值进账户 */ + await this.addBalanceToUser(userId, money, days); + /* 记录充值日志 */ + await this.saveRecordRechargeLog({ userId, rechargeType: RechargeType.SCAN_PAY, model3Count, model4Count, drawMjCount, pkgName, days }); + const userInfo = await this.userEntity.findOne({ where: { id: userId } }); + const { invitedBy } = userInfo; + /* 如果这个用户有邀请码则说名是 invitedBy 邀请的 */ + if (invitedBy) { + const inviteUserInfo = await this.userEntity.findOne({ where: { inviteCode: invitedBy } }); + const inviteUserSalesInfo = await this.salesUsersEntity.findOne({ where: { userId: inviteUserInfo.id } }); + if (!inviteUserInfo) return; + const { id: inviterUserId } = inviteUserInfo; + const { performanceRatio } = inviteUserSalesInfo; + /* 记录推介信息、 返佣记录 */ + const recordsInfo = { + inviterUserId, + inviteeUserId: userId, + orderId: order.id, + orderPrice: order.total, + commissionPercentage: performanceRatio, + commissionAmount: ((order.total * performanceRatio) / 100).toFixed(2), + }; + /* 记录充值日志 */ + await this.salesService.createSalesRecords(recordsInfo); + /* 存储本次佣金 */ + await this.salesService.saveCommissionAmount(inviterUserId, recordsInfo.commissionAmount); + } + } catch (error) { + console.log('error: ', error); + throw new HttpException('充值失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 查询用户充值日志 */ + async getRechargeLog(req: Request, params) { + const { page = 1, size = 20 } = params; + const { id } = req.user; + const [rows, count] = await this.accountLogEntity.findAndCount({ + where: { userId: id }, + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + rows.forEach((item: any) => { + item.expireDateCn = item.days > 0 ? `${item.days}天` : '永久'; + }); + return { rows: formatCreateOrUpdateDate(rows), count }; + } + + /* 管理端查询用户账户变更记录 */ + async getAccountLog(req, params) { + try { + const { page = 1, size = 10, userId, rechargeType, packageId } = params; + const { role } = req.user; + const where: any = {}; + rechargeType && (where.rechargeType = rechargeType); + where.userId = userId || LessThan(100000); + packageId && (where.packageId = { $like: `%${packageId}%` }); + const [rows, count] = await this.accountLogEntity.findAndCount({ + where, + order: { id: 'DESC' }, + skip: (page - 1) * size, + take: size, + }); + const userIds = rows.map((item: any) => item.userId); + const userInfo = await this.userEntity.find({ where: { id: In(userIds) } }); + rows.forEach((item: any) => { + const user = userInfo.find((user: any) => user.id === item.userId); + item.username = user?.username; + item.email = user?.email; + item.phone = user?.phone; + item.status = user?.status; + item.avatar = user?.avatar; + }); + if (role !== 'super') { + rows.forEach((item: any) => { + item.email = item.email ? hideString(item.email) : ''; + item.phone = item.phone ? hideString(item.phone) : ''; + }); + } + return { rows, count }; + } catch (error) { + console.log('error: ', error); + throw new HttpException('查询用户账户失败!', HttpStatus.BAD_REQUEST); + } + } + + /* 通过用户id批量查询用户 */ + async queryUserBalanceByIds(ids: number[]) { + return await this.userBalanceEntity.find({ where: { userId: In(ids) } }); + } + + /* MJ绘画失败退款 */ + async refundMjBalance(userId, amount) { + return await this.deductFromBalance(userId, 'mjDraw', -amount); + } + + /* V1.5升级将旧版本余额并入到新表 */ + async upgradeBalance() { + const users = await this.userEntity.find(); + if (!users.length) return; + const upgradeStatus = await this.globalConfigService.getConfigs(['upgradeStatus']); + if (!upgradeStatus) { + await this.globalConfigService.setConfig({ settings: [{ configKey: 'upgradeStatus', configVal: '1' }] }); + } else { + throw new HttpException('您已经升级过了、请勿重复操作!', HttpStatus.BAD_REQUEST); + } + users.forEach((user: any) => { + const { id } = user; + this.balanceEntity.findOne({ where: { userId: id } }).then((res) => { + if (!res) return; + this.writeOldBalanceToNewTable(id, res); + }); + }); + } + + /* 将旧的数据整合写入新表 */ + async writeOldBalanceToNewTable(userId, balanceInfo) { + const { balance = 0, usesLeft = 0, paintCount = 0, useTokens = 0, useChats = 0, usePaints = 0 } = balanceInfo; + /* 查询Model4的使用情况 */ + const model4Info = await this.whiteListEntity.findOne({ where: { userId } }); + const newBalanceInfo = { + userId, + model3Count: Number(usesLeft), + model4Count: model4Info?.count || 0, + drawMjCount: Number(balance), + useModel3Count: Number(useChats), + useModel4Count: model4Info?.useCount || 0, + useDrawMjCount: Number(usePaints), + useModel3Token: Number(useTokens), + useModel4Token: 0, + useDrawMjToken: 0, + }; + const userBalanceInfo = await this.userBalanceEntity.findOne({ where: { userId } }); + if (userBalanceInfo) { + Logger.debug(`用户${userId}账户信息已经存在、迁移无效`, 'BalanceService'); + } else { + this.userBalanceEntity + .save(newBalanceInfo) + .then((res) => { + Logger.debug(`用户${userId}旧账户信息迁移成功`, 'BalanceService'); + }) + .catch((error) => { + console.log('error: ', error); + Logger.debug(`用户${userId}旧账户信息迁移失败`, 'BalanceService'); + }); + } + } + + async inheritVisitorData(req: Request) { + const { fingerprint } = req.headers; + const { id: userId } = req.user; + await this.chatLogEntity.update({ userId: Number(fingerprint) }, { userId }); + await this.chatGroupEntity.update({ userId: Number(fingerprint) }, { userId }); + await this.midjourneyEntity.update({ userId: Number(fingerprint) }, { userId }); + return 1; + } + + async getVisitorCount(req) { + const { fingerprint } = req.headers; + const countChat = await this.chatLogEntity.count({ where: { userId: fingerprint } }); + const countChatGroup = await this.chatGroupEntity.count({ where: { userId: fingerprint } }); + const countMj = await this.midjourneyEntity.count({ where: { userId: fingerprint } }); + return countChat || countChatGroup || countMj || 0; + } +} diff --git a/service/src/modules/verification/dto/verifyCode.dto.ts b/service/src/modules/verification/dto/verifyCode.dto.ts new file mode 100644 index 0000000..3946d5d --- /dev/null +++ b/service/src/modules/verification/dto/verifyCode.dto.ts @@ -0,0 +1,12 @@ +import { IsNotEmpty } from 'class-validator'; +import { ApiProperty } from '@nestjs/swagger'; + +export class VerifyCodeDto { + @ApiProperty({ example: '1', description: '验证码下发id' }) + @IsNotEmpty({ message: '缺少必要参数!' }) + id: number; + + @ApiProperty({ example: '15366754', description: '验证码' }) + @IsNotEmpty({ message: '验证码不能为空!' }) + code: number; +} diff --git a/service/src/modules/verification/verification.module.ts b/service/src/modules/verification/verification.module.ts new file mode 100644 index 0000000..23ec480 --- /dev/null +++ b/service/src/modules/verification/verification.module.ts @@ -0,0 +1,12 @@ +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Module } from '@nestjs/common'; +import { VerificationService } from './verification.service'; +import { VerifycationEntity } from './verifycation.entity'; +import { Redis } from 'ioredis'; +import { RedisCacheService } from '../redisCache/redisCache.service'; + +@Module({ + imports: [TypeOrmModule.forFeature([VerifycationEntity])], + providers: [RedisCacheService, VerificationService], +}) +export class VerificationModule {} diff --git a/service/src/modules/verification/verification.service.ts b/service/src/modules/verification/verification.service.ts new file mode 100644 index 0000000..c5f0ed6 --- /dev/null +++ b/service/src/modules/verification/verification.service.ts @@ -0,0 +1,96 @@ +import { GlobalConfigService } from '@/modules/globalConfig/globalConfig.service'; +import { VerificationUseStatusEnum } from '../../common/constants/status.constant'; +import { UserService } from '../user/user.service'; +import { VerifyCodeDto } from './dto/verifyCode.dto'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { VerifycationEntity } from './verifycation.entity'; +import { UserEntity } from '../user/user.entity'; +import { VerificationEnum } from '../../common/constants/verification.constant'; +import { Injectable, HttpException, HttpStatus } from '@nestjs/common'; +import { createRandomCode } from '@/common/utils'; +import { UserStatusEnum } from '@/common/constants/user.constant'; +import { RedisCacheService } from '../redisCache/redisCache.service'; + +import * as Core from '@alicloud/pop-core'; + +@Injectable() +export class VerificationService { + constructor( + @InjectRepository(VerifycationEntity) + private readonly verifycationEntity: Repository, + private readonly globalConfigService: GlobalConfigService, + private readonly redisCacheService: RedisCacheService, + ) {} + + // TODO Transaction failed and cannot be rolled back + async createVerification(user: UserEntity, type: VerificationEnum, expir = 30 * 60): Promise { + const historyVerify = await this.verifycationEntity.findOne({ where: { userId: user.id, type }, order: { createdAt: 'DESC' } }); + // 限制一分钟内不得重新发送 + if (historyVerify && historyVerify.createdAt.getTime() + 1 * 60 * 1000 > Date.now()) { + const diffS = Math.ceil((historyVerify.createdAt.getTime() + 1 * 60 * 1000 - Date.now()) / 1000); + throw new HttpException(`${diffS}S内不得重新发送`, HttpStatus.BAD_REQUEST); + } + const code = createRandomCode(); + const expiresAt = new Date(Date.now() + expir * 1000); + const { id, email } = user; + const verifycation = { userId: id, type, code, expiresAt, email }; + return await this.verifycationEntity.save(verifycation); + } + + async verifyCode({ code, id }: VerifyCodeDto, type: VerificationEnum): Promise { + const v: VerifycationEntity = await this.verifycationEntity.findOne({ where: { id, type }, order: { createdAt: 'DESC' } }); + if (!v) { + throw new HttpException('验证码不存在', HttpStatus.BAD_REQUEST); + } + if (v.used === VerificationUseStatusEnum.USED) { + throw new HttpException('当前验证码已被使用!', HttpStatus.BAD_REQUEST); + } else { + v.used = VerificationUseStatusEnum.USED; + await this.verifycationEntity.update({ id }, v); + } + if (Number(v.code) !== Number(code)) { + throw new HttpException('验证码错误', HttpStatus.BAD_REQUEST); + } + if (v.expiresAt < new Date()) { + throw new HttpException('验证码已过期', HttpStatus.BAD_REQUEST); + } + return v; + } + + /* 图形验证码校验 */ + async verifyCaptcha(body) { + const { captchaId, captchaCode } = body; + const nameSpace = await this.globalConfigService.getNamespace(); + const key = `${nameSpace}:CAPTCHA:${captchaId}`; + const code = await this.redisCacheService.get({ key }); + await this.redisCacheService.del({ key }); + if (!code) { + throw new HttpException('图形验证码已过期、请重新输入!', HttpStatus.BAD_REQUEST); + } + if (!code || code !== captchaCode) { + throw new HttpException('图形验证码错误、请检查填写!', HttpStatus.BAD_REQUEST); + } + } + + async sendPhoneCode(messageInfo) { + const { accessKeyId, accessKeySecret, SignName, TemplateCode } = await this.globalConfigService.getPhoneVerifyConfig(); + const { phone, code } = messageInfo; + if (!phone || !code) { + throw new HttpException('确实必要参数错误!', HttpStatus.BAD_REQUEST); + } + const client = new Core({ accessKeyId, accessKeySecret, endpoint: 'https://dysmsapi.aliyuncs.com', apiVersion: '2017-05-25' }); + const params = { PhoneNumbers: phone, SignName, TemplateCode, TemplateParam: JSON.stringify({ code }) }; + const requestOption = { method: 'POST', formatParams: false }; + try { + const response: any = await client.request('SendSms', params, requestOption); + if (response.Code === 'OK') { + return true; + } else { + throw new HttpException(response.Message || '验证码发送失败!', HttpStatus.BAD_REQUEST); + } + } catch (error) { + throw new HttpException(error?.data?.Message || '验证码发送失败!', HttpStatus.BAD_REQUEST); + } + } +} diff --git a/service/src/modules/verification/verifycation.entity.ts b/service/src/modules/verification/verifycation.entity.ts new file mode 100644 index 0000000..0c6b016 --- /dev/null +++ b/service/src/modules/verification/verifycation.entity.ts @@ -0,0 +1,23 @@ +import { Column, Entity } from 'typeorm'; +import { BaseEntity } from 'src/common/entity/baseEntity'; + +@Entity({ name: 'verifycation' }) +export class VerifycationEntity extends BaseEntity { + @Column({ comment: '用户id' }) + userId: number; + + @Column({ nullable: false, comment: '验证类型' }) + type: number; + + @Column({ nullable: false, comment: '验证码' }) + code: number; + + @Column({ comment: '过期时间' }) + expiresAt: Date; + + @Column({ length: 64, nullable: false, comment: '发送的邮箱' }) + email: string; + + @Column({ default: 0, nullable: false, comment: '是否已经使用了' }) + used: number; +} diff --git a/service/src/types/express.d.ts b/service/src/types/express.d.ts new file mode 100644 index 0000000..b3f3983 --- /dev/null +++ b/service/src/types/express.d.ts @@ -0,0 +1,21 @@ +import { Request } from 'express'; +import { AbortController } from 'abort-controller'; + +interface JwtPayload { + username: string; + client: string; + id?: number; + email: string; + role: string; + iat?: number; + exp?: number; +} + +declare global { + namespace Express { + interface Request { + user?: JwtPayload; + abortController?: AbortController; + } + } +} diff --git a/service/templates/mail/register.hbs b/service/templates/mail/register.hbs new file mode 100644 index 0000000..a42c0bf --- /dev/null +++ b/service/templates/mail/register.hbs @@ -0,0 +1,78 @@ + + + + + {{registerVerifyEmailFrom}}邮箱验证 + + + + +
+ + {{registerVerifyEmailTitle}} +

{{registerVerifyEmailDesc}} + 点此激活您的账号 +

+

System mail,please do not reply

+ FROM: {{registerVerifyEmailFrom}} +
+
+ + + diff --git a/service/templates/pages/registerError.hbs b/service/templates/pages/registerError.hbs new file mode 100644 index 0000000..ef48051 --- /dev/null +++ b/service/templates/pages/registerError.hbs @@ -0,0 +1,81 @@ + + + + + 邮箱验证失败 + + + + +
+ + {{data.registerFailEmailTitle}} +

很抱歉你的账户验证失败,请参照以下错误提示信息,进行对应的操作: + {{data.message}} +

+

System mail,please do not reply

+ FROM: {{data.registerFailEmailTeamName}} +
+
+ + + diff --git a/service/templates/pages/registerSuccess.hbs b/service/templates/pages/registerSuccess.hbs new file mode 100644 index 0000000..83bfb93 --- /dev/null +++ b/service/templates/pages/registerSuccess.hbs @@ -0,0 +1,82 @@ + + + + + + 邮箱验证成功 + + + + +
+ + {{data.registerSuccessEmailTitle}} +

+ 亲爱的{{data.username}},欢迎加入{{data.registerSuccessEmailTeamName}},您是尊贵的{{data.id}}号用户,你的账号{{data.username}} | + {{data.email}}已经激活成功{{data.registerSuccessEmaileAppend}} +

+

System mail,please do not reply

+ FROM: {{data.registerSuccessEmailTeamName}} +
+
+ + + diff --git a/service/tsconfig.build.json b/service/tsconfig.build.json new file mode 100644 index 0000000..919dd89 --- /dev/null +++ b/service/tsconfig.build.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "sourceMap": false, + "declaration": false, + "incremental": false + }, + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/service/tsconfig.json b/service/tsconfig.json new file mode 100644 index 0000000..86642d1 --- /dev/null +++ b/service/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "./tsconfig.paths.json", + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "es2017", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + }, + "include": ["src/**/*.ts","src/**/*.js","src/modules/draw/generation/**/*.ts","src/modules/draw/generation/**/*.js"], + "exclude": ["node_modules", "dist"] +} diff --git a/service/tsconfig.paths.json b/service/tsconfig.paths.json new file mode 100644 index 0000000..b30a27a --- /dev/null +++ b/service/tsconfig.paths.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/modules/*": ["./src/modules/*"], + "@/config/*": ["./src/config/*"], + "@/common/*": ["./src/common/*"], + "@/rpc/*": ["./src/rpc/*"], + "@/interfaces/*": ["./src/interfaces/*"] + } + } +}